{"workflow":{"id":13280,"name":"Route Gmail support emails to Zendesk with spam filtering and duplicate checks","views":46,"recentViews":0,"totalViews":46,"createdAt":"2026-02-10T08:12:47.080Z","description":"# (Retail Automation) Gmail Trigger → Spam Filter → Duplicate Check → Zendesk Ticket Creation\n\nThis workflow automatically converts incoming support emails from Gmail into structured Zendesk tickets. It filters spam, extracts key customer details, auto-tags issues, prevents duplicate tickets and creates clean, actionable support tickets in Zendesk.\n\n### Quick Implementation Steps\n1. Connect your Gmail support inbox to the Gmail Trigger.\n2. Configure spam keywords and domains in the Spam Detection node.\n3. Map email fields in the Set node.\n4. Connect your Zendesk account.\n5. Activate the workflow.\n\n\n## What It Does\n\nThis workflow listens for new emails arriving in a Gmail support inbox and immediately processes them through a clean automation pipeline. Spam or suspicious emails are filtered early to keep the support system noise-free.\n\nValid emails are normalized by extracting customer details such as name, email, subject, message content and thread ID. The workflow automatically tags tickets based on keywords like “refund” or “damaged” for better prioritization.\n\nBefore creating a new ticket, the workflow checks existing Zendesk tickets to avoid duplicates. Only genuine, new requests are converted into Zendesk tickets with all required fields populated.\n\n\n## Who’s It For\n\n- Customer support teams using Gmail and Zendesk  \n- Small to mid-sized businesses handling email-based support  \n- Operations teams looking to reduce manual ticket creation  \n- Support managers who want clean, duplicate-free ticket queues  \n\n\n## Requirements\n\n- n8n instance (self-hosted or cloud)\n- Gmail account with access to the support inbox\n- Zendesk account with API access enabled\n- OAuth credentials for Gmail and Zendesk\n\n\n## How It Works & How To Set Up\n\n### Step-by-Step Setup\n\n1. **Gmail Trigger**  \n   Connect your Gmail account and monitor the support inbox for new emails.\n\n2. **Spam Detection & Filtering**  \n   Configure spam keywords and disposable email domains. Spam emails are stopped immediately.\n\n3. **Extract & Normalize Email Data (Set Node)**  \n   Extract customer name, email, subject, message snippet, thread ID, received time and initial tags.\n\n4. **Auto-Tag Ticket Based on Email Content**  \n   Scan the email body and apply tags like `refund`, `damaged` or `late_delivery`.\n\n5. **Fetch Existing Zendesk Tickets**  \n   Retrieve current tickets to provide historical context.\n\n6. **Merge & Detect Duplicates**  \n   Compare email subject with existing tickets to detect duplicates.\n\n7. **Create Zendesk Ticket**  \n   If no duplicate is found, create a new Zendesk ticket with structured data.\n\n\n## How To Customize Nodes\n\n- **Spam Detection Node**: Add or remove keywords and domains.\n- **Tagging Code Node**: Extend keyword-to-tag mappings.\n- **Set Node**: Map additional email fields if needed.\n- **Zendesk Node**: Adjust priority, status or add custom fields.\n\n\n## Add-ons\n\n- Route VIP customers to priority queues.\n- Assign tickets based on keywords or tags.\n- Fetch order details from an eCommerce system.\n- Send Slack or Email notifications to agents.\n\n\n## Use Case Examples\n\n- Converting customer order issues into Zendesk tickets.\n- Filtering marketing or spam emails automatically.\n- Preventing duplicate tickets from email replies.\n- Auto-tagging refund and damaged item requests.\n- Centralizing Gmail-based support into Zendesk.\n\n*(There are many more ways this workflow can be extended.)*\n\n\n## Troubleshooting Guide\n\n| Issue | Possible Cause | Solution |\n|-----|--------------|----------|\n| Tickets not created | Duplicate detected | Check subject matching logic |\n| Spam emails passing through | Missing keywords | Add more spam keywords/domains |\n| Empty fields in Zendesk | Incorrect Set mappings | Verify field expressions |\n| OAuth errors | Expired credentials | Reconnect Gmail/Zendesk account |\n\n\n## Need Help?\n\nNeed help setting this up or extending it further?\n\nOur n8n workflow development experts at **WeblineIndia** can help you customize this workflow, add advanced automations or even build similar n8n workflows tailored to your business needs. Reach out to our experts to get started faster and smarter.","workflow":{"id":"KZON3Mzef2dj29N2","meta":{"instanceId":"14e4c77104722ab186539dfea5182e419aecc83d85963fe13f6de862c875ebfa","templateCredsSetupCompleted":true},"name":"Gmail Support Emails to Zendesk Tickets with Spam & Duplicate Prevention","tags":[],"nodes":[{"id":"3ae5ec4d-60ad-42a0-8479-2b3d20c191a9","name":"New Support Email Trigger","type":"n8n-nodes-base.gmailTrigger","position":[-160,16],"parameters":{"filters":{},"pollTimes":{"item":[{"mode":"everyMinute"}]}},"credentials":{"gmailOAuth2":{"id":"","name":""}},"typeVersion":1.3},{"id":"bec74235-dabc-44a0-91e0-bc86861ff2a5","name":"Spam Detection & Filtering","type":"n8n-nodes-base.code","position":[304,16],"parameters":{"jsCode":"const item = $json;\n\nconst subject = (item.subject || '').toLowerCase();\nconst body = (item.description || '').toLowerCase();\nconst email = (item.customer_email || '').toLowerCase();\n\n// Common spam keywords\nconst spamKeywords = [\n  'win money',\n  'free gift',\n  'click here',\n  'urgent action',\n  'lottery',\n  'bitcoin',\n  'crypto',\n  'investment opportunity'\n];\n\n// Suspicious email domains\nconst spamDomains = [\n  'tempmail',\n  '10minutemail',\n  'mailinator',\n  'guerrillamail'\n];\n\n// Keyword match\nconst keywordSpam = spamKeywords.some(k =>\n  subject.includes(k) || body.includes(k)\n);\n\n// Domain match\nconst domainSpam = spamDomains.some(d =>\n  email.includes(d)\n);\n\n// Final spam decision\nconst isSpam = keywordSpam || domainSpam;\n\n// If spam → stop workflow\nif (isSpam) {\n  return [];\n}\n\n// Not spam → continue\nreturn [{ json: item }];\n"},"typeVersion":2},{"id":"3c20ee8a-b80c-44d6-84fa-fed064265ec5","name":"Extract & Normalize Email Data","type":"n8n-nodes-base.set","position":[736,16],"parameters":{"options":{},"assignments":{"assignments":[{"id":"b17f683e-18b3-4739-90d7-678545009274","name":"=customer_name","type":"string","value":"={{$json[\"From\"].split(\" <\")[0]}}"},{"id":"2bc4671b-2ab3-4248-8cc2-768869bbf868","name":"customer_email","type":"string","value":"={{$json[\"From\"].match(/<(.+)>/)[1]}}"},{"id":"20bfdc42-25c2-4ac0-b342-5fca279e33a9","name":"subject","type":"string","value":"={{$json[\"Subject\"]}}"},{"id":"68ff09ea-01ee-4891-9d77-8c30d8ec6848","name":"description","type":"string","value":"={{$json[\"snippet\"]}}"},{"id":"90d82dab-45dd-4e82-898b-a6cba4d0fc11","name":"=thread_id","type":"string","value":"={{ $json.threadId }}"},{"id":"c8274cde-d223-421d-97b0-03d09a040a11","name":"received_at","type":"string","value":"={{$json[\"internalDate\"]}}"},{"id":"68bfb284-97be-4236-bed4-095e42ddd2da","name":"tags","type":"string","value":"={{$json[\"snippet\"].toLowerCase().includes(\"refund\") ? [\"refund\"] : []}}"}]}},"typeVersion":3.4},{"id":"fb6264e5-fc17-488a-8b5c-a52cc38ddccf","name":"Auto-Tag Ticket Based on Email Content","type":"n8n-nodes-base.code","position":[1008,-96],"parameters":{"jsCode":"// Get email body from previous node\nconst emailBody = $json[\"description\"].toLowerCase();\n\n// Define keywords and corresponding tags\nconst keywordTags = {\n  \"refund\": \"refund\",\n  \"damaged\": \"damaged\",\n  \"late delivery\": \"late_delivery\"\n};\n\n// Initialize tags array\nlet tags = [];\n\n// Loop through keywords and add tags if found\nfor (const keyword in keywordTags) {\n  if (emailBody.includes(keyword)) {\n    tags.push(keywordTags[keyword]);\n  }\n}\n\n// Return updated data\nreturn [\n  {\n    json: {\n      ...$json,\n      tags\n    }\n  }\n];\n"},"typeVersion":2},{"id":"f7c03701-9a47-44d1-a1d1-4bb07bee340a","name":"Zendesk – Fetch Existing Tickets","type":"n8n-nodes-base.zendesk","position":[1008,80],"parameters":{"options":{},"operation":"getAll","authentication":"oAuth2"},"credentials":{"zendeskOAuth2Api":{"id":"","name":""}},"typeVersion":1},{"id":"6481eb72-b926-4030-842a-a428d05e78f8","name":"Merge Email With Existing Tickets","type":"n8n-nodes-base.merge","position":[1456,16],"parameters":{},"typeVersion":3.2},{"id":"aa789d1a-232d-458f-b75b-b3c9641843ce","name":"Detect Duplicate Ticket by Subject","type":"n8n-nodes-base.code","position":[1648,16],"parameters":{"jsCode":"// Get all merged items\nconst items = $input.all();\n\n// First item is always the email\nconst email = items[0].json;\n\n// Remaining items are Zendesk tickets\nconst tickets = items.slice(1).map(i => i.json);\n\n// Safety check\nif (!email || !email.subject) {\n  throw new Error('Missing email subject');\n}\n\n// Normalize function\nconst normalize = (str) =>\n  str.trim().toLowerCase();\n\n// Check if subject already exists in Zendesk\nconst isDuplicate = tickets.some(ticket =>\n  ticket.subject &&\n  normalize(ticket.subject) === normalize(email.subject)\n);\n\n// If duplicate → stop workflow\nif (isDuplicate) {\n  return [];\n}\n\n// If NOT duplicate → allow ticket creation\nreturn [\n  {\n    json: email\n  }\n];\n"},"typeVersion":2,"alwaysOutputData":true},{"id":"43b0a0d4-3dfa-4e87-9072-7476c677a857","name":"Is This a New Ticket?","type":"n8n-nodes-base.if","position":[1840,16],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ec29a493-1e47-4dd1-87a2-846d9506debb","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{$json.isEmpty()}}","rightValue":""}]}},"typeVersion":2.2},{"id":"28ae617a-65fa-4418-bf8d-7bc8b0b21f26","name":"Create Zendesk Support Ticket","type":"n8n-nodes-base.zendesk","position":[2256,32],"parameters":{"description":"={{ $json.description }}","authentication":"oAuth2","jsonParameters":true,"additionalFieldsJson":"={\n  \"subject\": \"{{ $json.subject }}\",\n  \"comment\": {\n    \"body\": \"{{ $json.description }}\"\n  },\n  \"requester\": {\n    \"name\": \"{{ $json.customer_name }}\",\n    \"email\": \"{{ $json.customer_email }}\"\n  },\n  \"tags\": \"{{ $json.tags }}\",\n  \"priority\": \"high\",\n  \"status\": \"open\",\n  \"external_id\": \"{{ $json.thread_id }}\"\n}\n"},"credentials":{"zendeskOAuth2Api":{"id":"knuJbHWapkWQuMHe","name":"Zendesk account 2"}},"typeVersion":1},{"id":"e1aeb752-3e5a-4551-bf2e-c58041665ca3","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-320,-144],"parameters":{"color":7,"width":432,"height":400,"content":"## Incoming Support Email Trigger\nThis section listens for new customer messages sent to the support inbox. Whenever a new email arrives, the workflow automatically starts, ensuring no customer request is missed and every support inquiry enters the automation flow in real time."},"typeVersion":1},{"id":"dce28e0f-3cd2-4ce5-9ab4-99123d8a0a81","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[160,-144],"parameters":{"color":7,"width":448,"height":400,"content":"## Spam Detection & Early Filtering\nThis section checks the email subject, message content and sender domain to detect spam. Any suspicious or unwanted emails are stopped immediately, ensuring only genuine customer queries are processed and sent to Zendesk."},"typeVersion":1},{"id":"140ce5ba-548e-4445-a947-caa3f90c51cc","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[656,-304],"parameters":{"color":7,"width":576,"height":560,"content":"## Prepare Email Data & Check Existing Tickets\nThis section cleans and structures incoming email data by extracting customer details, message content and tags. It then retrieves existing Zendesk tickets to provide context, enabling accurate comparison and helping the workflow determine whether the incoming request is new or already recorded."},"typeVersion":1},{"id":"72c9bac5-55d5-4a3d-ae74-fbadc329a549","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1344,-144],"parameters":{"color":7,"width":720,"height":384,"content":"## Duplicate Detection & Validation\nIn this section, the incoming email is compared with existing Zendesk tickets. By checking normalized subjects and identifiers, the workflow determines whether the email represents a new issue or a duplicate, ensuring only valid new tickets move forward."},"typeVersion":1},{"id":"83d7aeb4-324c-4fef-afd8-89a0ba3e4cd2","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[2128,-144],"parameters":{"color":7,"width":432,"height":384,"content":"## Zendesk Ticket Creation\nThis final section creates a new support ticket in Zendesk using the cleaned and validated data. The ticket includes customer details, message content, priority, tags and external identifiers, ensuring the support team receives a complete and actionable request."},"typeVersion":1},{"id":"768133f1-3878-410d-afd9-72b310c06472","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-1056,-704],"parameters":{"width":624,"height":720,"content":"## How It Works\nThis workflow automatically converts customer support emails into structured Zendesk tickets while keeping the support system clean and organized. It starts when a new email arrives in the support inbox. The workflow first checks whether the email looks like spam and stops it early if it does.\n\nFor valid emails, the workflow extracts important details such as the customer’s name, email address, subject, message content and email thread ID. Based on the message content, it also adds helpful tags like “refund” or “damaged” to provide quick context for the support team.\n\nBefore creating a new ticket, the workflow checks existing Zendesk tickets to see if a similar request already exists. If a duplicate is detected, the workflow stops to avoid creating multiple tickets for the same issue. Only genuine, new support requests move forward and get created as Zendesk tickets with all required information.\n\n## Workflow Setup Steps\n\nAdd an Email or Gmail Trigger to listen for new messages in the support inbox.\n\nAdd a Spam Detection node to filter out unwanted or suspicious emails early.\n\nUse a Set node to extract and organize important email details like customer name, email, subject, message body and thread ID.\n\nAdd a Tagging node to automatically apply relevant tags based on the email content.\n\nFetch existing tickets from Zendesk to check for duplicates.\n\nMerge the email data with existing tickets and run a Duplicate Check.\n\nIf no duplicate is found, create a new ticket using the Zendesk Create Ticket node."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"98efe619-8474-4cb6-93e6-c832172d73e4","connections":{"Is This a New Ticket?":{"main":[[],[{"node":"Create Zendesk Support Ticket","type":"main","index":0}]]},"New Support Email Trigger":{"main":[[{"node":"Spam Detection & Filtering","type":"main","index":0}]]},"Spam Detection & Filtering":{"main":[[{"node":"Extract & Normalize Email Data","type":"main","index":0}]]},"Extract & Normalize Email Data":{"main":[[{"node":"Auto-Tag Ticket Based on Email Content","type":"main","index":0},{"node":"Zendesk – Fetch Existing Tickets","type":"main","index":0}]]},"Merge Email With Existing Tickets":{"main":[[{"node":"Detect Duplicate Ticket by Subject","type":"main","index":0}]]},"Detect Duplicate Ticket by Subject":{"main":[[{"node":"Is This a New Ticket?","type":"main","index":0}]]},"Zendesk – Fetch Existing Tickets":{"main":[[{"node":"Merge Email With Existing Tickets","type":"main","index":1}]]},"Auto-Tag Ticket Based on Email Content":{"main":[[{"node":"Merge Email With Existing Tickets","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":15,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.zendesk":{"count":2},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.gmailTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"WeblineIndia","username":"weblineindia","bio":"A Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.","verified":true,"links":["https://www.weblineindia.com/hire-n8n-developers/"],"avatar":"https://gravatar.com/avatar/a229d43aefca4588581583c58bb37b4773aebbdf4c1fef86a08bb1d38eae91fa?r=pg&d=retro&size=200"},"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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/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/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.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"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":123,"icon":"file:zendesk.svg","name":"n8n-nodes-base.zendesk","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zendesk/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/zendesk/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"Zendesk"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMjRDMCAxMC43NDUgMTAuNzQ1IDAgMjQgMHMyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0UzAgMzcuMjU1IDAgMjQiLz48cGF0aCBmaWxsPSIjMDMzNjNEIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS40NDggMTguNjUzYzQuMDUgMCA3LjMzMi0zLjM3NSA3LjMzMi03LjUzOEg4LjExNmMwIDQuMTYzIDMuMjgzIDcuNTM4IDcuMzMyIDcuNTM4bTcuMzMyIDE3LjE5OVYxNy42NDhMOC4xMTYgMzUuODUyem0yLjQxNSAwYzAtNC4xNjQgMy4yODMtNy41NCA3LjMzMi03LjU0IDQuMDUgMCA3LjMzMiAzLjM3NiA3LjMzMiA3LjU0em0wLTI0LjczN3YxOC4yMDNMMzkuODYgMTEuMTE1eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+"},"displayName":"Zendesk","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"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":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":41,"name":"Ticket Management"}],"image":[]}}