Notionは、開発者向けの新機能として Notion Workers を公開しています。

Notion Workersは、Notion上で動く小さなNode.js / TypeScriptプログラムです。

外部サービスのデータをNotionデータベースに同期したり、Notion AIのカスタムエージェントに新しい操作を追加したり、GitHubやStripeなどのWebhookを受け取ったりできます。

これまでNotionは、情報を整理する場所として使われることが多いツールでした。

Workersによって、そのNotionが「 外部サービスとつながり、処理を実行する場所 」に近づいた印象です。

本記事では、Notion Workersの概要、作れるもの、基本的な仕組みを整理します。

後半では、実際に作ったWorkerの活用事例も紹介します。

要点:

  • Notion上で動くTypeScript実行基盤。 Workerは小さなNode.js / TypeScriptプログラムとして書き、Notion CLIからデプロイします。サーバーの管理はNotion側に任せられます。

  • 同期、Agent tools、Webhookに対応。 外部APIのデータ同期、カスタムエージェント用のツール追加、外部サービスからのHTTPイベント受信という3つの用途が中心です。

  • AIコーディングエージェント前提の開発体験。 プロジェクトを作り、やりたいことを説明し、CLIでデプロイする流れが想定されています。Notionのドキュメントでも、AIコーディングエージェントと組み合わせる設計が明示されています。


Notion Workersとは

Notion Workersは、Notionの機能を拡張するための実行基盤です。

公式ドキュメントでは、「 Notionを拡張する小さなNode / TypeScriptプログラム 」と説明されています。

開発者はWorkerを書き、 Notion CLIでデプロイ します。その後のホスティングや実行は、Notionが引き受ける仕組みです。

わかりやすく言うと、Notionの外側に別サーバーを立てずに、Notion連携用の処理を置ける場所です。

たとえば、これまでは以下のような構成が必要でした。

  1. 外部APIからデータを取得するサーバーを用意する

  2. 取得したデータをNotion APIでデータベースに書き込む

  3. Webhookを受けるためのエンドポイントを別途公開する

  4. APIキーやOAuthの認証情報を安全に管理する

Notion Workersでは、この一部をNotion側の実行環境に寄せられます。

WorkerはNotionのサンドボックス化されたNode.js環境で動き、外部APIへのHTTPリクエスト、CLI経由で保存したSecrets、OAuth認証などを扱えます。

この点が、従来のNotion API連携との大きな違いです。

Notion APIは、外部アプリケーションからNotionを操作するためのインターフェースでした。

一方でNotion Workersは、 Notionの近くに処理そのものを置くための仕組み です。

Notion WorkersはClaude Codeに作ってもらえる

Notion Workersは、Notionの画面上でボタンを押して作る機能ではありません。

裏側では、 Notion CLI という開発者向けツールを使って作成します。

Notion CLIを使用して、ターミナルからNotionを使用する – Notion (ノーション)ヘルプセンター 設定方法や一般的な修正方法など、コマンドラインからNotionを使用するための基本を学びます 👩🏽‍💻 www.notion.com

CLIはCommand Line Interfaceの略で、ターミナルからNotionを操作するための道具です。

CLI: Command Line Interfaceの略です。文字コマンドでソフトを操作する方式、またはその方式で使う道具を指します。git、gh、yt-dlp、ffmpeg のようなものです。CLIに関する詳細記事はこちら

Notion CLIのコマンド名は ntn です。

Notion CLIのインストール

このCLIのインストールも、自分で手順を覚える必要はありません。
Claude CodeにNotion CLIの公式ドキュメントURLを貼り 、次のように頼めば十分です。

このNotion CLIを使えるようにして。 https://developers.notion.com/cli/get-started/overview このリポジトリでNotion Workersを作れる状態にしたいので、 CLIのインストール確認、ログイン、必要な初期設定まで進めて。

インストールできたら、ログインしてCLIをNotionワークスペースに接続します。

ntn login

これによりブラウザウィンドウが開き、アクセスを承認する画面が表示されます。

認証コードが一致しているか確認して、承認します。(認証情報はシステムのキーチェーンに安全に保存されます。)

Workersの作成方法

Notion CLIのインストールが完了すると、Workerが使えるようになります。

同じように、非エンジニアが最初から ntn workers new や ntn workers deploy を覚える必要もあまりありません。

実際には、 Claude Codeに以下のように頼む形 で進められます。

Notion Workersで、The VergeのRSSから最新記事5件を取得し、タイトル、URL、公開日、概要をNotionページに追記する
必要なNotion CLIのセットアップ、Worker作成、デプロイ、実行確認まで進めて。

このように依頼すると、Claude Code側で必要なファイルを作成してくれます。

Notion CLIはNotionページの操作も可能なため、必要なページの作成もしてくれます。

デプロイが完了すると、以下のように実行結果が表示されます。

NotionにもRSSで取得した情報が入力されています。

デプロイしたWorkerは、 developersのページ で確認できます。

作成したWorkerのツールはNotionのカスタムエージェントで利用することができます。

カスタムエージェントの「ツールとアクセス」の箇所の接続を追加を押します。

作成した「 verge-rss-worker 」を接続します。

接続するとカスタムエージェントがこのツールを呼び出せるようになります。

カスタムエージェントの指示欄には以下のように指示を入力します。RSSフィード取得→Notion保存だけでは、必ずしもNotionでやる必要のないことになります。

そのため、追加でNotionにあるプロジェクト情報をエージェントが読み取って、プロジェクト内容と照合し、関連度を判定し私がインプットすべき情報かの判断をしてくれるフローを追加します。

トリガーで毎日8時に実行にしておくと、毎日RSSを取得してNotionに保存される仕組みができます。

Slackなどの通知したい場合は、接続を追加からSlackを選択して追加します。

指示の中にもSlack通知する旨のプロンプトを入れます。

カスタムエージェントの作成が完了しました。

実行してみると、以下のようにSlackに通知が届きます。最新のニュースを自分のプロジェクトと紐づけてインプットしやすく通知してくれています。

このようにNotion CLIを使うことで、Workerの作成やデプロイを進められます。

一度Workerを作っておけば、Notion上のカスタムエージェントやデータベース操作から呼び出せるようになります。

人間側がやることは、主に以下です。

  1. 何をNotionから実行したいかを説明する

  2. どの外部サービスとつなぎたいかを伝える

  3. APIキーやOAuth認証が必要な場面で承認する

  4. 実行前に、危険な操作がないか確認する

  5. Notion上で使いやすい形になっているか試す

たとえば、「Xに投稿する」「YouTubeの設定を変更する」のような操作は、 外部サービスに実際の変更 を加えます。

この場合は、Claude Codeに任せきりにするのではなく、dryRunや差分確認を入れてもらうのが安全です。

一方で、「Xの投稿を検索する」「YouTubeの数値を取得する」「画像を生成してNotionに貼る」といった操作は、比較的試しやすい領域です。

CLIは見えないところで重要な役割を担っていますが、ユーザー体験としては「 Claude Codeに作業を依頼する 」に近い感覚です。

Notion Workersで作れるもの

公式ドキュメントでは、Notion Workersは主に3つの用途が紹介されています。

1. Sync data

1つ目は、 外部データの同期 です。

Salesforce、Stripe、GitHubなどの外部APIからデータを取得し、Notionデータベースに自動で同期できます。

同期はスケジュール実行され、デフォルトでは30分ごとに動くと説明されています。

たとえば、顧客情報、決済履歴、GitHub IssueなどをNotionデータベースに集約する使い方が考えられます。

2. Agent tools

2つ目は、Notion AIのカスタムエージェント に新しいツールを追加 する使い方です。

カスタムエージェントは、 Notion内で使えるAIエージェント です。

カスタムエージェントについては以下の記事で解説しています。

Workersを使うと、このエージェントに「Jiraチケットを作る」「CRMから顧客情報を検索する」といった独自機能を渡せます。

ここは、Notion Workersの中でも特に重要なポイントだと感じます。

Notion内のAIが、Notionページの内容を読むだけでなく、 外部システムに対して実際のアクションを起こせるようになる ためです。

3. Webhooks

3つ目は、Webhookの受信です。

GitHubのpush、Stripeの支払い、Zendeskの更新など、外部サービスから送られるHTTPイベントをWorkerで受け取れます。

受け取ったイベントに応じて、Notionデータベースを更新したり、カスタムエージェント用の情報を整えたりできます。

これにより、Notionは「あとから手動で記録する場所」ではなく、「 外部サービスの変化を受け取る場所 」としても使いやすくなります。

ここから先は有料です。
現在、note の AGIラボ メンバーシップでは、新規加入の受付を一時的に停止しています。

これから参加される方は、新サイト agi-labo.com からお申し込みください。(詳細)

※ 新サイトの詳細はこちらです。(Emailを設定するとnoteラボメンバーも新サイトにログイン可能です)

【活用事例】実際に作ったNotion Workers

ここからは、実際に作ったNotion Workersの例を紹介します。