This workflow corresponds to n8n.io template #7795 — we link there as the canonical source.
This workflow follows the Agent → Chainllm recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "ed616fbb-37e3-4921-8489-c73f804a9079",
"name": "Transcribe1",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-1040,
6032
],
"parameters": {},
"typeVersion": 1.6
},
{
"id": "771f6729-6905-452d-bb22-3c77175a8501",
"name": "Merge3",
"type": "n8n-nodes-base.merge",
"position": [
864,
5312
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "664c272c-417f-41d7-a4a2-6611de4bcde9",
"name": "Aggregate3",
"type": "n8n-nodes-base.aggregate",
"position": [
1088,
5312
],
"parameters": {},
"typeVersion": 1
},
{
"id": "026c3136-c0f1-4d84-a916-edf07d29cc95",
"name": "Merge4",
"type": "n8n-nodes-base.merge",
"position": [
912,
6608
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "d4d9b351-8725-4d22-9389-1a12d166405b",
"name": "OpenAI Chat Model8",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
240,
5680
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "d55f8a89-cb2b-465e-be9f-5e160fd9cf36",
"name": "OpenAI Chat Model10",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
240,
6000
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "f86cf4c8-047f-4f2a-9f3c-90f6c7593fe9",
"name": "OpenAI Chat Model11",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
288,
6288
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "49684dd6-45d1-4659-9a63-103d121517a8",
"name": "Think1",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
1872,
5648
],
"parameters": {},
"typeVersion": 1
},
{
"id": "af8b5ab4-b100-442f-84be-d3384a064087",
"name": "Voice or Text",
"type": "n8n-nodes-base.switch",
"position": [
-1488,
6208
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "5b12d87f-ae5c-4fe7-becd-1507f8e4ac3a",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
400,
6000
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "f8d92a15-f1d7-48c6-9120-bdfeb8e7103a",
"name": "Structured Output Parser1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
400,
6304
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "72208554-80eb-48cf-bf9f-bf0031c59450",
"name": "Postgres Chat Memory",
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"position": [
1664,
5664
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "a4aaede1-c203-404d-815d-1b809565aa15",
"name": "sentiment classifier",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
288,
6192
],
"parameters": {},
"executeOnce": true,
"typeVersion": 1.6
},
{
"id": "20b52d96-f878-4b19-a2fa-c92a1e642e3e",
"name": "intent classifier",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
272,
5840
],
"parameters": {},
"typeVersion": 1.6
},
{
"id": "734a03da-5151-4424-80cb-d93c239fb61c",
"name": "Structured Output Parser2",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
448,
5680
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "cc1d47bc-df5e-4d00-97c0-16c046958907",
"name": "privacy classifier",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
288,
5520
],
"parameters": {},
"typeVersion": 1.6
},
{
"id": "3d3cf16b-54e0-4726-9281-78c7b19cc536",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2272,
5744
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2d697ea7-3abf-4adf-ac89-79df0e4ec7a1",
"name": "Knowledge base",
"type": "n8n-nodes-base.googleDocsTool",
"position": [
2320,
5824
],
"parameters": {},
"typeVersion": 2
},
{
"id": "c55bf827-2744-4568-a0ee-e023d7c731b6",
"name": "orders database",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
2048,
5824
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "9c0b1668-8176-4ebe-88de-7971975670eb",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1632,
5584
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "67557a8f-6979-4de7-830a-32519f1cdaa4",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1472,
5648
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "9a877509-cdbf-470e-8fc2-c6e01179559d",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2400,
5088
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "45cf1bee-b76c-434b-b741-aa9b2b69d68d",
"name": "Historial Chat and feedback",
"type": "n8n-nodes-base.googleSheets",
"position": [
2464,
5152
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "296bfe0a-274c-45f6-beac-29be94ba91e4",
"name": "Text",
"type": "n8n-nodes-base.set",
"position": [
-1136,
6304
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "5d95c556-1f4b-44de-beab-6d9e10d39026",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
1088,
6608
],
"parameters": {},
"typeVersion": 1
},
{
"id": "77776751-51b2-4ff5-a08b-ed94751dadd7",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1232,
6768
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "fcada9f2-6e98-4824-a019-8267a1d86a0d",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
5264
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "21364bfb-a211-4f06-9337-cde63889e234",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2032,
6048
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "a4aed731-3445-4087-8339-49a13f118765",
"name": "Normal path / success",
"type": "n8n-nodes-base.noOp",
"position": [
1680,
6960
],
"parameters": {},
"typeVersion": 1
},
{
"id": "a24a6100-4769-4bde-8f66-20621eec0113",
"name": "Owner escalation",
"type": "n8n-nodes-base.gmail",
"position": [
2080,
6192
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "9855fb4c-716b-4aa9-bcbb-e175b0faecac",
"name": "Critical complaint.",
"type": "n8n-nodes-base.gmail",
"position": [
2080,
6672
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "a76f2295-9084-4a08-822a-99fd143406da",
"name": "Human request.",
"type": "n8n-nodes-base.gmail",
"position": [
2080,
6432
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "ab94460f-fcfc-4697-86bb-98e78129d1f9",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
-768,
6192
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "67634fad-16a3-467a-8bef-08f7519dc78c",
"name": "OpenAI Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
208,
6944
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "0bfec7e7-29e3-4fe0-b150-a6689a8c2088",
"name": "Supabase1",
"type": "n8n-nodes-base.supabaseTool",
"position": [
352,
6944
],
"parameters": {},
"typeVersion": 1
},
{
"id": "568cdc98-723c-471b-aa3f-b406ce63357e",
"name": "Human intervention",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
1264,
6608
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "49a7c0f6-4d4f-4fbe-bb4c-9d5cd556f19c",
"name": "Aliment context for next messages",
"type": "n8n-nodes-base.supabase",
"position": [
2480,
5600
],
"parameters": {},
"typeVersion": 1
},
{
"id": "71cf835b-b799-4115-9920-dbf779f3e874",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1248,
6368
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "abe3ad98-5f46-48bc-8ef4-00796a8e69b4",
"name": "Generate conv context",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
272,
6720
],
"parameters": {},
"typeVersion": 2
},
{
"id": "a370f70a-d69b-492c-957e-148a249651d4",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3248,
4752
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b924e7c7-e0e2-41ae-aba6-3a418a35ee35",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1808,
5024
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b2ca23a4-f8b5-4ef6-8de8-c4c85f80cbbc",
"name": "Customer service AGENT",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1728,
5344
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "1a8a1179-07b8-4ed6-aaf2-8a8dca16e0f2",
"name": "WhatsApp Trigger",
"type": "n8n-nodes-base.whatsAppTrigger",
"position": [
-1696,
6208
],
"parameters": {},
"typeVersion": 1
},
{
"id": "861e3715-6d7b-438c-ac24-9403b516c4f4",
"name": "Download media",
"type": "n8n-nodes-base.whatsApp",
"position": [
-1264,
6032
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7e97bea5-3841-4956-aa1f-38ba65838e80",
"name": "Send message",
"type": "n8n-nodes-base.whatsApp",
"position": [
2544,
5376
],
"parameters": {},
"typeVersion": 1
}
],
"connections": {
"Text": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Merge": {
"main": [
[
{
"node": "intent classifier",
"type": "main",
"index": 0
},
{
"node": "sentiment classifier",
"type": "main",
"index": 0
},
{
"node": "privacy classifier",
"type": "main",
"index": 0
},
{
"node": "Merge4",
"type": "main",
"index": 2
},
{
"node": "Generate conv context",
"type": "main",
"index": 0
},
{
"node": "Merge3",
"type": "main",
"index": 3
},
{
"node": "Merge4",
"type": "main",
"index": 3
}
]
]
},
"Merge3": {
"main": [
[
{
"node": "Aggregate3",
"type": "main",
"index": 0
}
]
]
},
"Merge4": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Think1": {
"ai_tool": [
[
{
"node": "Customer service AGENT",
"type": "ai_tool",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Human intervention",
"type": "main",
"index": 0
}
]
]
},
"Supabase1": {
"ai_tool": [
[
{
"node": "Generate conv context",
"type": "ai_tool",
"index": 0
}
]
]
},
"Aggregate3": {
"main": [
[
{
"node": "Customer service AGENT",
"type": "main",
"index": 0
}
]
]
},
"Transcribe1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Voice or Text": {
"main": [
[
{
"node": "Download media",
"type": "main",
"index": 0
}
],
[
{
"node": "Text",
"type": "main",
"index": 0
}
]
]
},
"Download media": {
"main": [
[
{
"node": "Transcribe1",
"type": "main",
"index": 0
}
]
]
},
"Knowledge base": {
"ai_tool": [
[
{
"node": "Customer service AGENT",
"type": "ai_tool",
"index": 0
}
]
]
},
"orders database": {
"ai_tool": [
[
{
"node": "Customer service AGENT",
"type": "ai_tool",
"index": 0
}
]
]
},
"WhatsApp Trigger": {
"main": [
[
{
"node": "Voice or Text",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Customer service AGENT",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"intent classifier": {
"main": [
[
{
"node": "Merge4",
"type": "main",
"index": 1
},
{
"node": "Merge3",
"type": "main",
"index": 1
}
]
]
},
"Human intervention": {
"main": [
[
{
"node": "Owner escalation",
"type": "main",
"index": 0
}
],
[
{
"node": "Human request.",
"type": "main",
"index": 0
}
],
[
{
"node": "Critical complaint.",
"type": "main",
"index": 0
}
],
[
{
"node": "Normal path / success",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Human intervention",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model2": {
"ai_languageModel": [
[
{
"node": "Generate conv context",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model8": {
"ai_languageModel": [
[
{
"node": "privacy classifier",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"privacy classifier": {
"main": [
[
{
"node": "Merge3",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model10": {
"ai_languageModel": [
[
{
"node": "intent classifier",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model11": {
"ai_languageModel": [
[
{
"node": "sentiment classifier",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Postgres Chat Memory": {
"ai_memory": [
[
{
"node": "Customer service AGENT",
"type": "ai_memory",
"index": 0
}
]
]
},
"sentiment classifier": {
"main": [
[
{
"node": "Merge3",
"type": "main",
"index": 2
},
{
"node": "Merge4",
"type": "main",
"index": 0
}
]
]
},
"Generate conv context": {
"main": [
[
{
"node": "Merge4",
"type": "main",
"index": 4
}
]
]
},
"Customer service AGENT": {
"main": [
[
{
"node": "Historial Chat and feedback",
"type": "main",
"index": 0
},
{
"node": "Aliment context for next messages",
"type": "main",
"index": 0
},
{
"node": "Send message",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "intent classifier",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "sentiment classifier",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser2": {
"ai_outputParser": [
[
{
"node": "privacy classifier",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
• Multi-Layer Message Analysis - Every customer interaction passes through three specialized AI classifiers: privacy detection (identifies sensitive data and security requirements), intent recognition (categorizes requests as purchases, inquiries, complaints, technical support,…
Source: https://n8n.io/workflows/7795/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This n8n workflow automates the transformation of spreadsheet data into professional charts and graphs using AI-driven analysis. Triggered via Slack, it processes uploaded files (Excel, CSV, Google Sh
Handles GDPR Article 15 (access) and Article 17 (erasure) requests end-to-end — from inbound email to legally-compliant response — with zero manual intervention and a full audit trail. 📬 Monitors Gmai
Splitout Filter. Uses toolWorkflow, lmChatOpenAi, outputParserStructured, manualTrigger. Event-driven trigger; 38 nodes.
This workflow automatically detects completed orders in PostgreSQL and prepares them for AI-based post-purchase communication. It enriches each order with customer, product, and payment data, then gen
Built this workflow because most of our users signed up, then vanished after ~30 days. It runs daily, grabs those stale users from Supabase, updates a Google Sheet for tracking, and automatically send