更新日: 2025-09-16
はじめに
Dify というサービスを聞いたことがあるけれど、「何ができるかわからない」、「どう使うのかわからない」などの理由で使ったことがない方は多いのではないでしょうか。
そのような方のために、「Dify で何ができるのか?」や Dify を使った活用事例を紹介する記事をシリーズ化していきます。
シリーズ記事はこちらです 【Difyで作るシリーズ 1】 PDFファイルの要約 【Difyで作るシリーズ 2】会社情報Q&Aチャットボット 【Difyで作るシリーズ 3】 ニュース要約チャットボット
今回は第7回目で、前回のワークフローをより実用的なものにします。 具体的には、取得した会社名や氏名の情報を、Notionのデータベースに格納するワークフローを作成する方法について紹介します。
この記事の対象者
- Dify という言葉を聞いたことがあるが、何ができるのかがわからない方
- Dify を業務に取り入れたいと検討している方
事前準備
環境
- Dify v1.7.1(2025年8月17日時点)
概要
完成イメージ
イメージ
:::message alert
前提 サンプルの名刺として、以下を使用しました。

-
左の「ローカルアップロード」から名刺の画像をアップロードし、「実行」を選択します。
-
右側に動画の要約が返ってきます。

-
Notionのデータベースに、抽出した情報が格納されます。

:::
上記のアプリを構築するためにワークフローを作る説明をします。
ワークフローとは 一つ一つの処理を小さな**ブロック(ノード)**としてつなぎ合わせて、一連のプロレスを自動化する機能です。
今回作成するワークフローのDifyの画面です。
このワークフローは、以下のブロックで構成されます。
flowchart LR
A[開始] --> B[パラメータ抽出 <br> Gemini 2.5 Pro]
B --> C[HTTPリクエスト]
C --> D[終了]- 開始:名刺の画像を受け取ります。
- パラメータ抽出:OCR機能を利用して会社名、氏名、メールアドレス、親ドメインを抽出し、変数に格納します。
- HTTPリクエスト:抽出した情報をNotionのデータベースに格納します。
- 終了:ワークフローを終了します。
作業手順
ここからは、ワークフロー構築の手順について説明します。
手順
- Notionデータベースの準備
- ワークフローの新規作成
- 環境変数の設定
- ワークフロー作成画面上での作業
- ワークフローの動作確認
1. Notionデータベースの準備
インテグレーションを作成し、APIのシークレットキーを取得する
-
Notionのインテグレーションにアクセスし、「新しいインテグレーション」を押します。

-
インテグレーションの名前を入力し、「関連ワークスペース」を設定後、「保存」を選択します。 インテグレーションの名前を名刺情報DBとしています。

-
「インテグレーション設定」を選択します。

-
「内部インテグレーションシークレット」の「表示」を押します。
APIのシークレットキーが表示されます。後述の「環境変数の設定」で使用しますので、控えておきます。 -
Notionでページを作成し、「テーブル」を選択し、テーブルを追加します。

-
「ビューのリンクをコピー」を選択します。 下記の用のURLがコピーされます。<DATABESE_ID>を後述の「環境変数の設定」で使用しますので、控えておきます。(URL下記
<DATABASE_ID>の部分)https://www.notion.so/`````<DATABASE_ID>`````?v=XXX&pvs=4
-
右上の三点リーダーを選択し、「接続先」を選択します。 先程作成した「名刺情報DB」を選択します。

-
データベースのプロパティを設定します。下記の表のようにプロパティを追加します。
| プロパティ名 | プロパティの種類 | 取得したい情報 |
|---|---|---|
| Name | タイトル | フルネーム |
| company_name | テキスト | 会社名または所属 |
| last_name | テキスト | 苗字 |
| first_name | テキスト | 名前 |
| メール | メールアドレス | |
| parent_domain | URL | 親ドメイン |
| phone_number | 電話 | 電話番号 |
| department | テキスト | 部署 |
| post | テキスト | 役職 |
追加後は画像のようになります。
これでNotionの準備は完成です。
2. ワークフローの新規作成
-
最初の画面の「最初から作成」を選択します。

-
「ワークフロー」を選択し、「アプリのアイコンと名前」を入力してから「作成する」を選択します。

3. 環境変数の設定
-
Dify ワークフローの右上の「ENV」ボタンをクリックし、**「環境変数を追加」**を選択します。
-
「名前」に「NOTION_INTEGRATION_SECRET_KEY」と入力し、先程取得したAPIのシークレットキーを入力し、「保存」を選択します。

-
同様に、「NOTION_DATABASE_ID」に先程取得した
DATABESE_IDを入力します。 (ここではNotionのページリンクではないことに注意してください。)
4. ワークフロー作成画面上での作業
-
**「開始」**ノードを選択します。 「入力フィールド」の「+」ボタンを押します。
下記の表のように各項目を選択または入力した後、「保存」を選択します。
| 項目 | 値 | 備考 |
|---|---|---|
| フィールドタイプ | 単一ファイル | 複数のファイルをアップロードすることもできます。 |
| 変数名 | image | 任意の値を入力します。 |
| ラベル名 | image | 任意の値を入力します。 |
| サポートされたファイルタイプ | 画像 | アップロードするファイルの種類を指定します。 |
| アップロードされたファイルのタイプ | ローカルアップロード | 画像をローカルからアップロードするか、画像のURLを入力するか、その両方を選べます。 |

-
**「パラメータ抽出」**ノードを追加します。 「モデル」を「Gemini 2.5 Pro」に設定し、「入力変数」に「開始」の「image」を選択します。
「ビジョン」を有効にし、変数に「開始」の「image」を設定します。
名刺から取得したい情報をパラメータとして追加します。
「パラメータを抽出」の「+」ボタンを押します。
「名前」に「full_name」、「説明」に「氏名」と入力し、「追加」を選択します。
同様に、下記の表のを参考にパラメータを追加します。
右の画像のように追加されているか確認します。
| 名前(パラメータ名) | 説明 |
|---|---|
| full_name | 氏名 |
| company_name | 会社名または所属 |
| メールアドレス | |
| parent_domain | 親ドメイン |
| last_name | 苗字 |
| first_name | 名前 |
| post | 役職 |
| telephone_number | 電話番号 |
| department | 部署 |
「指示」の欄に下記のようなプロンプトを入力します。
次の情報をテキストから抽出してください。各項目は、括弧内のラベルで出力してください:
- 会社名または所属(日本語の場合は日本語で記載、company_name)
- 氏名(苗字、名前を分けて抽出、full_name)
- メールアドレス(mail)
- メールアドレスから抽出した親ドメイン(parent_domain)
- 役職(「社長」、「部長」、「リーダー」、「マネージャー」など、post)
- 電話番号(telephone_number)
- 部署(department) すべての項目がテキストに含まれていない場合は、取得可能な情報のみを抽出してください。

-
**「HTTPリクエスト」**ノードを追加し、「API」で「POST」を選択します。 URLに下記のURLを設定します。
https://api.notion.com/v1/pages
「API」の「認証なし」を選択します。
「認証タイプ」に「APIキー」と「Bearer」、「APIキー」に環境変数の「NOTION_INTEGRATION_SECRET_KEY」を選択し、「保存」を選択します。
「ヘッダー」を下記の表のように入力します。
| キー | 値 |
|---|---|
| Notion-Version | 2022-06-28 |
| Content-Type | application/json |
「ボディ」の「JSON」を選択し、下記のJSONコードをコピーしペーストします。

JSONコード
{
"parent": {
"database_id": ""
},
"properties": {
"company_name": {
"rich_text": [
{
"text": {
"content": ""
}
}
]
},
"department": {
"rich_text": [
{
"text": {
"content": ""
}
}
]
},
"first_name": {
"rich_text": [
{
"text": {
"content": ""
}
}
]
},
"last_name": {
"rich_text": [
{
"text": {
"content": ""
}
}
]
},
"mail": {
"email": ""
},
"Name": {
"title": [
{
"text": {
"content": ""
}
}
]
},
"parent_domain": {
"url": ""
},
"phone_number": {
"phone_number": ""
},
"post": {
"rich_text": [
{
"text": {
"content": ""
}
}
]
}
}
}「database_id」の「””」の間に「/」を入力し、「NOTION_DATABASE_ID」を選択します。
同様に残りの各項目も、下記の表を参考に設定します。
| プロパティ名 | 指定するパラメータ |
|---|---|
| company_name | {x}company_name |
| department | {x}department |
| first_name | {x}first_name |
| last_name | {x}last_name |
| {x}mail | |
| Name | {x}full_name |
| parent_domain | {x}parent_domain |
| phone_number | {x}telephone_number |
| post | {x}post |
-
**「終了」**ノードを追加します。
以上でワークフローが作成できました。(終了ノードには何も加えなくて大丈夫です。)
5. ワークフローの動作確認
-
「公開する」を選択し、「アプリを実行」を選択します。
アプリを実行します。 -
Notionのデータベースに抽出した情報が格納できました。

応用
今回は名刺の情報をOCRで抽出し、Notionのデータベースに格納しましたが、データベースやHTTPリクエストのJSONを変更することで、領収書の情報をデータベースに格納することも可能です。
おわりに
今回は取得した会社名や氏名の情報を、Notionのデータベースに格納するワークフローを作成しました。今後もDifyを利用したアプリの作成手順を紹介していきます。ぜひ引き続きご覧下さい。