{
  "workflow": {
    "id": 11077,
    "name": "Generate GEO-optimized support replies from Gmail to Gmail and Slack",
    "views": 43,
    "recentViews": 0,
    "totalViews": 43,
    "createdAt": "2025-11-21T06:34:01.288Z",
    "description": "## 📊 Description\nStreamline customer support with a real-time, AI-powered answer engine that detects incoming support emails, classifies intent, identifies the customer’s GEO region, and generates a tailored reply ready to send. 📧\n\n🤖 This workflow intelligently adjusts tone and clarity based on region (US, UK, India, Canada, Australia, etc.) and ensures every outgoing message is structured, compliant, and highly contextual. Valid queries receive an automated reply via Gmail and a Slack summary, while non-support messages are flagged for manual review. A perfect automation for scaling support operations with precision and personalization. 🌍⚡\n\n## 🔁 What This Template Does\n1️⃣ Listens for unread incoming emails using Gmail Trigger. 📥\n 2️⃣ Extracts sender, subject, and message snippet for analysis. 🔍\n 3️⃣ Uses AI to classify if the email is a real support query. 🤖\n 4️⃣ If valid, predicts the customer’s GEO region (US/UK/India/Canada/EU/etc.). 🌍\n 5️⃣ Generates a GEO-optimized reply in structured JSON (subject, body, tone). ✍️\n 6️⃣ Formats the AI response and sends the final email via Gmail. 📤\n 7️⃣ Sends a Slack notification summarizing the reply, GEO used, and outcome. 💬\n 8️⃣ Routes non-query emails to Slack for manual human review. ⚠️\n 9️⃣ Includes strict JSON validation to avoid malformed AI outputs. 📐\n 🔟 Logs summary details for reporting and operations visibility. 📊\n\n## ⭐ Key Benefits\n✅ Automates personalized support replies with region-specific tone\n ✅ Eliminates manual triage of common support queries\n ✅ Ensures consistent, professional, and compliant customer communication\n ✅ Reduces response time with real-time processing\n ✅ Flags edge-cases and non-queries for manual review\n ✅ Integrates seamlessly with Gmail + Slack for end-to-end visibility\n\n## 🧩 Features\n- Gmail Trigger for real-time email intake\n- AI classification (support vs non-support)\n- GEO inference engine based on language, email, and context\n- GPT-4o-mini for tailored response generation\n- Strict structured JSON output parsing\n- Slack notifications for both automated replies and manual reviews\n- Error handling with Slack alerting\n- Full automation loop from triage → reply → logging\n\n## 🔐 Requirements\n- Gmail OAuth2 credentials\n- Slack API credentials\n- OpenAI API key (GPT-4o-mini)\n- n8n with LangChain nodes enabled\n\n## 🎯 Target Audience\n- Customer support teams needing faster personalized replies\n- SaaS founders and solopreneurs automating support\n- Global support teams managing multi-region messaging\n- Operations teams wanting consistent support tone and compliance\n",
    "workflow": {
      "id": "ecn0IJQWbj4pC6q0",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "templateCredsSetupCompleted": true
      },
      "name": "Generate GEO-optimized support replies from Gmail to Gmail and Slack",
      "tags": [],
      "nodes": [
        {
          "id": "b0441784-72d8-444f-8bdf-8c90eaaf0a66",
          "name": "Extract Email Data",
          "type": "n8n-nodes-base.set",
          "position": [
            160,
            496
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "a1b2c3d4",
                  "name": "customer_email",
                  "type": "string",
                  "value": "={{ $json.From }}"
                },
                {
                  "id": "b2c3d4e5",
                  "name": "customer_subject",
                  "type": "string",
                  "value": "={{ $json.Subject }}"
                },
                {
                  "id": "c3d4e5f6",
                  "name": "customer_message",
                  "type": "string",
                  "value": "={{ $json.snippet }}"
                }
              ]
            }
          },
          "typeVersion": 3.3
        },
        {
          "id": "a7fffc1e-77be-4364-a0c2-6d205ff1781b",
          "name": "Notify Slack",
          "type": "n8n-nodes-base.slack",
          "position": [
            2368,
            736
          ],
          "webhookId": "26491383-31dc-47ad-8d21-c01242c2b551",
          "parameters": {
            "text": "=AI replied to {{ $json.To }}\nGEO: {{ $json[\"Geo Used\"] }}\nSummary: {{ $json.Summary }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C09GNB90TED",
              "cachedResultName": "general-information"
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "83e0cf98-e0bb-437c-a989-cb4530be7051",
          "name": "Gmail Trigger",
          "type": "n8n-nodes-base.gmailTrigger",
          "position": [
            -64,
            496
          ],
          "parameters": {
            "filters": {
              "labelIds": [
                "INBOX"
              ],
              "readStatus": "unread"
            },
            "pollTimes": {
              "item": [
                {
                  "mode": "everyMinute"
                }
              ]
            }
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "ab0f9d59-2017-47f7-9a79-89b05f49d646",
          "name": "OpenAI Chat Model - GPT-4o-mini",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            1072,
            464
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "a7c2f203-5182-4bac-8e49-abe8f494c081",
          "name": "Memory - Conversation Buffer",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            1200,
            464
          ],
          "parameters": {
            "sessionKey": "\"GEO Defined\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "6534c1cb-d7ff-4be3-aca3-9e292d30b393",
          "name": "Output Parser - Structured JSON",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            1328,
            464
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"geo\": \"Canada\"\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "0d1a6951-d9ff-41b9-a715-dd6a47f4d7d8",
          "name": "AI Agent - GEO Identifier",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            1136,
            240
          ],
          "parameters": {
            "text": "=Determine the most probable GEO region for this customer.\n\nEmail Address: {{$json[\"customer_email\"]}}\nMessage Text:\n{{$json[\"customer_message\"]}}\n\nReturn JSON only in this form:\n{\n  \"geo\": \"string\"\n}\n",
            "options": {
              "systemMessage": "=You detect the customer's GEO region based on their email content, email address, language hints, currency mentions, city names, or spelling style.\n\nReturn ONLY one simple GEO label:\n\"US\", \"UK\", \"India\", \"Canada\", \"EU\", \"Australia\", \"UAE\", or \"Unknown\".\n\nRespond ONLY in valid JSON.\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "da1bf8d7-8557-4379-8451-d428921d67d2",
          "name": "OpenAI Chat Model - GPT-4o-mini1",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            1536,
            576
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "86f534a4-e3b7-49c2-9a76-7f1426081dae",
          "name": "Memory - Conversation Buffer1",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            1664,
            576
          ],
          "parameters": {
            "sessionKey": "\"GEO Defined\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "1600c8ee-b52b-4c43-a36b-8a08fe7921a6",
          "name": "Output Parser - Structured JSON1",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            1792,
            576
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"to\": \"user@example.com\",\n  \"subject\": \"Re: Shipping to Canada?\",\n  \"reply\": \"Hello Laura,\\n\\nYes, we do ship to Canada. Standard delivery takes 5–7 business days, and orders above CAD $70 qualify for free shipping. For other orders, shipping is CAD $12.\\n\\nIf you need help placing the order, I’d be happy to assist.\\n\\nBest regards,\\nBrandX Support\",\n  \"geo_used\": \"Canada\",\n  \"summary\": \"Provided shipping info and fees for a customer in Canada.\"\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "04618d8b-e9fc-4753-996e-7eea2f194a65",
          "name": "AI Agent - GEO-Optimized Support",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            1600,
            352
          ],
          "parameters": {
            "text": "=Prepare a GEO-optimized reply email.\n\nCustomer GEO: {{ $json.output.geo }}\nCustomer Email: {{ $('Extract Email Data').item.json.customer_email }}\nOriginal Subject: {{ $('Extract Email Data').item.json.customer_subject }}\nCustomer Message:\n{{ $('Extract Email Data').item.json.customer_message }}\n\nFollow the JSON format exactly and fill in all fields.\n\"subject\" should start with \"Re: \" + the original subject.\n\"to\" must be the customer's email address.\n",
            "options": {
              "systemMessage": "=You are an expert customer support agent.\n\nYour job:\nGenerate a GEO-optimized, ready-to-send support email reply AND return it in a clean structured JSON format.\n\nGEO Tone Rules:\n- US: direct, casual\n- UK: polite, formal\n- India: warm, guiding\n- Canada/EU: neutral, compliance-friendly\n- Australia: friendly, informal\n\nOutput Requirements:\n- ALWAYS respond with VALID JSON only.\n- No markdown.\n- No extra explanation.\n- No surrounding text.\n- The \"reply\" field must contain the full email body text.\n\nReturn JSON in this EXACT format:\n\n{\n  \"to\": \"string\",\n  \"subject\": \"string\",\n  \"reply\": \"string (full email body)\",\n  \"geo_used\": \"string\",\n  \"summary\": \"short 1-line summary of the reply\"\n}\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "d0111e71-1b00-4dff-8c1b-015480149be5",
          "name": "Send a message",
          "type": "n8n-nodes-base.gmail",
          "position": [
            2224,
            256
          ],
          "webhookId": "13c021f6-7561-42cb-a81a-40a79938c20a",
          "parameters": {
            "sendTo": "={{ $json.To }}",
            "message": "={{ $json.Reply }}",
            "options": {},
            "subject": "={{ $json.Subject }}",
            "emailType": "text"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "f5f13640-13f7-435a-82f9-2fd5a2363290",
          "name": "Format Data For Email",
          "type": "n8n-nodes-base.set",
          "position": [
            2000,
            352
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "a3692cf1-fc7f-4c80-9a89-6d0abd8a4868",
                  "name": "To",
                  "type": "string",
                  "value": "={{ $json.output.to }}"
                },
                {
                  "id": "c5211a41-8e40-4db3-a182-8f80a05a0ab8",
                  "name": "Reply",
                  "type": "string",
                  "value": "={{ $json.output.reply }}"
                },
                {
                  "id": "d3d6eb91-6a9d-4549-9f54-fe1258788144",
                  "name": "Geo Used",
                  "type": "string",
                  "value": "={{ $json.output.geo_used }}"
                },
                {
                  "id": "cfb5ed83-da8a-45e6-8a44-8cb6a4864403",
                  "name": "Summary",
                  "type": "string",
                  "value": "={{ $json.output.summary }}"
                },
                {
                  "id": "e7147507-4586-4b85-9e0b-8e29bb7400bc",
                  "name": "Subject",
                  "type": "string",
                  "value": "={{ $json.output.subject }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "8ed25d76-7e95-4059-a82d-4d6d62e0a5f4",
          "name": "OpenAI Chat Model - GPT-4o-mini2",
          "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
          "position": [
            384,
            720
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "gpt-4o-mini",
              "cachedResultName": "gpt-4o-mini"
            },
            "options": {}
          },
          "credentials": {
            "openAiApi": {
              "id": "credential-id",
              "name": "openAiApi Credential"
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "9ef21678-32cf-48fb-91bc-cbbff5e2e21a",
          "name": "Memory - Conversation Buffer2",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            512,
            720
          ],
          "parameters": {
            "sessionKey": "\"GEO Defined\"",
            "sessionIdType": "customKey"
          },
          "typeVersion": 1.3
        },
        {
          "id": "e79ed751-e504-4a1d-8238-fb0aaf0cb411",
          "name": "Output Parser - Structured JSON2",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            640,
            720
          ],
          "parameters": {
            "jsonSchemaExample": "{\n  \"is_query\": true,\n  \"category\": \"support\",\n  \"reason\": \"The email asks about shipping availability\"\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "1e4fc6b8-3e24-4259-b57b-43546def4a3b",
          "name": "AI Agent - Email Classification",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            448,
            496
          ],
          "parameters": {
            "text": "=Classify this email:\n\nFrom: {{$json[\"customer_email\"]}}\nSubject: {{$json[\"customer_subject\"]}}\nMessage:\n{{$json[\"customer_message\"]}}\n",
            "options": {
              "systemMessage": "=You are a classification engine.\nYour job is to determine if an incoming email is a real customer support query.\n\nReturn ONLY JSON in this format:\n{\n  \"is_query\": true/false,\n  \"category\": \"support | sales | spam | internal | notification | other\",\n  \"reason\": \"short explanation\"\n}\n"
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 2.1
        },
        {
          "id": "6292faa3-00f6-489d-b317-2602da417d58",
          "name": "If",
          "type": "n8n-nodes-base.if",
          "position": [
            848,
            496
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "850c5b0c-daf3-45ab-a545-20870099aeea",
                  "operator": {
                    "type": "boolean",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.output.is_query }}",
                  "rightValue": true
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "eb607a31-2bc4-4699-a7ea-c616616704b6",
          "name": "Manual Review",
          "type": "n8n-nodes-base.slack",
          "position": [
            1200,
            816
          ],
          "webhookId": "26491383-31dc-47ad-8d21-c01242c2b551",
          "parameters": {
            "text": "=Manual Review Intevention:- \n\nCategory:-{{ $json.output.category }} \nReason{{ $json.output.reason }} \n\nPlease check your Inbox.",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C09GNB90TED",
              "cachedResultName": "general-information"
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "f32e607c-3c93-4899-a0b6-4202bef3d963",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -128,
            -336
          ],
          "parameters": {
            "width": 480,
            "height": 672,
            "content": "## Real-Time GEO-Optimized Answer Engine – Overview\n\nThis workflow listens for incoming customer emails, classifies whether they are support queries, detects the customer's GEO region, and generates a GEO-appropriate reply using AI. If the email is a valid query, the engine composes a ready-to-send reply tailored to regional tone and rules, sends it via Gmail, and posts a Slack notification. Non-query or ambiguous messages are routed for manual review. The workflow uses structured output parsers to force strict JSON at each AI step, and stores a short summary and GEO used for reporting.\n\n### How it works\n1. Gmail trigger captures unread inbound emails.  \n2. AI classifies whether message is a support query.  \n3. If a query: AI infers GEO, then produces a GEO-optimized reply (JSON).  \n4. Reply is formatted and sent via Gmail; Slack is notified.  \n5. If not a query: sends a manual review alert to Slack.\n\n### Setup steps\n- Add Gmail, Slack, and OpenAI credentials.  \n- Verify parser schemas and Gmail send permissions.  \n- Test with a few sample emails.\n\n### Customization\nAdjust GEO labels, tone rules, classification thresholds, or add more locales.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "d0b721cf-7c8c-4536-8e67-ff7c4c2c9fac",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -128,
            368
          ],
          "parameters": {
            "color": 2,
            "width": 208,
            "height": 288,
            "content": "## Gmail Trigger\nPolls unread INBOX emails and passes raw message data into the workflow.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "973bac37-0d6d-40a1-a25c-2d9fac588b6a",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2304,
            608
          ],
          "parameters": {
            "color": 2,
            "height": 320,
            "content": "## Slack Notifications\nSends success confirmations and manual-review alerts to the selected Slack channel.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "c833bee6-583f-477d-a63f-742860928f86",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1936,
            160
          ],
          "parameters": {
            "color": 2,
            "width": 432,
            "height": 336,
            "content": "## Format & Send Email\nFormats AI output for Gmail and sends the reply; also stores summary and GEO used.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "7390b9aa-ccfe-4843-bb48-3c5c70172b83",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1040,
            128
          ],
          "parameters": {
            "color": 2,
            "width": 416,
            "height": 464,
            "content": "## GEO Identifier\nAI infers customer GEO from email content, address hints, and language cues.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "3365fc8a-1bc4-4922-8f29-22f3d4926ce6",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1136,
            704
          ],
          "parameters": {
            "color": 2,
            "height": 256,
            "content": "## Manual Review\nRoutes non-query or uncertain items to Slack for human review and triage.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "fd663e26-c674-497a-ac7e-8a7e41988cf8",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            368,
            368
          ],
          "parameters": {
            "color": 2,
            "width": 400,
            "height": 512,
            "content": "## Email Classification\nDetermines if the message is a customer query and assigns a category and reason.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "c39ee14f-4565-4012-bcdf-9e491b342118",
          "name": "Sticky Note9",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            112,
            368
          ],
          "parameters": {
            "color": 2,
            "height": 288,
            "content": "## Extract Email Data\nExtracts sender, subject, and snippet to prepare inputs for classification.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "42a0dd0c-9cfc-4215-87be-c9ba769d1020",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1488,
            240
          ],
          "parameters": {
            "color": 2,
            "width": 416,
            "height": 496,
            "content": "## GEO-Optimized Support Reply\nGenerates a ready-to-send reply with tone and content tailored to the detected GEO.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "c1d0553c-a903-4b8b-a05d-849f023e912e",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1568,
            0
          ],
          "parameters": {
            "color": 3,
            "height": 208,
            "content": "## ⚠️ Strict JSON Required\nAll AI agents MUST return valid JSON exactly matching the parser schema. Extra text will break downstream parsing and sending.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "1a27aeba-f2ef-48cf-90af-a92b35df8c12",
          "name": "Error Handling",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -112,
            1264
          ],
          "parameters": {
            "color": 2,
            "width": 584,
            "height": 276,
            "content": "## Error Handling\nCaptures workflow failures and sends details to Slack for quick debugging.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "b51ec034-35c4-4044-902e-ac05eab1d7c3",
          "name": "Error Handler Trigger",
          "type": "n8n-nodes-base.errorTrigger",
          "position": [
            32,
            1376
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "5543b2cc-0d0c-4aa7-b0e3-bdf1c252e655",
          "name": "Slack: Send Error Alert",
          "type": "n8n-nodes-base.slack",
          "position": [
            240,
            1376
          ],
          "webhookId": "d5eff2c3-ff6e-4116-bdda-59455acd861b",
          "parameters": {
            "text": "=⚠️ *Error in API Error Catalog Workflow*\n*Node:* {{ $json.node.name }}\n*Message:* {{ $json.error.message }}\n*Time:* {{ $json.timestamp }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "id",
              "value": "="
            },
            "otherOptions": {},
            "authentication": "oAuth2"
          },
          "credentials": {
            "slackOAuth2Api": {
              "id": "credential-id",
              "name": "slackOAuth2Api Credential"
            }
          },
          "typeVersion": 2.3
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "02dc11ae-a53c-4e7c-ad18-c9a50ea660c0",
      "connections": {
        "If": {
          "main": [
            [
              {
                "node": "AI Agent - GEO Identifier",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Manual Review",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Gmail Trigger": {
          "main": [
            [
              {
                "node": "Extract Email Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Send a message": {
          "main": [
            []
          ]
        },
        "Extract Email Data": {
          "main": [
            [
              {
                "node": "AI Agent - Email Classification",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Error Handler Trigger": {
          "main": [
            [
              {
                "node": "Slack: Send Error Alert",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Data For Email": {
          "main": [
            [
              {
                "node": "Send a message",
                "type": "main",
                "index": 0
              },
              {
                "node": "Notify Slack",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - GEO Identifier": {
          "main": [
            [
              {
                "node": "AI Agent - GEO-Optimized Support",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Memory - Conversation Buffer": {
          "ai_memory": [
            [
              {
                "node": "AI Agent - GEO Identifier",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Memory - Conversation Buffer1": {
          "ai_memory": [
            [
              {
                "node": "AI Agent - GEO-Optimized Support",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Memory - Conversation Buffer2": {
          "ai_memory": [
            [
              {
                "node": "AI Agent - Email Classification",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - Email Classification": {
          "main": [
            [
              {
                "node": "If",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model - GPT-4o-mini": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - GEO Identifier",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser - Structured JSON": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - GEO Identifier",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "AI Agent - GEO-Optimized Support": {
          "main": [
            [
              {
                "node": "Format Data For Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model - GPT-4o-mini1": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - GEO-Optimized Support",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "OpenAI Chat Model - GPT-4o-mini2": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent - Email Classification",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser - Structured JSON1": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - GEO-Optimized Support",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Output Parser - Structured JSON2": {
          "ai_outputParser": [
            [
              {
                "node": "AI Agent - Email Classification",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 32,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.set": {
          "count": 2
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.slack": {
          "count": 3
        },
        "n8n-nodes-base.stickyNote": {
          "count": 11
        },
        "n8n-nodes-base.errorTrigger": {
          "count": 1
        },
        "n8n-nodes-base.gmailTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 3
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 3
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 3
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 3
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Rahul Joshi",
      "username": "rahul08",
      "bio": "Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/callrahul/"
      ],
      "avatar": "https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 12,
        "icon": "fa:bug",
        "name": "n8n-nodes-base.errorTrigger",
        "codex": {
          "data": {
            "details": "In n8n, when a workflow execution fails, it can start another workflow. This second workflow can be any arbitrary workflow on your n8n instance. Use the Error Trigger node as your Trigger in the Error workflow.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/creating-error-workflows-in-n8n/",
                  "icon": "🌪",
                  "label": "Creating Error Workflows in n8n"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.errortrigger/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Other Trigger Nodes"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Error Trigger",
          "color": "#0000FF"
        },
        "iconData": {
          "icon": "bug",
          "type": "icon"
        },
        "displayName": "Error Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 824,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmailTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Gmail Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 41,
        "name": "Ticket Management"
      },
      {
        "id": 51,
        "name": "Multimodal AI"
      }
    ],
    "image": []
  }
}