Notionは、テキスト、データベース、カレンダー、タスク管理などの機能を一つのツールに統合したオールインワンのワークスペースアプリです。メモ取りから大規模なプロジェクト管理まで、自由にカスタマイズできるブロックエディターを使って情報を整理できます。
本記事では、DifyとNotionとを連携させることで、自動で情報を収集し、ナレッジで活用する例を紹介します。
全体的な構成図は以下のようになります。

ワークフローを使って情報を収集し、結果をNotionのページとして保存します。また、Notionのページはナレッジのソースとして取り込まれ、チャットボットで利用可能となります。
DifyとNotionとの連携は、自動実行することが可能ですので、日々更新されるNewsなどをソースとする場合には、便利かと思います。
Notionの設定
ワークスペースの作成
Notionに登録すると、デフォルトのワークスペースが使えるようになります。普段の業務でもNotionを利用されるのであれば、連携専用のワークスペースを一つ作っておくと良いかと思います。
この後紹介するNotionのインテグレーションは、ワークスペース毎に作成しなければなりません。また、Difyには、一つのインテグレーションしか設定できません。すなわち、Difyとワークスペースは一対一の関係になります。
インテグレーションの作成
以下のURLからインテグレーションを作成します。
https://www.notion.so/profile/integrations
まず、インテグレーション名を追加します。
関連するワークスペースを選択し、種類は「内部(Internal)」を選択し保存します。

インテグレーションが作成されると、「内部インテグレーションシークレット」が作成されますので、「表示」をクリックして、「コピー」をして保存しておきます。
連携用ページの作成
ワークスペースに戻り、「新規ページ」を作成し、タイトルをつけます。

右上のメニューから「接続」を選び、先ほど作成したインテグレーションを選択します。
最後に「ページID」をコピーしておきます。ページIDは、URLのhttps://www.notion.so/に続く文字列です。
Difyの設定
Notionと連携させるために、Difyの環境変数を変更する必要があります。
dockerを使ってインストールした場合には、docker-compose.yamlの関連する箇所を修正します。dockerを使わない場合には、.envファイルを修正します。
インテグレーションを内部(Internal)としている場合は、設定は2箇所です。
NOTION_INTEGRATION_TYPE: internal
NOTION_CLIENT_SECRET: <内部インテグレーションシークレット>
設定が終了したら、Difyを再起動させます。
情報収集ワークフロー (Dify
Notion)Difyで、情報収集用のワークフローを作ります。
ワークフロー
以下の記事にあるWeb検索チャットフローをベースにして、Notionとの連携ワークフローを作ります。

以下に、Web検索チャットフローとの違いのみ説明します。
- 開始
-
自動で情報を集めるために、開始時にkeywordsを入力変数として定義しておきます。
- Current Time
-
このブロックは、実行日時を文字列で返すだけのツールです。Notionのページに情報収集日時を追記するためのものです。
- CREATE NOTION PAGE
-
LLMから受け取ったテキストと、現在時刻とをNotionのページに書き込みます。詳細は下記に記します。
CREATE NOTION PAGE
ツールのインストール
ツールをインストールして、認証の設定を行います。入力する「統合シークレット」は先ほど取得した「内部インテグレーションシークレット」を入力します。
設定
Create Notion Pageを追加して、以下のように設定します。

親IDには、連携するページのページID、親タイプはpageを設定します。
実行結果
ワークフローを単体で実行してみます。
キーワードに「トヨタ」を指定した結果です。キーワード(トヨタ)と現在時刻がついたページが作成されています。

ナレッジ連携 (Notion
Dify)Notionにあるページをナレッジとして取り込み、チャットボットで使うことができます。
ナレッジの作成
ナレッジの作成から「Notionから同期」を選択します。

あとは、テキストで読み込んだ時と同じ方法で、ナレッジとして利用可能となります。
ナレッジの設定の各パラメータについては、以下の記事を参照して下さい。
Notion ナレッジを利用したチャットボット
新規にチャットボットを作成し、コンテキストから作成したナレッジを追加すると、収集したデータを使ったチャットボットが完成します。

まとめ
設定したキーワードに基づく情報を収集し、Notionのページとして自動保存するワークフローと、Notionの情報をナレッジとして利用するチャットボットについて、ご紹介しました。
今回の連携の部分(ワークフローの実行と、ナレッジの更新)については、DifyのAPIを使って自動実行することが可能です。
普段、定常的に行なっている情報収集に役立てていただければ幸いです。