はじめに
hkob の雑記録の第251回目は、たいがさんがポストしていたデイリーノートを簡単に開く Alfred ワークフローを作成した件を解説します。
たいがさんのポスト
たいがさんがこんなポストをしていました。デイリーノートという概念は面白いですね。
Obsidianでいうところのデイリーノートデータベースの機能がNotionにも欲しい!
— たいが | Notionキャンパスリーダー (@tg_notion) 2025年9月5日
(タスクDB・会議DBのデフォルト設定機能のように…)
@ today でメンションしたらその日のデイリーノートに飛ぶようになって欲しい!!!
私のタスクデータベースは、今週と来週のスプリントにおける未完了タスクを毎朝メール送信するようになっています。このトリガのために、毎朝ページが一つ作成されるので、それを日報用に使っていました。ただ、最近は様々な Notion のテストやちょっとしたメモをこの日報ページを使って実施するようにしています。以前のワークスペースではテストスペースというページを使っていましたが、山のようにテスト結果が溜まりページ自体を開くのが重くなっていました。今は、必要であれば Notion AI が探してくれるので、ページが分散してもなんとかなりそうです。そういう意味では私のこのページもデイリーノートに近いものかと思います。
この未完了の日報は Launchpad を開くと一番上にあるので、開きやすい場所にはあるのですが、確かに数ステップはかかっていて不便です。そこで、これを即座に開く Alfred ワークフローを作成してみました。作成後に投稿したポストがこちらです。
昨日の #Notion座談会 でも話をしたのですが、「○月○日の日報」というページが副作用で毎日できるので、ここを毎日のテストページにしていました。
— hkob|Notion Ambassador (@hkob) 2025年9月5日
このポストを見て、このページを自動的に開くワークフローを作ってしまいました。これ、便利ですね。#Notion #Alfred pic.twitter.com/DFG3nuquS3
F6 を押すと Notion API でページを検索し、そのページを Notion で開きます。その後、Notion アプリに制御を渡すようになっています。

ここで実行している Ruby スクリプトもポストしました。
スクリプトはこんな感じ。この上にある F7 は現在クリップボードにあるテキストを自動的に今開いている Notion に貼ってくれるので、合わせ技もできますね。 pic.twitter.com/FKuyM69xZF
— hkob|Notion Ambassador (@hkob) 2025年9月5日
高速化のためのリファクタリング
なかなか使ってみて便利なのですが、やはり Notion API が絡むと1テンポ遅れるのが気になりました。そこで、page_id をキャッシュするリファクタリングを行いました。どうせ1日一回 page_id を取得したら、それはその日のうちには変更されることはないためです。この件を以下のようにポストしました。
Notion の API 呼び出しが入ると 1 テンポ遅く感じるので、1回目の呼び出し時に Dropbox のトップに page_id を保持することにした。その日の最初の呼び出しは API を使うが、2回目以降はキャッシュされているので非常に快適になった。明日のブログネタはこれでいいや。#Notion #NotionAPI #Alfred pic.twitter.com/CmkDiTs8Wm
— hkob|Notion Ambassador (@hkob) 2025年9月6日
スクリーンショットだとみにくいので、ソースコードをこちらに貼っておきます。読んでもえらばわかりますが、Dropbox の直下に .today_page_url という隠しファイルを用意します。その日に最初にどこかのマシンで F6 を押すとファイル更新日が昨日であることが確認できるので、その場合のみ Notion API を実施して取得した URL を .today_page_url というファイルに保持します。2回目以降はこのファイルの更新日付が今日になっているので、ファイルを中身を取り出し URL とします。当初は page_id だけを記録するつもりで .today_page_id としていましたが、url に変更してしまったのでスクリーンショットを撮った時からファイル名だけ変更しています。
require "date" date = Date.today fname = "/Users/hkob/Dropbox/.today_page_url" url = '' if File.exist?(fname) && File.mtime(fname).to_date == date f = File.open fname url = f.gets chomp: true f.close else require "notion_ruby_mapping" include NotionRubyMapping NotionRubyMapping.configure { |c| c.token = ENV["NOTION_API_KEY"] } db = Database.find ENV["TASK_DB_ID"] dp = db.properties date = Date.today date_str = "#{date.month}月#{date.day}日の日報" query = dp["Task name"].filter_equals(date_str).and(dp["Date"].filter_equals(date)) page = db.query_database(query).first url = page["url"].gsub("https://", "notion://") f = File.open fname, "w" f.puts url f.close end print url
おわりに
これまで F8 で多言語のテキストを翻訳したテキストがクリップボードに入り、F7 で貼り付けられるようになっていました。F7 自体は現在開いているページにテキストを貼り付けてしまうので、F6 を先にタイプすることで、デイリーノートに貼り付けることが可能となります。それも踏まえて近いところのファンクションキーに機能を割り当てていました。