This workflow corresponds to n8n.io template #5695 — we link there as the canonical source.
This workflow follows the Agent → Gmail 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 →
{
"nodes": [
{
"id": "9a49c72a-8a11-4188-ac5c-0cf749c10cc8",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
-1500,
40
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "9872b603-7291-43a8-a5df-f6329017cb8d",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"onError": "continueErrorOutput",
"position": [
-280,
-140
],
"parameters": {},
"typeVersion": 2
},
{
"id": "fe79b7f1-4a67-4c5a-83eb-0f939f078eb1",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-280,
60
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "1c6c1e2f-aa95-4195-86bd-d13124182fe4",
"name": "UA Rotativo1",
"type": "n8n-nodes-base.code",
"position": [
-1520,
-520
],
"parameters": {},
"typeVersion": 2
},
{
"id": "3b59b1fc-0cff-4f77-a087-81207aec0f64",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
-820,
-400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9bc4371d-7858-43bc-b841-17ddbd61df10",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-380,
-400
],
"parameters": {},
"typeVersion": 1.8
},
{
"id": "b688c7d9-16a8-471e-82d8-5ef68d171585",
"name": "Merge",
"type": "n8n-nodes-base.code",
"position": [
-600,
-400
],
"parameters": {},
"typeVersion": 2
},
{
"id": "372bc92d-3d3e-4477-9faf-5d18fe40e06a",
"name": "HTML",
"type": "n8n-nodes-base.html",
"position": [
460,
-400
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "46d2fed6-d871-43c9-96f5-e83f563ca35b",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
760,
-500
],
"parameters": {},
"typeVersion": 1.4
},
{
"id": "8c3b0715-82a4-4243-8c64-287f626eec48",
"name": "LANG",
"type": "n8n-nodes-base.set",
"position": [
-1740,
-520
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "736f3215-5916-4518-adae-89bd5525bb86",
"name": "API Request",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
-2460,
-160
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "e4cfc4a4-0d3e-461d-8200-0ea8f893bab1",
"name": "API Status",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-2000,
-160
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "2477f03d-794d-428f-8e97-0a6ebb3e5e48",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-3060,
-720
],
"parameters": {},
"typeVersion": 2
},
{
"id": "1f28ba64-ce04-4ed1-b71c-8f1c0a922e67",
"name": "Send a message",
"type": "n8n-nodes-base.gmail",
"position": [
760,
-280
],
"parameters": {},
"typeVersion": 2.1
},
{
"id": "4208fc36-5378-458c-b9fe-9df4255999de",
"name": "Email send",
"type": "n8n-nodes-base.set",
"position": [
-2420,
-520
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "86cb644d-8154-4c05-a335-3a9ab7978034",
"name": "Method detect",
"type": "n8n-nodes-base.code",
"position": [
-2200,
-520
],
"parameters": {},
"typeVersion": 2
},
{
"id": "dd4957a2-a3f8-4bd1-bd8a-b914352a723d",
"name": "OBJETIVE",
"type": "n8n-nodes-base.set",
"position": [
-2860,
-520
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "f3d56a32-7253-47e4-abde-e8b21e36dc32",
"name": "API Request1",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
-2240,
-60
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "d8cc03b1-e78e-4858-b86f-d0cbbe2d5fd3",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-100,
60
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "0cf9a17c-b3f2-4b2d-82ef-093a666dfb1a",
"name": "Reset GPT tokens",
"type": "n8n-nodes-base.wait",
"position": [
160,
40
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "9c870044-0752-43f6-8455-f4b5474e6cac",
"name": "Req URL",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-920,
-140
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "2e6cdf3e-6297-4999-8bba-441eef0cdbbb",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
100,
-80
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "3c515751-ca91-426e-8eef-3c90bfb12fbf",
"name": "Markdown1",
"type": "n8n-nodes-base.markdown",
"onError": "continueRegularOutput",
"position": [
-480,
-140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0d6f6e97-3b3d-4cc0-a5d6-6511d736e598",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2640,
-840
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2d3a95f2-7c1a-4670-8b7e-38589b48dac1",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2600,
20
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "e8688b0d-c911-4db7-895d-9b2888ed2bef",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2640,
-1100
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "dc3ef73f-909f-4483-85a4-ef99e8f9349b",
"name": "Firecrawl API",
"type": "n8n-nodes-base.set",
"position": [
-2640,
-520
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "99302274-5a1e-408c-af1d-a1c2be5465c6",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
-680
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f44ed45d-9d29-4610-9625-157ffb204293",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3560,
-720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "78cb1aef-686b-40b8-af64-dab76e6bfc8f",
"name": "Manual",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-3060,
-520
],
"parameters": {},
"typeVersion": 1
},
{
"id": "a99c18d9-b6df-42eb-b29b-6d8601677e8d",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3900,
-1420
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "1c515937-0d09-42a7-ad56-d5e6f20fe0f9",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2860,
-300
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "0b8e5f54-95e4-48ea-9dd6-135e4168258c",
"name": "Clear impurities",
"type": "n8n-nodes-base.code",
"position": [
20,
-400
],
"parameters": {},
"typeVersion": 2
},
{
"id": "d5253074-f47b-42cd-8d0b-459336238400",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3140,
-160
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f3b1fd8d-5909-48fd-bbbb-9dc311cdb8c8",
"name": "Markdown GPT to HTML",
"type": "n8n-nodes-base.markdown",
"position": [
240,
-400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5b9ca312-376d-4227-9980-49fa329f3c4b",
"name": "Status API check",
"type": "n8n-nodes-base.if",
"position": [
-1780,
-160
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "14f648d7-da4e-4586-9dde-bbf26f380721",
"name": "Loop URLS",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1220,
-260
],
"parameters": {},
"typeVersion": 3
},
{
"id": "8fbf1001-e383-4513-8487-5088f199f6a2",
"name": "Split Out (URLs)",
"type": "n8n-nodes-base.splitOut",
"position": [
-1520,
-260
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d8e635be-82f3-4aba-bba2-f407399eba51",
"name": "Clear code (optional)",
"type": "n8n-nodes-base.code",
"disabled": true,
"position": [
-700,
-140
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ff596cc5-20c3-4045-a06c-b9227eede995",
"name": "Code (recibe webhook)",
"type": "n8n-nodes-base.code",
"position": [
-1960,
-520
],
"parameters": {},
"typeVersion": 2
},
{
"id": "985eeee3-c65f-497a-8c61-9fb7230079c2",
"name": "Stop and Error",
"type": "n8n-nodes-base.stopAndError",
"position": [
-2240,
200
],
"parameters": {},
"typeVersion": 1
}
],
"connections": {
"HTML": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
},
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"LANG": {
"main": [
[
{
"node": "UA Rotativo1",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "API Status",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
}
]
]
},
"Manual": {
"main": [
[
{
"node": "OBJETIVE",
"type": "main",
"index": 0
}
]
]
},
"OpenAI": {
"main": [
[
{
"node": "Clear impurities",
"type": "main",
"index": 0
}
]
]
},
"Req URL": {
"main": [
[
{
"node": "Clear code (optional)",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Firecrawl API",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Loop URLS",
"type": "main",
"index": 0
}
],
[
{
"node": "Reset GPT tokens",
"type": "main",
"index": 0
}
]
]
},
"OBJETIVE": {
"main": [
[
{
"node": "Firecrawl API",
"type": "main",
"index": 0
}
]
]
},
"Loop URLS": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
],
[
{
"node": "Req URL",
"type": "main",
"index": 0
}
]
]
},
"Markdown1": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"API Status": {
"main": [
[
{
"node": "Status API check",
"type": "main",
"index": 0
}
]
]
},
"Email send": {
"main": [
[
{
"node": "Method detect",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"API Request": {
"main": [
[
{
"node": "API Status",
"type": "main",
"index": 0
}
],
[
{
"node": "API Request1",
"type": "main",
"index": 0
}
]
]
},
"API Request1": {
"main": [
[
{
"node": "API Status",
"type": "main",
"index": 0
}
],
[
{
"node": "Stop and Error",
"type": "main",
"index": 0
}
]
]
},
"UA Rotativo1": {
"main": [
[
{
"node": "API Request",
"type": "main",
"index": 0
}
]
]
},
"Firecrawl API": {
"main": [
[
{
"node": "Email send",
"type": "main",
"index": 0
}
]
]
},
"Method detect": {
"main": [
[
{
"node": "Code (recibe webhook)",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Clear impurities": {
"main": [
[
{
"node": "Markdown GPT to HTML",
"type": "main",
"index": 0
}
]
]
},
"Reset GPT tokens": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Split Out (URLs)": {
"main": [
[
{
"node": "Loop URLS",
"type": "main",
"index": 0
}
]
]
},
"Status API check": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
],
[
{
"node": "Split Out (URLs)",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Markdown GPT to HTML": {
"main": [
[
{
"node": "HTML",
"type": "main",
"index": 0
}
]
]
},
"Clear code (optional)": {
"main": [
[
{
"node": "Markdown1",
"type": "main",
"index": 0
}
]
]
},
"Code (recibe webhook)": {
"main": [
[
{
"node": "LANG",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is designed for professionals, companies, and agencies that want to automate competitive analysis based on public reviews and opinions found on the Internet. It is especially useful for: Restaurants and local businesses seeking to identify the strengths and…
Source: https://n8n.io/workflows/5695/ — 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.
Whatsapp Lead Agent. Uses httpRequest, hunter, @tavily/n8n-nodes-tavily, @mendable/n8n-nodes-firecrawl. Webhook trigger; 35 nodes.
Universal Expense tracker. Uses telegram, httpRequest, openAi, googleSheets. Webhook trigger; 33 nodes.
Digital marketers, content creators, social media managers, and businesses who want to use AI marketing automation for YouTube Shorts without spending hours on production. This AI workflow helps anyon
My workflow 15. Uses httpRequest, memoryBufferWindow, agent, lmChatOpenAi. Webhook trigger; 74 nodes.
Who is this workflow for? This workflow is designed for SEO analysts, content creators, marketing agencies, and developers who need to index a website and then interact with its content as if it were