GPT-4o・Outlook・GoToHumanを使用した自動返信
これはTicket Management, AI Chatbot分野の自動化ワークフローで、15個のノードを含みます。主にIf, Code, ManualTrigger, SplitInBatches, Agentなどのノードを使用。 GPT-4o、Outlook、GoToHuman承認を使った自動メール返信
- •OpenAI API Key
使用ノード (15)
{
"meta": {
"instanceId": "efb474b59b0341d7791932605bd9ff04a6c7ed9941fdd53dc4a2e4b99a6f9439",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "db46a99c-a87d-4203-925f-f94fed274bbe",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
120,
0
],
"parameters": {
"color": 5,
"width": 1200,
"height": 760,
"content": "### 4. **Generate AI Response**\n- Text prompt to OpenAI: \n ```\n subject: {{ $json.subject }} \n body: {{ $json.body.content }}\n ```\n\n- System prompt: \n > You are a personal assistant helping respond to emails. I am an AI automation expert specializing in helping small and medium-size businesses automate processes. Create a short response to the email. Sign the email as Robert Breen.\n"
},
"typeVersion": 1
},
{
"id": "2b29c366-caf6-41e5-bf09-a6f60ab9d315",
"name": "ツール: 創造性の注入",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
600,
520
],
"parameters": {},
"typeVersion": 1
},
{
"id": "df07d826-251e-4b9f-927f-637280847891",
"name": "パーサー: IdeaからJSONを抽出",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
800,
480
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"body\": \"\"\n }\n]\n"
},
"typeVersion": 1.2
},
{
"id": "3f7eeefc-a208-4020-8b6a-7dc536126daa",
"name": "openai",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
480,
500
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "ghJTvay8CvwXDsXz",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "c1d3fd0d-b84e-4346-aa2e-3c3b8cf358e3",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
0
],
"parameters": {
"width": 980,
"height": 760,
"content": "### 1. **Trigger** \nUse the Manual Trigger to test or schedule execution with a cron node.\n\n### 2. **Filter Emails from Today**\nA Code node outputs today's date in the proper `yyyy-mm-dd` format.\n\n```javascript\nconst today = new Date();\ntoday.setHours(0, 0, 0, 0);\nreturn [{ json: { searchQuery: `received:${today.toISOString().split('T')[0]}` } }];\n```\n\n### 3. **Search and Filter Outlook Messages**\n- Uses the Outlook node with a search query like: \n `received:2025-08-06 -from:rbreen@ynteractive.com` (Update to your email address)"
},
"typeVersion": 1
},
{
"id": "af0105d8-5b95-4d82-8735-acb6358f607b",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1340,
0
],
"parameters": {
"color": 3,
"width": 760,
"height": 760,
"content": "### 5. **Review with gotoHuman**\n- Submit AI output for human approval using the `gotoHuman` node.\n- The output schema should match the Review Template fields (e.g., \"email\", \"OriginalEmail\").\n\n### 6. **IF Node Decision**\n- If status is `approved`, send reply\n- If not, return to loop for revision or skip\n\n---"
},
"typeVersion": 1
},
{
"id": "be573205-24d6-49e7-924e-d9bfd1879505",
"name": "テスト",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-800,
420
],
"parameters": {},
"typeVersion": 1
},
{
"id": "807aecbb-fdc0-4a6b-9fbb-186aefdad240",
"name": "本日の日付を出力",
"type": "n8n-nodes-base.code",
"position": [
-520,
560
],
"parameters": {
"jsCode": "const today = new Date();\ntoday.setHours(0, 0, 0, 0); // Normalize to start of day\n\nconst formattedDate = today.toISOString().split('T')[0]; // \"2025-08-06\"\n\nreturn [\n {\n json: {\n searchQuery: `received:${formattedDate}`\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
"name": "AIエージェント: linkedinのキャプション作成",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
560,
300
],
"parameters": {
"text": "=subject: {{ $json.subject }} Body: {{ $json.body.content }}",
"options": {
"systemMessage": "=You are a personal assistant helping respond to emails. I am an ai automation expert specializing in helping small and medium size businesses automate processes. Create a short response to the email that you are analyzing. \n\nThe email that you write should be written to the sender who sent the email to us. \n\nSign the email as Robert Breen\n\noutput the data like this. \n\n[\n {\n \"body\": \"\"\n }\n]\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "41d1ebef-9808-4d0b-ae30-2e8cd0ae597a",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
-240
],
"parameters": {
"color": 6,
"width": 2980,
"height": 200,
"content": "# 🤖AI-Powered Outlook Email Assistant with GoToHuman Approval Workflow\n## 📬 Need Help?\n\nMessage me on [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/) \nor email me at **robert@ynteractive.com**\n"
},
"typeVersion": 1
},
{
"id": "a27db7b8-96b1-425e-98d9-e1dc5f939478",
"name": "Microsoft Outlook",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
-280,
420
],
"webhookId": "ae07c8b7-e0be-4a87-93a8-cfcb00303d0c",
"parameters": {
"limit": 2,
"output": "raw",
"options": {},
"filtersUI": {
"values": {
"search": "={{ $json.searchQuery }} -from:rbreen@ynteractive.com\n",
"filterBy": "search"
}
},
"operation": "getAll"
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"id": "VmTDwKgAl78H8pek",
"name": "Microsoft Outlook account"
}
},
"typeVersion": 2
},
{
"id": "3830b457-613f-4709-b70a-ae5d089d8a83",
"name": "gotoHuman",
"type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
"position": [
1460,
300
],
"webhookId": "29fff214-9915-47fe-833f-c78d42709c76",
"parameters": {
"fields": {
"value": {
"email": "={{ $json.output[0].body }}",
"OriginalEmail": "={{ $('Microsoft Outlook').item.json.body.content }}"
},
"schema": [
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email (text)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "OriginalEmail",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "OriginalEmail (emailHtml)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"additionalFields": {},
"reviewTemplateID": {
"__rl": true,
"mode": "list",
"value": "7nYfIV9vrefvuHcccGEB",
"cachedResultName": "Email Responses (7nYfIV9vrefvuHcccGEB)"
}
},
"credentials": {
"gotoHumanApi": {
"id": "DDAwJMAARwFCF0fA",
"name": "gotoHuman account"
}
},
"executeOnce": true,
"typeVersion": 1
},
{
"id": "6484d15f-94d2-4078-93de-beee1985e085",
"name": "アイテムをループ処理",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-40,
560
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "07ef9661-0df9-41a9-b412-3f2af84bba43",
"name": "Microsoft Outlook1",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
1920,
520
],
"webhookId": "0208ffbc-c796-47a4-8e71-aa175d970c54",
"parameters": {
"message": "={{ $json.responseValues.email.value }}",
"options": {},
"messageId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Microsoft Outlook').item.json.id }}"
},
"operation": "reply"
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"id": "VmTDwKgAl78H8pek",
"name": "Microsoft Outlook account"
}
},
"typeVersion": 2
},
{
"id": "5b6f8868-ac73-44f0-9eaa-64250abab4d6",
"name": "条件分岐",
"type": "n8n-nodes-base.if",
"position": [
1700,
300
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8516d970-6327-47de-83ab-1945acd928b2",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.response }}",
"rightValue": "approved"
}
]
}
},
"typeVersion": 2.2
}
],
"pinData": {},
"connections": {
"5b6f8868-ac73-44f0-9eaa-64250abab4d6": {
"main": [
[
{
"node": "07ef9661-0df9-41a9-b412-3f2af84bba43",
"type": "main",
"index": 0
}
],
[
{
"node": "6484d15f-94d2-4078-93de-beee1985e085",
"type": "main",
"index": 0
}
]
]
},
"be573205-24d6-49e7-924e-d9bfd1879505": {
"main": [
[
{
"node": "807aecbb-fdc0-4a6b-9fbb-186aefdad240",
"type": "main",
"index": 0
}
]
]
},
"3f7eeefc-a208-4020-8b6a-7dc536126daa": {
"ai_languageModel": [
[
{
"node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"3830b457-613f-4709-b70a-ae5d089d8a83": {
"main": [
[
{
"node": "5b6f8868-ac73-44f0-9eaa-64250abab4d6",
"type": "main",
"index": 0
}
]
]
},
"6484d15f-94d2-4078-93de-beee1985e085": {
"main": [
[],
[
{
"node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
"type": "main",
"index": 0
}
]
]
},
"a27db7b8-96b1-425e-98d9-e1dc5f939478": {
"main": [
[
{
"node": "6484d15f-94d2-4078-93de-beee1985e085",
"type": "main",
"index": 0
}
]
]
},
"07ef9661-0df9-41a9-b412-3f2af84bba43": {
"main": [
[
{
"node": "6484d15f-94d2-4078-93de-beee1985e085",
"type": "main",
"index": 0
}
]
]
},
"807aecbb-fdc0-4a6b-9fbb-186aefdad240": {
"main": [
[
{
"node": "a27db7b8-96b1-425e-98d9-e1dc5f939478",
"type": "main",
"index": 0
}
]
]
},
"2b29c366-caf6-41e5-bf09-a6f60ab9d315": {
"ai_tool": [
[
{
"node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
"type": "ai_tool",
"index": 0
}
]
]
},
"df07d826-251e-4b9f-927f-637280847891": {
"ai_outputParser": [
[
{
"node": "b4d9154b-c7e8-437b-b6d8-ed22327bfccf",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"b4d9154b-c7e8-437b-b6d8-ed22327bfccf": {
"main": [
[
{
"node": "3830b457-613f-4709-b70a-ae5d089d8a83",
"type": "main",
"index": 0
}
]
]
}
}
}このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - チケット管理, AIチャットボット
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Robert Breen
@rbreenProfessional services consultant with over 10 years of experience solving complex business problems across industries. I specialize in n8n and process automation—designing custom workflows that integrate tools like Google Calendar, Airtable, GPT, and internal systems. Whether you need to automate scheduling, sync data, or streamline operations, I build solutions that save time and drive results.
このワークフローを共有