Notion ブロックをタスク化する Alfred Workflow : hkob の雑記録 (335)

はじめに

hkob の雑記録の第335回目は、Notion ブロックをタスクに登録する Alfred workflow を作成した件を解説します。本記事は2025年ユカスタマスの1日目(2023年ユカスタマスの732日目)の記事になります。

きっかけはしかたさんのポスト

今日、外出中にしかたさんのポストを読みました。

この内容も完全に同意なのですが、その中の文章中の以下の部分にめちゃくちゃ引っかかりました。

ブロックごとに@メンションしたり、リマインドを仕込んだりできて、そのブロックには固有のURLがある。「このブロック」の住所をピンポイントで共有できるのがNotionの面白さ。

今の私の困りごと

ここに私が引っかかったのは、最近の私の困り事に絡んでいるからでした。私はタスク管理は、アンバサダー用の gmail のアカウントで実施していますが、職場の会議は職場のアカウントで AI meeting note を実行しています。AI meeting note で次のアクションなどが設定される時、これをタスク化するには、テキストを選択して Task 化していました。しかたさんのポストを見た時、このブロックに戻ってこれるリンクが設定できると嬉しいのではと考えたところです。

作成した Alfred workflow

いつものように作成した Workflow は以下のようになります。

作成した Workflow

Hotkey Setting は以下のようになっています。キーはとりあえず戻ってこれるということで Return の R にしてみました。Cmd - Ctrl - R は Notion で使われていないようなので、ここにしました。

Hotkey Setting

今回は、Notion のアプリにフォーカスが当たっている場合のみ、このショートカットキーを使えるようにしてみました。

Focus 設定

次は AppleScript です。ここでは、Notion で Cmd - Ctrl - L をタイプして、ブロックのリンクをクリップボードに取り込みます。

Apple Script

クリップボードに入るまでの時間を確保するために、1秒待ちます。

1秒待つ

次にクリップボードの内容を引数に設定します。

Arg and Vars

次はスクリプトの実行です。

Run Script

スクリプトは以下のように記述しました。NotionRubyMapping はシステムの Ruby で動かなくなったので、zsh から mise でインストールした ruby を起動しています。先ほどのショートカットで登録した URL から block を取得し、その rich_text_array から full_text を取り出し、タイトルとします。あとは、Tasks のデータソースに取得したタイトルで Task を登録します。その際、ブロックの URL を Link に追加しています。これが今回やりたかったことになります。

query=$1
PATH="$HOME/.local/share/mise/shims:$PATH"

ruby <<-EOL
require "notion_ruby_mapping"
include NotionRubyMapping
NotionRubyMapping.configure { |c| c.token = ENV["NOTION_API_KEY"] }

block = Block.find "$query"
title = block.rich_text_array.full_text

ds = DataSource.find ENV["TASK_DS_ID"]
page = ds.create_child_page do |p, pp|
  pp["Task name"].text_objects << title
  pp["Assignee"].people = ENV["USER_ID"]
  pp["Link"].url = "$query"
end
print "Create #{title} in #{page.url.gsub("^https://", "notion://")}"
EOL

いつもだと、このまま Notion でページを開くことが多いのですが、今回は通知を表示するだけにしました。今開いている Notion は Tasks を登録しているアカウントとは異なることが多いので、ページを開くとアカウント切り替えが発生してしまい、AI meeting note が切れてしまうことがあるためです。

通知設定

うまく動くことが確認できたので、X にも作成したことを報告しました。

おわりに

今回は、Notion の現在のブロックに対して、タスクを生成する Workflow を作成しました。早速明日から運用してみたいと思います。

hkob.notion.site