インスティールドドキュメントフロー
上級
これはDocument Extraction, AI Summarization分野の自動化ワークフローで、16個のノードを含みます。主にIf, Code, Wait, Gmail, GoogleDriveなどのノードを使用。 FoxitとDiffbotを使って組織情報を抽出し、文書を要約
前提条件
- •Googleアカウント + Gmail API認証情報
- •Google Drive API認証情報
- •ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "jq3ISjs9Ah5SrJEl",
"meta": {
"instanceId": "8a623c3f1a4c9388f43b80af022dca52562aec4339b44f00a07491999dffc00f",
"templateCredsSetupCompleted": true
},
"name": "Intelligent Document Flow",
"tags": [],
"nodes": [
{
"id": "e0e1f4a8-973f-44cc-9103-b2a92fa0cd0c",
"name": "Google ドライブフォルダの新規ファイル起動",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
-480,
-140
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "url",
"value": "https://drive.google.com/drive/folders/1yHMr9A68V4QLtd6fIKuM7BE1U4mpN6cD"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "yzSXRqiRtvWSu0sZ",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "1a016850-c310-43a6-9925-538086367d4f",
"name": "ファイルをダウンロード",
"type": "n8n-nodes-base.googleDrive",
"position": [
-260,
-140
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "yzSXRqiRtvWSu0sZ",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "8a1bf842-514e-4f28-b799-989de5ee2dae",
"name": "Foxitにアップロード",
"type": "n8n-nodes-base.httpRequest",
"position": [
-40,
-140
],
"parameters": {
"url": "https://na1.fusion.foxit.com/pdf-services/api/documents/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"genericAuthType": "httpCustomAuth"
},
"credentials": {
"httpCustomAuth": {
"id": "itvQ81oceu7Z42Sz",
"name": "Custom Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "e5227af7-afff-4f6e-af71-097b9b8b414e",
"name": "Foxit抽出を開始",
"type": "n8n-nodes-base.httpRequest",
"position": [
180,
-140
],
"parameters": {
"url": "https://na1.fusion.foxit.com/pdf-services/api/documents/modify/pdf-extract",
"method": "POST",
"options": {},
"jsonBody": "={\n \"documentId\": \"{{ $json.documentId }}\",\n \"extractType\":\"TEXT\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpCustomAuth"
},
"credentials": {
"httpCustomAuth": {
"id": "itvQ81oceu7Z42Sz",
"name": "Custom Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "f0c75b63-c65e-4dc3-acc2-83ba5b7557f2",
"name": "タスクを確認",
"type": "n8n-nodes-base.httpRequest",
"position": [
620,
-140
],
"parameters": {
"url": "=https://na1.fusion.foxit.com/pdf-services/api/tasks/{{$json.taskId}}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpCustomAuth"
},
"credentials": {
"httpCustomAuth": {
"id": "itvQ81oceu7Z42Sz",
"name": "Custom Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "d6c0040f-8453-4502-b24c-7ea4fb151b93",
"name": "ジョブは完了したか?",
"type": "n8n-nodes-base.if",
"position": [
-420,
140
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fa958cdc-d7a8-49b9-b577-13429bd7bcf5",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "07a33ebd-53bd-49f9-967e-7c802b8fa162",
"name": "待機",
"type": "n8n-nodes-base.wait",
"position": [
-160,
380
],
"webhookId": "73c776cc-25e1-4543-8a18-48c69a7d6e82",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "535c42f4-bd75-4ab4-8468-5ce253db452f",
"name": "抽出テキストをダウンロード",
"type": "n8n-nodes-base.httpRequest",
"position": [
-180,
100
],
"parameters": {
"url": "=https://na1.fusion.foxit.com/pdf-services/api/documents/{{ $('Check Task').item.json.resultDocumentId }}/download",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpCustomAuth"
},
"credentials": {
"httpCustomAuth": {
"id": "itvQ81oceu7Z42Sz",
"name": "Custom Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "f4804b68-db6d-4fa0-9d38-e8d339ed949a",
"name": "Diffbotエンティティを取得",
"type": "n8n-nodes-base.httpRequest",
"position": [
80,
100
],
"parameters": {
"url": "https://nl.diffbot.com/v1/?fields=entities,summary",
"method": "POST",
"options": {},
"jsonBody": "=[{\n \"content\":{{ JSON.stringify($json.data) }},\n \"lang\":\"en\",\n \"format\":\"plain text\"\n}]",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth"
},
"credentials": {
"httpQueryAuth": {
"id": "oTrsbmKF2Bq7Awce",
"name": "Query Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "e3f7c3da-cda6-4039-84de-b162dae71b64",
"name": "データを整形",
"type": "n8n-nodes-base.code",
"position": [
300,
100
],
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\n/*\nfor (const item of $input.all()) {\n console.log('in loop', item);\n item.json.myNewField = 1;\n}\n*/\nconsole.log('hello ray');\n\nlet organizations = $input.all()[0].json.entities.filter(d => {\n let hasOrg = false;\n let isConfident = false;\n let types = d.allTypes.reduce((names, i) => {\n names.push(i.name);\n return names;\n },[]);\n if(types.indexOf('organization') >= 0) hasOrg = true;\n isConfident = d.confidence >= 0.85;\n return (hasOrg && isConfident);\n});\n\nlet orgNames = organizations.reduce((names, o) => {\n names.push(o.name);\n return names;\n}, []);\n\nreturn { organizations:orgNames, summary:$input.all()[0].json.summary }\n"
},
"typeVersion": 2
},
{
"id": "540a774b-82ee-41b2-9ac1-b21e30bfa71a",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
720,
100
],
"webhookId": "d2b05334-9a0c-4795-a508-85fbc49c773d",
"parameters": {
"sendTo": "raymondcamden@gmail.com",
"message": "={{ $json.html }}",
"options": {},
"subject": "intelligent Document Report on Upload"
},
"credentials": {
"gmailOAuth2": {
"id": "A7SxJ0FWjVNKGOnA",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "eed7c59c-124e-461c-a7d0-1100376470f1",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-480,
-320
],
"parameters": {
"width": 320,
"content": "## Ingestion\n\nThe workflow kicks off when a new file is added to Google Drive in a particular folder. The data is downloaded to n8n."
},
"typeVersion": 1
},
{
"id": "9a39a52d-4765-47ce-91d2-f61b6df47838",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-320
],
"parameters": {
"width": 760,
"content": "## Uploading and Extracting\nNext, the document is uploaded to Foxit and the Extraction API is fired to get the text. This is an async job so we check the status in a loop."
},
"typeVersion": 1
},
{
"id": "fae16938-8a56-45b7-b3cf-87ee7a17ab09",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
40,
280
],
"parameters": {
"content": "## Analyzing\n\nAfter the Extract result is downloaded, Diffbot is called and asked to analyze and summarize the contents."
},
"typeVersion": 1
},
{
"id": "574e824b-1f88-469c-b3e1-662ed7a653c0",
"name": "Make メール内容",
"type": "n8n-nodes-base.code",
"position": [
520,
100
],
"parameters": {
"jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nlet input = $input.all()[0].json;\nlet doc = $('Fire on New File in Google Drive Folder').first().json.name;\nlet link = $('Fire on New File in Google Drive Folder').first().json.webViewLink;\n\nlet html = `\n<h2>Docucument Report for <a href=\"${link}\">${doc}</a></h2>\n\n<p>\nThis document discussed the following organizations:\n<ul>\n`;\nlet orgs = input.organizations.reduce((s, o) => {\n return s + `<li>${o}</li>`;\n},'');\n\nhtml += orgs + `\n</ul>\n\n<p>\nSummary for this document:\n</p>\n<p>\n${input.summary}\n</p>\n`;\n\nreturn { html };"
},
"typeVersion": 2
},
{
"id": "bb085e4b-04b3-4d6e-b1a0-722766490849",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
280
],
"parameters": {
"width": 500,
"content": "## Shaping and Emailing\n\nFinally, we shape the result from Diffbot and create an HTML string that can be used in the email stage."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "85760a47-a1c3-4928-8065-23bd5de0b437",
"connections": {
"07a33ebd-53bd-49f9-967e-7c802b8fa162": {
"main": [
[
{
"node": "f0c75b63-c65e-4dc3-acc2-83ba5b7557f2",
"type": "main",
"index": 0
}
]
]
},
"f0c75b63-c65e-4dc3-acc2-83ba5b7557f2": {
"main": [
[
{
"node": "d6c0040f-8453-4502-b24c-7ea4fb151b93",
"type": "main",
"index": 0
}
]
]
},
"e3f7c3da-cda6-4039-84de-b162dae71b64": {
"main": [
[
{
"node": "574e824b-1f88-469c-b3e1-662ed7a653c0",
"type": "main",
"index": 0
}
]
]
},
"1a016850-c310-43a6-9925-538086367d4f": {
"main": [
[
{
"node": "8a1bf842-514e-4f28-b799-989de5ee2dae",
"type": "main",
"index": 0
}
]
]
},
"8a1bf842-514e-4f28-b799-989de5ee2dae": {
"main": [
[
{
"node": "e5227af7-afff-4f6e-af71-097b9b8b414e",
"type": "main",
"index": 0
}
]
]
},
"d6c0040f-8453-4502-b24c-7ea4fb151b93": {
"main": [
[
{
"node": "535c42f4-bd75-4ab4-8468-5ce253db452f",
"type": "main",
"index": 0
}
],
[
{
"node": "07a33ebd-53bd-49f9-967e-7c802b8fa162",
"type": "main",
"index": 0
}
]
]
},
"574e824b-1f88-469c-b3e1-662ed7a653c0": {
"main": [
[
{
"node": "540a774b-82ee-41b2-9ac1-b21e30bfa71a",
"type": "main",
"index": 0
}
]
]
},
"f4804b68-db6d-4fa0-9d38-e8d339ed949a": {
"main": [
[
{
"node": "e3f7c3da-cda6-4039-84de-b162dae71b64",
"type": "main",
"index": 0
}
]
]
},
"e5227af7-afff-4f6e-af71-097b9b8b414e": {
"main": [
[
{
"node": "f0c75b63-c65e-4dc3-acc2-83ba5b7557f2",
"type": "main",
"index": 0
}
]
]
},
"535c42f4-bd75-4ab4-8468-5ce253db452f": {
"main": [
[
{
"node": "f4804b68-db6d-4fa0-9d38-e8d339ed949a",
"type": "main",
"index": 0
}
]
]
},
"e0e1f4a8-973f-44cc-9103-b2a92fa0cd0c": {
"main": [
[
{
"node": "1a016850-c310-43a6-9925-538086367d4f",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - 文書抽出, AI要約
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
2. 音声書き起こし - n8n制作(テンプレート)
音声転実行レポート:AssemblyAIとGPT-4による文字起こしと分析
If
Code
Wait
+
If
Code
Wait
22 ノードSridevi Edupuganti
文書抽出
画像を自動のにOCR → AI要約 → GoogleテーブルとGmailでの通知
Google Driveの画像からOCR.spaceを使ってテキストを抽出し、OpenRouter AIで要約をテーブルとGmail通知へ
Code
Gmail
Google Drive
+
Code
Gmail
Google Drive
15 ノードTsubasa Shukuwa
文書抽出
顧客への請日の自動送付
OCR.Space、GPT-4、および Google Drive から Gmail への自動化
If
Set
Code
+
If
Set
Code
29 ノードMichael Taleb
AI要約
GeminiとJina AIを使用したサプライヤー調査の勤勉性業務の自動化
Gemini および Jina AI を使用したサプライヤー調査の自動化
If
Set
Code
+
If
Set
Code
27 ノードAdnan
文書抽出
会議の自動概要
Google Meet から Slack までの会議要約を Vexa.ai と GPT-4o で自動生成
If
Code
Wait
+
If
Code
Wait
14 ノードVladimir
文書抽出
AI および Gmail を使って YNAB 内の Amazon 取引の備考を自動更新
AIとGmailを使ってYNABのAmazon取引コメントを自動更新
If
Set
Wait
+
If
Set
Wait
30 ノードAngel Menendez
文書抽出
ワークフロー情報
難易度
上級
ノード数16
カテゴリー2
ノードタイプ8
作成者
Raymond Camden
@raymondcamdenAs an API Evangelist for Foxit, Raymond Camden specializes in the power of APIs, the web platform, and generative AI. A prolific author and seasoned presenter, he has been a prominent voice in the developer community for over two decades. You can explore his work and insights on his long-running blog at www.raymondcamden.com or reach him directly at raymondcamden@gmail.com.
外部リンク
n8n.ioで表示 →
このワークフローを共有