PDF旅程抽出からGoogleスプレッドシート(GPT-4.1-Mini+Gmail通知)
中級
これは自動化ワークフローで、9個のノードを含みます。主にGmail, SplitOut, FormTrigger, GoogleSheets, SplitInBatchesなどのノードを使用。 GPT-4.1-Miniを使ってPDFの行程をGoogleスプレッドシートに抽出し、Gmailで通知を送信
前提条件
- •Googleアカウント + Gmail API認証情報
- •Google Sheets API認証情報
- •OpenAI API Key
使用ノード (9)
カテゴリー
-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "FaoXqBQDK5JryXkW",
"meta": {
"instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502",
"templateCredsSetupCompleted": true
},
"name": "Extract PDF Itineraries to Google Sheets with GPT-4.1-Mini & Gmail Notifications",
"tags": [],
"nodes": [
{
"id": "51147ae9-3e42-474b-aecf-321b364b8b11",
"name": "メール作成",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1072,
960
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "=Agency Name: {{ $json['Agency Name'] }} \nEmail:{{ $json.Email }}\nAddress: {{ $json.Address }}\nPhone:{{ $json.Phone }}\nDate:{{ $json.Date }}\nTour:{{ $json.tour }}\nDeparture Date: {{ $json['departure date'] }}"
},
{
"role": "system",
"content": "=# Overview\nYou are an email specialist for a Tour Agency. You will receive tour itinerary information. Your task is to confirm receipt of the itinerary and notify the relevant parties.\n\n## Email\nInform the team that the itinerary has been received and processed. Notify them that it has been updated in the Tour Database and provide them with the access link to view it.\n https://docs.google.com/spreadsheets/d/1lg-GRBTQCvM9WC_Mbhe4YXwgyrRcHm8K2JYDHg4XOww/edit?gid=0#gid=0\n\n## Output\nOutput the following parameters separately:\nSubject\nEmail"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "OGYj7DgYv5GFLFZk",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.8
},
{
"id": "ab57e57e-c161-48b3-ab73-caea2ef9c12c",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
544,
1136
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "OGYj7DgYv5GFLFZk",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "6dd88c5f-6724-4872-97fc-0cc152d7446d",
"name": "付箋ノート1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1024,
768
],
"parameters": {
"width": 784,
"height": 992,
"content": "# Extract PDF Itineraries to Google Sheets with GPT-4.1-Mini & Gmail Notifications\n\n## Overview\nAutomates PDF data extraction using OpenAI GPT, saves to Google Sheets, sends email confirmations. Reduces manual entry by 90%.\n\n## How It Works\n1. Receives PDF uploads via form\n2. Splits & loops through files\n3. AI extracts structured data\n4. Appends to Sheets with timestamps\n5. Sends confirmation email\n\n## Prerequisites\n- OpenAI API key ([platform.openai.com](https://platform.openai.com))\n- Google Workspace (Sheets & Gmail)\n- n8n v1.0.0+\n\n## Setup\n1. Add OpenAI API key to n8n credentials\n2. Create Google Sheet with extraction columns, authorize OAuth2\n3. Configure Gmail OAuth2\n4. Import workflow JSON\n5. Edit AI prompt for your fields\n6. Activate & share form URL\n\n## Customization\n- Modify extraction prompts\n- Adjust Sheets mapping\n- Customize email templates\n- Add error handling/validation\n- Extend to Word/Excel files\n\n## Use Cases\nInvoices, expense reports, resumes, contracts, forms, legal docs\n"
},
"typeVersion": 1
},
{
"id": "e58f6aab-f60d-4eba-9d3c-4aba55d299e4",
"name": "抽出情報をGoogle Sheetsへ",
"type": "n8n-nodes-base.googleSheets",
"position": [
848,
960
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $json.output[' Date'] }}",
"tour": "={{ $json.output.tour }}",
"Email": "={{ $json.output.Email }}",
"Phone": "={{ $json.output.Phone }}",
"Address": "={{ $json.output.Address }}",
"Agency Name": "={{ $json.output['Agency Name'] }}",
"departure date": "={{ $json.output['departure date'] }}"
},
"schema": [
{
"id": "Agency Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Agency Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "tour",
"type": "string",
"display": true,
"required": false,
"displayName": "tour",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "departure date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "departure date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Agency Name"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1lg-GRBTQCvM9WC_Mbhe4YXwgyrRcHm8K2JYDHg4XOww/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1lg-GRBTQCvM9WC_Mbhe4YXwgyrRcHm8K2JYDHg4XOww",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1lg-GRBTQCvM9WC_Mbhe4YXwgyrRcHm8K2JYDHg4XOww/edit?usp=drivesdk",
"cachedResultName": "tour"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "KBo80D4RMDyyBspg",
"name": "Google Sheets account 2"
}
},
"typeVersion": 4.5
},
{
"id": "8f5ff28e-0301-4cd9-bdd2-2d9278c2d0ec",
"name": "Loop Over Items(各文書を確実に処理)",
"type": "n8n-nodes-base.splitInBatches",
"position": [
288,
960
],
"parameters": {
"options": {
"reset": false
}
},
"typeVersion": 3
},
{
"id": "e5a12fea-0bde-49db-8b48-b58aa31bbfb2",
"name": "複数PDFファイルを受け取るフォーム",
"type": "n8n-nodes-base.formTrigger",
"position": [
-176,
960
],
"webhookId": "881300df-4407-4830-9c29-1df843946ddc",
"parameters": {
"options": {},
"formTitle": "LOAD MULTIPLE FILES",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "files",
"requiredField": true,
"acceptFileTypes": "*.pdf"
}
]
},
"formDescription": "Select multiple pdf files to run this example."
},
"typeVersion": 2.2
},
{
"id": "453337ca-283e-4e6d-be87-87a435537032",
"name": "Split Files(PDFを個別に処理)",
"type": "n8n-nodes-base.splitOut",
"position": [
48,
960
],
"parameters": {
"options": {
"includeBinary": true,
"destinationFieldName": "=files"
},
"fieldToSplitOut": "=files"
},
"executeOnce": false,
"typeVersion": 1
},
{
"id": "940b3087-4fc8-439d-98e3-7e14f034becc",
"name": "結果付きメール確認送信",
"type": "n8n-nodes-base.gmail",
"position": [
1424,
1088
],
"webhookId": "2c4c1f75-af3a-4c51-975c-0d493d317637",
"parameters": {
"sendTo": " xxxxxxxx@gmail.com",
"message": "= {{ $('Create Email').item.json.message.content.Email }}",
"options": {
"appendAttribution": false
},
"subject": "={{ $json.message.content.Subject }}",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "zkm2omCjmdLquZGT",
"name": "Gmail account 2"
}
},
"typeVersion": 2.1
},
{
"id": "5f12a35a-6019-4b89-83c1-9ceadaa60cad",
"name": "PDFの分析・抽出",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
544,
960
],
"parameters": {
"text": "={{ $json.files.filename }}",
"options": {
"systemPromptTemplate": "You are an expert extraction algorithm.\nOnly extract relevant information from the text.\nIf you do not know the value of an attribute asked to extract, you may omit the attribute's value."
},
"attributes": {
"attributes": [
{
"name": "Agency Name",
"required": true,
"description": "the name of the client"
},
{
"name": "Email",
"required": true,
"description": "the email of the client"
},
{
"name": "Address",
"required": true,
"description": "the address of the client"
},
{
"name": "Phone",
"required": true,
"description": "the phone number of the client"
},
{
"name": " Date",
"type": "date",
"required": true,
"description": "the date "
},
{
"name": "tour",
"required": true,
"description": "holiday package tour"
},
{
"name": "departure date",
"required": true,
"description": "departure date"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "17da634d-89f9-4c60-8c9b-f8b018c99481",
"connections": {
"51147ae9-3e42-474b-aecf-321b364b8b11": {
"main": [
[
{
"node": "940b3087-4fc8-439d-98e3-7e14f034becc",
"type": "main",
"index": 0
}
]
]
},
"ab57e57e-c161-48b3-ab73-caea2ef9c12c": {
"ai_languageModel": [
[
{
"node": "5f12a35a-6019-4b89-83c1-9ceadaa60cad",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"5f12a35a-6019-4b89-83c1-9ceadaa60cad": {
"main": [
[
{
"node": "e58f6aab-f60d-4eba-9d3c-4aba55d299e4",
"type": "main",
"index": 0
}
]
]
},
"e5a12fea-0bde-49db-8b48-b58aa31bbfb2": {
"main": [
[
{
"node": "453337ca-283e-4e6d-be87-87a435537032",
"type": "main",
"index": 0
}
]
]
},
"940b3087-4fc8-439d-98e3-7e14f034becc": {
"main": [
[
{
"node": "8f5ff28e-0301-4cd9-bdd2-2d9278c2d0ec",
"type": "main",
"index": 0
}
]
]
},
"8f5ff28e-0301-4cd9-bdd2-2d9278c2d0ec": {
"main": [
[],
[
{
"node": "5f12a35a-6019-4b89-83c1-9ceadaa60cad",
"type": "main",
"index": 0
}
]
]
},
"e58f6aab-f60d-4eba-9d3c-4aba55d299e4": {
"main": [
[
{
"node": "51147ae9-3e42-474b-aecf-321b364b8b11",
"type": "main",
"index": 0
}
]
]
},
"453337ca-283e-4e6d-be87-87a435537032": {
"main": [
[
{
"node": "8f5ff28e-0301-4cd9-bdd2-2d9278c2d0ec",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
GPT-4 Mini、Google シート、Gmailを使って学術出版情報を抽出・整理
GPT-4 Mini、Google Sheets、Gmailを使用した学術出版物の抽出と整理
Html
Sort
Gmail
+
Html
Sort
Gmail
26 ノードCheng Siong Chin
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
基于AIのMISエージェント
基于AIの管理信息系统エージェント
If
Set
Code
+
If
Set
Code
129 ノードKumar Shivam
サポート
潜在顧客開掘とメールワーキングフロー
Google Maps、SendGrid、AIを使用してB2Bリード獲得とメールマーケティングを自動化
If
Set
Code
+
If
Set
Code
141 ノードEzema Kingsley Chibuzo
リード獲得
コールドメール生成
Apollo、Apify、GPTを使用してB2Bリード獲得とパーソナライズされたクールドメールを自動化
If
Wait
Gmail
+
If
Wait
Gmail
24 ノードMirai
OpenAI、ElevenLabs、Fal.ai を使用した動画・パ odcast・ASM R向けのウイルス性コンテンツ自動作成
OpenAI、ElevenLabs、そして Fal.ai を使って動画、ポッドキャスト、ASMR に向けたウイルスのコンテンツ作成を自動化
Set
Code
Wait
+
Set
Code
Wait
97 ノードAdam Crafts
コンテンツ作成
ワークフロー情報
難易度
中級
ノード数9
カテゴリー-
ノードタイプ9
作成者
Cheng Siong Chin
@cschinProf. Cheng Siong CHIN serves as Chair Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.
外部リンク
n8n.ioで表示 →
このワークフローを共有