AI驱动顧客反馈分析与路由,統合Gmail、Zendesk、SlackとPipedrive
上級
これは自動化ワークフローで、23個のノードを含みます。主にSet, GmailTool, SlackTool, NotionTool, ZendeskToolなどのノードを使用。 AI驱动顧客反馈分析与路由,統合Gmail、Zendesk、SlackとPipedrive
前提条件
- •Googleアカウント + Gmail API認証情報
- •Slack Bot Token または Webhook URL
- •Notion API Key
- •OpenAI API Key
使用ノード (23)
カテゴリー
-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"nodes": [
{
"id": "60256706-eabb-4ff1-abf0-78b5a9ca0869",
"name": "手動トリガー: VOC分析開始",
"type": "n8n-nodes-base.manualTrigger",
"position": [
48,
368
],
"parameters": {},
"typeVersion": 1
},
{
"id": "be859333-a941-4a71-951f-eeb6adcd0e4f",
"name": "設定: 初期パラメータ",
"type": "n8n-nodes-base.set",
"position": [
320,
368
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d69bdbe2-f51a-4956-9d5d-bfe3a82ec82d",
"name": "CSM email",
"type": "string",
"value": "your-email@example.com"
},
{
"id": "3efe4a59-2983-4f07-8e5c-130a5aad6fdb",
"name": "slack_billing_channel",
"type": "string",
"value": "#billing-feedback"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c263ec19-9bdb-46fb-afde-4a17da961d3c",
"name": "設定: エージェント用LLM設定",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1552,
928
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {
"temperature": 0
}
},
"typeVersion": 1.2
},
{
"id": "bf4488bd-0e20-4827-b370-77396415f7c8",
"name": "設定: エージェントメモリ設定",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
432,
592
],
"parameters": {
"sessionKey": "1",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"name": "AIエージェント: 顧客フィードバック収集",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
736,
368
],
"parameters": {
"text": "=- Get **ALL** the mails sent after {{Date.now() - 7 * 24 * 60 * 60 * 1000}} from the user {{ $('Set: Initial Parameters').item.json['CSM email'] }}. Return only the Subject and the snippet.\n- Get **ALL** the messages from Slack return the user ID as customerId.\n- Get **ALL** the notes from Pipedrive. Use person_id as the customerId\n- Get **ALL** the tickets from Zendesk. Use requester_id as customerId",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "6b70f528-bd39-4758-9d04-6b3ff93af6ff",
"name": "AI: フィードバックデータ構造化",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1184,
592
],
"parameters": {
"autoFix": true,
"jsonSchemaExample": "\n [{\n \"source\": \"Zendesk | Gmail | Slack | Pipedrive\",\n \"customerId\": \"...\",\n \"messageId\": \"\",\n \"subject\": \"...\",\n \"text\": \"...\"\n}]\n\n"
},
"typeVersion": 1.3
},
{
"id": "7c5791aa-2842-47af-818b-004af9685455",
"name": "ツール: Gmailメッセージ取得",
"type": "n8n-nodes-base.gmailTool",
"position": [
576,
592
],
"webhookId": "d4a1dd6b-781c-4c44-b6a6-2d84a5542281",
"parameters": {
"filters": {
"sender": "=",
"receivedAfter": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_After', ``, 'string') }}"
},
"operation": "getAll",
"returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
},
"typeVersion": 2.1
},
{
"id": "fbca39a8-6593-4cdb-a582-3bb81d18cb3a",
"name": "ツール: Pipedriveノート取得",
"type": "n8n-nodes-base.pipedriveTool",
"position": [
736,
592
],
"parameters": {
"resource": "note",
"operation": "getAll",
"additionalFields": {}
},
"typeVersion": 1
},
{
"id": "a833e7b4-6510-44a5-934a-9d3b46289717",
"name": "ツール: Zendeskチケット取得",
"type": "n8n-nodes-base.zendeskTool",
"position": [
880,
592
],
"parameters": {
"options": {},
"operation": "getAll"
},
"typeVersion": 1
},
{
"id": "28a49bba-62fa-4896-8604-098903b84450",
"name": "ツール: Slackメッセージ検索 スプレッドシート出力",
"type": "n8n-nodes-base.slackTool",
"position": [
1024,
592
],
"webhookId": "cfa05622-054d-4981-8b27-79a0c88bfaea",
"parameters": {
"query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search_Query', ``, 'string') }}",
"options": {
"searchChannel": ""
},
"operation": "search",
"authentication": "oAuth2"
},
"typeVersion": 2.3
},
{
"id": "b9212f35-c028-481e-908b-12aa3324ac25",
"name": "AIチェーン: 主要シグナル抽出",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1552,
368
],
"parameters": {
"text": "=Prompt:\nYou are analyzing raw customer feedback from multiple sources (Gmail, Slack, Pipedrive, Zendesk).\nYour task: compress the \"text\" of each feedback into a concise signal (1–2 sentences max) that captures the core issue, request, or sentiment without losing meaning.\n\nRules:\n\t•\tStrip away greetings, signatures, and filler.\n\t•\tKeep specific product terms, error codes, or feature names if present.\n\t•\tNeutral, factual tone (don’t add assumptions).\n\t•\tIf the text is vague, summarize it at the same level of vagueness.\n\t•\tOutput only the summary text, no extra commentary.\n\nExample:\n\t•\tInput: “Hi team, I’ve tried three times to update my billing info but the system keeps failing with error 502. Can someone help?”\n\t•\tOutput: Customer unable to update billing info due to repeated error 502. \n\nHere is the content:\n{{ JSON.stringify($json.output) }}",
"batching": {
"batchSize": 5
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "7ec417ac-bc65-4c9e-a1f7-dc3d295403e0",
"name": "AI: 主要シグナル構造化",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1696,
592
],
"parameters": {
"jsonSchemaExample": "[\n\t{\"original_text\": \"\",\n\t\"signals\": [\"\", \"\"]\n}]"
},
"typeVersion": 1.3
},
{
"id": "09797f66-2ce6-4392-afb4-a646ba733799",
"name": "AIチェーン: シグナルをトピックにクラスタリング",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1904,
368
],
"parameters": {
"text": "=Prompt:\nYou will receive a set of short customer feedback signals.\nYour task: group them by shared topic or problem and assign each group a clear, human-readable label.\n\nRules:\n\t•\tLabels should be broad enough to cover all items in the group, but still actionable (e.g. Billing, Onboarding, Performance, Feature Requests).\n\t•\tAvoid vague labels like General Feedback unless no pattern exists.\n\t•\tEach cluster must include:\n\t•\tLabel\n\t•\tCount of items\n\t•\tRepresentative examples (1–3 feedback snippets).\n\n {{ JSON.stringify($json.output) }}",
"batching": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "d31b8993-f7c4-496f-9515-ae2e39e84f17",
"name": "AI: クラスタリング済みトピック構造化 スプレッドシート出力",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2048,
592
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"label\": \"Billing\",\n \"count\": 8,\n \"examples\": [\n \"Unable to update billing info due to error 502\",\n \"Invoice shows wrong amount\"\n ]\n }\n]"
},
"typeVersion": 1.3
},
{
"id": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
"name": "AIエージェント: トピックをアクションにルーティング",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2320,
368
],
"parameters": {
"text": "=Prompt:\nYou will receive a list of feedback clusters, each with a label, count, and examples.\nFirst you will send the processed input to \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with the subject \"Weekly digest\"\nYour task: decide the correct destination action for each cluster based on the label and the count if it is superior to 1. Each message will have the examples in it.\n\n## Routing Rules:\n### Performance / Feature gaps → Product\n - Create a zendesk ticket with the label as the title and the examples as the description\n### Billing / Contract issues → Finance or Sales Ops\n - Post message to Slack channel {{ $('Set: Initial Parameters').item.json.slack_billing_channel }} with the examples as the text\n### Onboarding / Training → CS Enablement\n - Create Notion task with the label as the title and the examples as the content\n### High-risk sentiment / VIP account → CS Manager\n - Send direct email to cs Manager \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with tzhe subject \"Problem with the software\" and the examples as the text\n### Sales and customer engagement\n - Send direct email to cs Manager \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with the subject \"Customer engagement\" and the examples as the text\n\n### Client Management and Proposals\n - Send direct email to cs Manager \"{{ $('Set: Initial Parameters').item.json['CSM email'] }}\" with the subject \"Client Management and Proposals\" with the examples as the text\n \nIf the cluster doesn’t fit above, mark as \"unassigned\" but keep it in the output.\nThe input:\n {{ JSON.stringify($json.output) }}",
"options": {},
"promptType": "=define"
},
"typeVersion": 2.2
},
{
"id": "ebefbd63-8ea6-49e3-be48-4aaf1b4f7011",
"name": "ツール: Zendeskチケット作成",
"type": "n8n-nodes-base.zendeskTool",
"position": [
2320,
592
],
"parameters": {
"description": "Ticket generated by n8n",
"jsonParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('JSON_Parameters', ``, 'boolean') }}",
"additionalFields": {}
},
"typeVersion": 1
},
{
"id": "2b0c3dc2-cf60-4d2b-8127-4141d34e7bee",
"name": "ツール: メールアラート送信",
"type": "n8n-nodes-base.gmailTool",
"position": [
2464,
592
],
"webhookId": "127092c9-48cd-40be-9d99-afd264bd95fb",
"parameters": {
"sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
"emailType": "text"
},
"typeVersion": 2.1
},
{
"id": "b47fc28d-72f5-42f9-a661-254a392ae443",
"name": "ツール: Notionページ作成",
"type": "n8n-nodes-base.notionTool",
"position": [
2608,
592
],
"parameters": {
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
"simple": false,
"options": {},
"resource": "databasePage",
"databaseId": {
"__rl": true,
"mode": "id",
"value": ""
},
"propertiesUi": {
"propertyValues": [
{
"key": "Content|rich_text",
"textContent": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('propertyValues0_Text', ``, 'string') }}"
}
]
}
},
"notesInFlow": false,
"typeVersion": 2.2
},
{
"id": "fdac92b0-5b36-4fdc-a384-93c2d6c20cc6",
"name": "注記: データ収集",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
176
],
"parameters": {
"color": 7,
"width": 380,
"height": 128,
"content": "### Data Gathering Agent\nThis AI Agent's job is to collect all recent customer interactions.\nIt uses its tools (Gmail, Pipedrive, Zendesk, Slack) to fetch the raw data based on the initial prompt."
},
"typeVersion": 1
},
{
"id": "ab1edac7-c359-433a-bad5-70c876d9cfb1",
"name": "注記: 分析チェーン",
"type": "n8n-nodes-base.stickyNote",
"position": [
1616,
160
],
"parameters": {
"color": 7,
"width": 476,
"height": 152,
"content": "### AI Analysis Chain\nThis chain processes the raw data in two steps:\n1. **Signal Extraction:** The first LLM Chain reads all the raw text and compresses it into concise 'signals'.\n2. **Clustering:** The second LLM Chain takes these signals and groups them into actionable topics (e.g., 'Billing', 'Performance')."
},
"typeVersion": 1
},
{
"id": "0e500b93-135e-4a03-91e8-2159cc58718b",
"name": "注記: アクションエージェント",
"type": "n8n-nodes-base.stickyNote",
"position": [
2224,
160
],
"parameters": {
"color": 7,
"width": 412,
"height": 152,
"content": "### Action & Routing Agent\nThis final AI Agent acts as a dispatcher. It analyzes the clustered topics and follows a set of 'Routing Rules' in its prompt to decide which action to take.\nIt then uses its tools to send the information to the correct destination (Zendesk, Slack, Notion, or Email)."
},
"typeVersion": 1
},
{
"id": "0642f4ae-f111-4446-9e9a-c9bb0c1e609c",
"name": "ワークフロー文書化",
"type": "n8n-nodes-base.stickyNote",
"position": [
16,
-320
],
"parameters": {
"color": 4,
"width": 980,
"height": 392,
"content": "### **Voice of Customer AI Analysis & Routing**\nThis workflow automates the process of gathering customer feedback from multiple sources, using a chain of AI agents to analyze, summarize, and categorize it, and finally routing the insights to the appropriate teams for action.\n\n**How it Works:**\n1. **Gathers Data:** An AI Agent uses tools to collect recent messages from Gmail, Pipedrive, Zendesk, and Slack.\n2. **Analyzes & Summarizes:** An AI Chain processes the raw text, first extracting key 'signals' and then clustering those signals into topics (e.g., 'Billing', 'Feature Request').\n3. **Routes for Action:** A final AI Agent analyzes the topics and uses tools to create Zendesk tickets, send Slack messages, create Notion pages, or send email alerts based on a set of rules.\n\n### 🚀 **How to Set Up**\n1. **Configure Credentials:** Add your credentials for all the 'Tool' nodes and the `Config: Set LLM for Agents` node.\n2. **Set Initial Parameters:** In the `Set: Initial Parameters` node, update the placeholder email address and the Slack channel name for billing alerts.\n3. **Update Slack Search Channel:** In the `Tool: Search Slack Messages` node, set the channel you want the agent to search for feedback in.\n4. **Activate Workflow:** Once configured, activate the workflow."
},
"typeVersion": 1
},
{
"id": "eff608be-8f8d-4379-a9f0-5ab1beb26b3d",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
960
],
"parameters": {
"color": 6,
"width": 432,
"height": 176,
"content": "## Contact me\n- If you need any modification to this workflow\n- if you need some help with this workflow\n- Or if you need any workflow in n8n, Make, or Langchain / Langgraph\n\nWrite to me: [thomas@pollup.net](<mailto:thomas@pollup.net>)"
},
"typeVersion": 1
}
],
"connections": {
"2b0c3dc2-cf60-4d2b-8127-4141d34e7bee": {
"ai_tool": [
[
{
"node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
"type": "ai_tool",
"index": 0
}
]
]
},
"be859333-a941-4a71-951f-eeb6adcd0e4f": {
"main": [
[
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "main",
"index": 0
}
]
]
},
"bf4488bd-0e20-4827-b370-77396415f7c8": {
"ai_memory": [
[
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "ai_memory",
"index": 0
}
]
]
},
"b47fc28d-72f5-42f9-a661-254a392ae443": {
"ai_tool": [
[
{
"node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
"type": "ai_tool",
"index": 0
}
]
]
},
"7c5791aa-2842-47af-818b-004af9685455": {
"ai_tool": [
[
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "ai_tool",
"index": 0
}
]
]
},
"7ec417ac-bc65-4c9e-a1f7-dc3d295403e0": {
"ai_outputParser": [
[
{
"node": "b9212f35-c028-481e-908b-12aa3324ac25",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"fbca39a8-6593-4cdb-a582-3bb81d18cb3a": {
"ai_tool": [
[
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "ai_tool",
"index": 0
}
]
]
},
"a833e7b4-6510-44a5-934a-9d3b46289717": {
"ai_tool": [
[
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "ai_tool",
"index": 0
}
]
]
},
"c263ec19-9bdb-46fb-afde-4a17da961d3c": {
"ai_languageModel": [
[
{
"node": "6b70f528-bd39-4758-9d04-6b3ff93af6ff",
"type": "ai_languageModel",
"index": 0
},
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "ai_languageModel",
"index": 0
},
{
"node": "b9212f35-c028-481e-908b-12aa3324ac25",
"type": "ai_languageModel",
"index": 0
},
{
"node": "09797f66-2ce6-4392-afb4-a646ba733799",
"type": "ai_languageModel",
"index": 0
},
{
"node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"6b70f528-bd39-4758-9d04-6b3ff93af6ff": {
"ai_outputParser": [
[
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"ebefbd63-8ea6-49e3-be48-4aaf1b4f7011": {
"ai_tool": [
[
{
"node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
"type": "ai_tool",
"index": 0
}
]
]
},
"b9212f35-c028-481e-908b-12aa3324ac25": {
"main": [
[
{
"node": "09797f66-2ce6-4392-afb4-a646ba733799",
"type": "main",
"index": 0
}
]
]
},
"8f128774-c198-4a13-8d19-8cf5ac19c8b8": {
"main": [
[
{
"node": "b9212f35-c028-481e-908b-12aa3324ac25",
"type": "main",
"index": 0
}
]
]
},
"60256706-eabb-4ff1-abf0-78b5a9ca0869": {
"main": [
[
{
"node": "be859333-a941-4a71-951f-eeb6adcd0e4f",
"type": "main",
"index": 0
}
]
]
},
"09797f66-2ce6-4392-afb4-a646ba733799": {
"main": [
[
{
"node": "b26017dd-99f0-4033-9fb4-cfcf3be03c14",
"type": "main",
"index": 0
}
]
]
},
"28a49bba-62fa-4896-8604-098903b84450": {
"ai_tool": [
[
{
"node": "8f128774-c198-4a13-8d19-8cf5ac19c8b8",
"type": "ai_tool",
"index": 0
}
]
]
},
"d31b8993-f7c4-496f-9515-ae2e39e84f17": {
"ai_outputParser": [
[
{
"node": "09797f66-2ce6-4392-afb4-a646ba733799",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
n8nノードの探索(可視化リファレンスライブラリ内)
n8nノードを可視化リファレンスライブラリで探索
If
Ftp
Set
+
If
Ftp
Set
113 ノードI versus AI
その他
BrowserflowとGoogle Sheetsを活用したLinkedInリクエストとア破冰メッセージの自動化
Browserflow と Google Sheets を使って LinkedIn リクエストとブレイクアウトメッセージを自動化
If
Set
Sort
+
If
Set
Sort
44 ノードPollupAI
営業
サポートチケットの分類とルーティング自動化
GPTを使用したHubSpotからJiraへのサポートチケット分類&ルーティングの自動化
Set
Jira
Switch
+
Set
Jira
Switch
23 ノードPollupAI
AI要約
高度なマルチエージェントAIパーソナルアシスタント(250+タスク対応、WhatsApp + GPT)
高度なマルチエージェントAIパーソナルアシスタント(250以上のタスク対応、WhatsApp + GPT)
Set
Switch
Whats App
+
Set
Switch
Whats App
213 ノードElectrabot
個人の生産性
ブログWordPress複製販売
GPT-4、Perplexity AI、WordPressを使用したSEOブログコンテンツ作成の自動化
Set
Code
Notion
+
Set
Code
Notion
39 ノードLukaszB
人工知能
ブログ投稿自動化とSNSプロモーションエージェント
GPT-4、Perplexity、WordPressを使用したSEOブログ作成の自動化+ソーシャルメディア
Set
Code
Gmail
+
Set
Code
Gmail
79 ノードLukaszB
デザイン
ワークフロー情報
難易度
上級
ノード数23
カテゴリー-
ノードタイプ13
作成者
PollupAI
@zeerobugWe create bespoke AI solutions, automations and agents that help your business as it scales.
外部リンク
n8n.ioで表示 →
このワークフローを共有