{"workflow":{"id":14709,"name":"Monitor partner API usage with Slack, Jira and Gmail alerts","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-04T08:56:42.754Z","description":"# Smart Partner API Usage Monitoring with Slack, Jira & Gmail Alerts\n\nThis workflow monitors partner API usage in real time and triggers alerts based on usage thresholds. It validates incoming data, calculates usage percentage and routes actions using a Switch node. Slack notifications are sent at 80%, Jira tickets are created at 90% and critical alerts (Email + Jira + Slack) are triggered at 100%.\n\n### Quick Implementation Steps\n\n1. Import the workflow into n8n\n2. Configure the Webhook node and test with sample data\n3. Add credentials for Slack, Jira and Gmail\n4. Update Slack channel ID, Jira project and email recipient\n5. Activate the workflow\n6. Send test payloads to verify all alert levels\n\n\n## What This Workflow Does\n\nThis workflow helps monitor partner API usage automatically and ensures timely alerts when usage reaches defined thresholds. It starts by receiving usage data through a webhook, validating the payload and calculating the usage percentage based on quota and consumption values.\n\nOnce calculated, the workflow routes the data using a Switch node. At 80% usage, it sends an early warning Slack notification. At 90%, it escalates by creating a Jira ticket and notifying via Slack. When usage reaches 100%, it triggers a critical alert by sending an email, creating a Jira ticket and sending a Slack notification.\n\nThis approach ensures better visibility, timely action and helps prevent service disruption.\n\n\n## Who’s This For?\n\n- SaaS platforms with API-based billing\n- DevOps and Engineering teams\n- Product and Platform teams\n- Customer Success managers\n- Businesses managing partner integrations\n\n\n## Requirements\n\n- n8n (Cloud or Self-hosted)\n- Slack account with API access\n- Jira Software Cloud account\n- Gmail account (OAuth configured in n8n)\n- API or system to send usage data via webhook\n\n\n## How It Works & Setup Guide\n\n### Setup Steps\n\n1. **Webhook Setup**\n   - Configure the `Incoming Partner Usage Data` node\n   - Accept POST requests\n   - Required fields:\n     - `partner_id`\n     - `partner_name`\n     - `quota`\n     - `consumed`\n     - `timestamp`\n\n2. **Validate Payload**\n   - The workflow checks for missing fields and invalid values\n\n3. **Calculate Usage**\n   - Calculates usage percentage from quota and consumed values\n   - Stops execution if usage is below 80%\n\n4. **Switch Routing**\n   - Routes workflow based on usage:\n     - 80% → Slack alert\n     - 90% → Jira + Slack\n     - 100% → Gmail + Jira + Slack\n\n5. **Configure Integrations**\n   - Slack: Set channel ID\n   - Jira: Set project and issue type\n   - Gmail: Set recipient email\n\n6. **Test Workflow**\n   - Send sample data to webhook\n   - Verify all alert paths\n\n7. **Activate**\n   - Enable workflow after testing\n\n\n## How To Customize Nodes\n\n- **Webhook Node** → Change endpoint path or add authentication\n- **Validation Node** → Add more fields like plan or email\n- **Calculation Node** → Modify threshold logic\n- **Switch Node** → Adjust percentage ranges\n- **Slack Node** → Customize message format and channel\n- **Jira Node** → Update ticket structure\n- **Gmail Node** → Modify email subject, HTML, recipients\n\n\n## Add-ons & Enhancements\n\n- Add deduplication to avoid repeated alerts\n- Store usage data in database or Google Sheets\n- Send alerts to multiple email recipients\n- Integrate with CRM or billing systems\n- Add cooldown or rate limiting\n- Enrich partner data using external APIs\n\n\n## Use Case Examples\n\n- Monitor API usage for partners in SaaS platforms\n- Prevent service downtime due to overuse\n- Trigger internal review processes automatically\n- Automate partner upgrade discussions\n- Improve operational visibility for teams\n\nThis workflow can be adapted for many other automation use cases as well.\n\n\n## Troubleshooting Guide\n\n| Issue                   | Possible Cause                   | Solution                            |\n| ----------------------- | -------------------------------- | ----------------------------------- |\n| Workflow not triggering | Webhook not called               | Verify webhook URL and method       |\n| Invalid payload error   | Missing fields                   | Ensure required fields are included |\n| Slack message not sent  | Incorrect channel or credentials | Reconfigure Slack node              |\n| Jira ticket not created | Wrong project or API issue       | Verify Jira credentials             |\n| Email not sent          | Gmail OAuth issue                | Reconnect Gmail account             |\n| Incorrect usage %       | Invalid data format              | Ensure numeric values               |\n\n\n## Need Help?\n\nIf you need help setting up or customizing this workflow, our [n8n workflow development](https://www.weblineindia.com/n8n-automation/) team at WeblineIndia can assist you in building scalable automation solutions, integrating APIs and optimizing workflows using n8n.\n\nWhether you need custom workflow development, advanced automation features or production-ready deployment, we are here to help you build reliable automation systems.","workflow":{"id":"9RPNkviS0UijNC2y","meta":{"instanceId":"14e4c77104722ab186539dfea5182e419aecc83d85963fe13f6de862c875ebfa","templateCredsSetupCompleted":true},"name":"Smart Partner API Usage Monitoring with Slack, Jira & Gmail Alerts","tags":[],"nodes":[{"id":"86db7aa7-594d-42ea-ae03-da29bb8a3e62","name":"Validate Partner Usage Payload","type":"n8n-nodes-base.code","position":[176,-208],"parameters":{"jsCode":"const data = items[0].json.body;\nlet errors = [];\n\nif (!data.partner_id) errors.push(\"partner_id missing\");\nif (!data.partner_name) errors.push(\"partner_name missing\");\nif (data.quota === undefined || data.quota === null) errors.push(\"quota missing\");\nif (data.consumed === undefined || data.consumed === null) errors.push(\"consumed missing\");\n\n// Numeric validation\nif (data.quota !== undefined && isNaN(Number(data.quota))) {\n  errors.push(\"quota not a number\");\n}\nif (data.consumed !== undefined && isNaN(Number(data.consumed))) {\n  errors.push(\"consumed not a number\");\n}\n\n// If any validation failed — go to fallback\nif (errors.length > 0) {\n  return [\n    {\n      json: {\n        status: \"invalid\",\n        errors,\n        ...data\n      }\n    }\n  ];\n}\n\n// If everything is valid\nreturn [\n  {\n    json: {\n      status: \"valid\",\n      ...data\n    }\n  }\n];\n"},"typeVersion":2},{"id":"7189fcd7-4085-4e68-86ba-fd4d6b7ffe18","name":"Is Usage Payload Valid?","type":"n8n-nodes-base.if","position":[400,-208],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"7b67ced7-941e-48d5-9d8e-38e54a32894f","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"valid"}]}},"typeVersion":2.2},{"id":"0c3c01f8-7798-4969-8731-405993a8c52c","name":"Calculate API Usage Percentage","type":"n8n-nodes-base.code","position":[752,-224],"parameters":{"jsCode":"const item = items[0].json;\n\nconst quota = Number(item.quota);\nconst consumed = Number(item.consumed);\n\nif (!quota || isNaN(quota) || isNaN(consumed)) {\n  // invalid numeric values → fallback\n  return [\n    {\n      json: {\n        action: \"invalid_usage\",\n        ...item\n      }\n    }\n  ];\n}\n\n// Calculate usage %\nconst usage_pct = Math.round((consumed / quota) * 100 * 100) / 100; // 2 decimals\n\n// If below 80% → stop workflow\nif (usage_pct < 80) {\n  return [\n    {\n      json: {\n        action: \"no_alert\",\n        usage_pct,\n        ...item\n      }\n    }\n  ];\n}\n\n// If >= 80 → proceed to next step (dedupe check)\nreturn [\n  {\n    json: {\n      action: \"proceed\",\n      usage_pct,\n      ...item\n    }\n  }\n];\n"},"typeVersion":2},{"id":"89ae6be3-08e6-483e-8463-6bf6923aef06","name":"Create Jira Partner Review Ticket","type":"n8n-nodes-base.jira","position":[1440,-208],"parameters":{"project":{"__rl":true,"mode":"list","value":"10000","cachedResultName":"n8n sample project"},"summary":"=Partner {{$json[\"partner_name\"]}} reached {{Math.round($json[\"usage_pct\"])}}% usage – Review Plan Tier","issueType":{"__rl":true,"mode":"list","value":"10003","cachedResultName":"Task"},"additionalFields":{"description":"=Partner Usage Alert  \nPartner Name:{{$json[\"partner_name\"]}} \nPartner ID: {{$json[\"partner_id\"]}}\nPlan: {{$json[\"plan\"]}} \nQuota:{{$json[\"quota\"]}}\nConsumed: {{$json[\"consumed\"]}}\nUsage %: {{Math.round($json[\"usage_pct\"])}} \nTimestamp:{{$json[\"timestamp\"]}} \nRecommended Action: - Review current plan tier. - Contact partner for possible upgrade discussion."}},"credentials":{"jiraSoftwareCloudApi":{"id":"","name":""}},"typeVersion":1},{"id":"28e5efce-a2ce-4b43-b5d9-bf7ac9c85d2f","name":"Send Slack Partner Usage Alert","type":"n8n-nodes-base.slack","position":[1760,-208],"webhookId":"52f8ed4d-8c44-40ac-9f8c-fd573a80ceae","parameters":{"text":"=🚨 *Partner Usage Alert*  \n*Partner:*{{ $('Validate Partner Usage Payload').item.json.partner_name }} \n*Usage:* {{Math.round($json[\"usage_pct\"])}}% \n*Plan:*{{ $('Validate Partner Usage Payload').item.json.plan }} \n*Timestamp:* {{ $('Validate Partner Usage Payload').item.json.timestamp }} \n*A Jira ticket has been created for review:* {{ $json.key }}  \nRecommended Action: \n• Review the current plan tier\n• Consider reaching out for upgrade discussion.","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C09S57E2JQ2","cachedResultName":"n8n"},"otherOptions":{}},"credentials":{"slackApi":{"id":"","name":""}},"typeVersion":2.3},{"id":"3e6fce0c-9368-4a9b-b9a5-4c413cd9943c","name":"Incoming Partner Usage Data","type":"n8n-nodes-base.webhook","position":[-32,-208],"webhookId":"a25d3181-6c3f-4014-bf85-ff07294f6ccc","parameters":{"path":"a25d3181-6c3f-4014-bf85-ff07294f6ccc","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"befba6e2-06d3-4d26-b054-d5468d0d5b46","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-96,-352],"parameters":{"color":7,"width":688,"height":320,"content":"## Incoming Partner Usage Data\nThis section receives incoming partner API usage data through a webhook and validates the payload structure and values. It ensures only correctly formatted and meaningful usage data is allowed to move forward in the workflow."},"typeVersion":1},{"id":"5628a036-369a-4877-a0fa-a577be2f6af2","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[656,-352],"parameters":{"color":7,"width":528,"height":320,"content":"## Analyze API Usage Levels\nThis section calculates the partner’s API usage percentage based on allowed limits and checks whether the usage has crossed the defined alert threshold. It decides whether the situation requires internal review or no action."},"typeVersion":1},{"id":"88d9c56a-14a2-4104-a8ea-b1a287378cd0","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1248,-352],"parameters":{"color":7,"width":896,"height":320,"content":"## 90% Usage Alert – Internal Review Trigger\nWhen API usage crosses 90% of the allocated quota, this section escalates the alert by creating a Jira ticket along with a Slack notification. It ensures internal teams initiate a formal review process and prepare for potential partner communication or plan adjustments."},"typeVersion":1},{"id":"bd9b0794-c87a-45a4-9beb-9399f2e5c7ed","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-800,-1088],"parameters":{"width":640,"height":688,"content":"## How workflow works\n - Webhook receives partner API usage data (quota, consumed, partner details)\n - Payload is validated to ensure required fields are correct\n  - Usage percentage is calculated from quota vs consumed\n - Switch node routes flow based on thresholds (80%, 90%, 100%)\n - 80%: Sends Slack alert for early warning\n - 90%: Sends Slack alert + creates Jira ticket for review\n - 100%: Sends Slack + Jira + Email for critical escalation\n - Ensures timely alerts, tracking and action to prevent service issues\n\n## Setup and Configuration Steps\n\n- Create webhook node to accept usage data\n- Add Code node to validate payload fields\n - Add Code node to calculate usage percentage\n - Configure Switch node for 80%, 90%, 100% conditions\n - Set up Slack node for notifications\n- Set up Jira node for ticket creation\n- Set up Gmail node for critical alerts\n - Add credentials for all integrations (Slack, Jira, Gmail)\n- Test with sample data to verify all scenarios\n- Deploy workflow after successful testing"},"typeVersion":1},{"id":"0fa05358-13ab-4c6e-b3a0-9bb8bf4b00f5","name":"Switch","type":"n8n-nodes-base.switch","position":[960,-224],"parameters":{"rules":{"values":[{"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"5b691d97-8577-41c5-9818-65e338c28092","operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.usage_pct }}","rightValue":90}]}},{"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"a4384c35-a05a-4310-a717-43ebc8efe400","operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.usage_pct }}","rightValue":80}]}},{"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"1eee6e83-d6ee-4036-9c2a-18f534a7832c","operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.usage_pct }}","rightValue":100}]}}]},"options":{}},"typeVersion":3.3},{"id":"e5d72d3b-2ed7-476a-8535-0d0e46c845b1","name":"Send Slack Partner Usage Alert1","type":"n8n-nodes-base.slack","position":[1664,160],"webhookId":"52f8ed4d-8c44-40ac-9f8c-fd573a80ceae","parameters":{"text":"=🚨 *Partner Usage Alert*  \n*Partner:*{{ $('Validate Partner Usage Payload').item.json.partner_name }} \n*Usage:* {{Math.round($json[\"usage_pct\"])}}% \n*Plan:*{{ $('Validate Partner Usage Payload').item.json.plan }} \n*Timestamp:* {{ $('Validate Partner Usage Payload').item.json.timestamp }} \nRecommended Action: \n• Review the current plan tier\n• Consider reaching out for upgrade discussion.","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C09S57E2JQ2","cachedResultName":"n8n"},"otherOptions":{}},"credentials":{"slackApi":{"id":"","name":""}},"typeVersion":2.3},{"id":"f9af8834-645e-4fe0-b4bb-e463216e3662","name":"Send a message","type":"n8n-nodes-base.gmail","position":[1536,624],"webhookId":"7b7627a1-696c-490b-b9c5-cdca8da0f7b2","parameters":{"sendTo":"","message":"==<!DOCTYPE html>\n<html>\n  <body style=\"font-family: Arial, sans-serif; line-height: 1.6;\">\n    \n    <h2 style=\"color: #d9534f;\">🚨 API Usage Limit Reached</h2>\n    \n    <p><strong>Partner Name:</strong> {{$json[\"partner_name\"]}}</p>\n    <p><strong>Partner ID:</strong> {{$json[\"partner_id\"]}}</p>\n    <p><strong>Plan:</strong> {{$json[\"plan\"]}}</p>\n    \n    <hr>\n    \n    <p><strong>Quota:</strong> {{$json[\"quota\"]}}</p>\n    <p><strong>Consumed:</strong> {{$json[\"consumed\"]}}</p>\n    <p><strong>Usage:</strong> {{Math.round($json[\"usage_pct\"])}}%</p>\n    \n    <hr>\n\n    <p><strong>Timestamp:</strong> {{$json[\"timestamp\"]}}</p>\n\n    <h3 style=\"color: #f0ad4e;\">⚠ Recommended Action</h3>\n    <ul>\n      <li>Immediately review partner usage</li>\n      <li>Contact partner for plan upgrade</li>\n      <li>Prevent service disruption</li>\n    </ul>\n\n    <hr>\n\n    <p style=\"color: #999;\">This is an automated alert from API Monitoring System</p>\n\n  </body>\n</html>","options":{},"subject":"== URGENT: {{$json[\"partner_name\"]}} has reached 100% API usage limit"},"credentials":{"gmailOAuth2":{"id":"","name":""}},"typeVersion":2.1},{"id":"85ccdba5-23de-43a3-af90-9001811bd49b","name":"Create Jira Partner Review Ticket1","type":"n8n-nodes-base.jira","position":[1712,624],"parameters":{"project":{"__rl":true,"mode":"list","value":"10000","cachedResultName":"n8n sample project"},"summary":"=Partner {{ $('Switch').item.json.partner_name }} reached {{ $('Switch').item.json.usage_pct }}% usage – Review Plan Tier","issueType":{"__rl":true,"mode":"list","value":"10003","cachedResultName":"Task"},"additionalFields":{"description":"=Partner Usage Alert  \nPartner Name:{{ $('Switch').item.json.partner_name }}\nPartner ID: {{ $('Switch').item.json.partner_id }}\nPlan: {{ $('Switch').item.json.plan }}\nQuota: {{ $('Switch').item.json.quota }}\nConsumed: {{ $('Switch').item.json.consumed }}\nUsage %: {{ $('Switch').item.json.usage_pct }}\nTimestamp: {{ $('Switch').item.json.timestamp }}\nRecommended Action: - Review current plan tier. - Contact partner for possible upgrade discussion."}},"credentials":{"jiraSoftwareCloudApi":{"id":"","name":""}},"typeVersion":1},{"id":"80d137a7-3076-4159-9142-362d81ab1c35","name":"Send Slack Partner Usage Alert2","type":"n8n-nodes-base.slack","position":[1872,624],"webhookId":"52f8ed4d-8c44-40ac-9f8c-fd573a80ceae","parameters":{"text":"=🚨 *Partner Usage Alert*  \n*Partner:*{{ $('Validate Partner Usage Payload').item.json.partner_name }} \n*Usage:* {{Math.round($json[\"usage_pct\"])}}% \n*Plan:*{{ $('Validate Partner Usage Payload').item.json.plan }} \n*Timestamp:* {{ $('Validate Partner Usage Payload').item.json.timestamp }} \n*A Jira ticket has been created for review:* {{ $json.key }}  \nRecommended Action: \n• Review the current plan tier\n• Consider reaching out for upgrade discussion.","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C09S57E2JQ2","cachedResultName":"n8n"},"otherOptions":{}},"credentials":{"slackApi":{"id":"","name":""}},"typeVersion":2.3},{"id":"c137bc68-778c-4e2b-8bff-f770a0b3c4da","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1248,16],"parameters":{"color":7,"width":912,"height":384,"content":"## 80% Usage Alert – Early Warning Notification\nThis section monitors when a partner reaches 80% of their API usage quota. It acts as an early warning system by sending a Slack notification to internal teams, enabling proactive monitoring and giving sufficient time to assess usage trends before critical limits are reached."},"typeVersion":1},{"id":"28e96297-85e3-4d3e-9dff-f33acee1e7fd","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1248,464],"parameters":{"color":7,"width":912,"height":336,"content":"## 100% Usage Alert – Critical Escalation & Action Required\nThis section handles critical scenarios where a partner fully exhausts their API quota. It triggers immediate escalation by sending an email, creating a Jira ticket and notifying via Slack, ensuring rapid response to prevent service disruption and initiate urgent upgrade or mitigation actions."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"cfc8118e-c5a8-4d37-bb61-f8e46ea7cc86","connections":{"Switch":{"main":[[{"node":"Create Jira Partner Review Ticket","type":"main","index":0}],[{"node":"Send Slack Partner Usage Alert1","type":"main","index":0}],[{"node":"Send a message","type":"main","index":0}]]},"Send a message":{"main":[[{"node":"Create Jira Partner Review Ticket1","type":"main","index":0}]]},"Is Usage Payload Valid?":{"main":[[{"node":"Calculate API Usage Percentage","type":"main","index":0}]]},"Incoming Partner Usage Data":{"main":[[{"node":"Validate Partner Usage Payload","type":"main","index":0}]]},"Calculate API Usage Percentage":{"main":[[{"node":"Switch","type":"main","index":0}]]},"Validate Partner Usage Payload":{"main":[[{"node":"Is Usage Payload Valid?","type":"main","index":0}]]},"Create Jira Partner Review Ticket":{"main":[[{"node":"Send Slack Partner Usage Alert","type":"main","index":0}]]},"Create Jira Partner Review Ticket1":{"main":[[{"node":"Send Slack Partner Usage Alert2","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":17,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.jira":{"count":2},"n8n-nodes-base.gmail":{"count":1},"n8n-nodes-base.slack":{"count":3},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":6}}},"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":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":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"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/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"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/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"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/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/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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"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/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":77,"icon":"file:jira.svg","name":"n8n-nodes-base.jira","codex":{"data":{"resources":{"generic":[{"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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.jira/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/jira/"}]},"categories":["Development","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"Jira Software"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjguMjUgNzEuMjUiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMuMTI1IiB5PSIzLjEyNSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjkxLjklIiB4Mj0iMjguNDklIiB5MT0iNDAuMjIlIiB5Mj0iODEuNjMlIj48c3RvcCBvZmZzZXQ9IjE4JSIgc3RvcC1jb2xvcj0iIzAwNTJjYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzI2ODRmZiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iOC43JSIgeDI9IjcyLjI2JSIgeTE9IjU5LjE3JSIgeTI9IjE3Ljk5JSI+PHN0b3Agb2Zmc2V0PSIxOCUiIHN0b3AtY29sb3I9IiMwMDUyY2MiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMyNjg0ZmYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48c3ltYm9sIGlkPSJhIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiPjxwYXRoIGZpbGw9IiMyNjg0ZmYiIGQ9Ik02MS4xNjEgMzAuMjExIDMwLjk1IDAgLjc0IDMwLjIxMWEyLjU0IDIuNTQgMCAwIDAgMCAzLjU4MWwzMC4yMTEgMzAuMjEgMzAuMjExLTMwLjIxYTIuNTQgMi41NCAwIDAgMCAwLTMuNTgxek0zMC45NSA0MS40NmwtOS40NjItOS40NjIgOS40NjItOS40NjIgOS40NjIgOS40NjJ6Ii8+PHBhdGggZmlsbD0idXJsKCNiKSIgZD0iTTMwLjk1IDIyLjU5OUMyNC43NTUgMTYuNDA1IDI0LjcyNCA2LjM3IDMwLjg4MS4xMzhMMTAuMTE0IDIwLjc3NGwxMS4yNjggMTEuMjY4eiIvPjxwYXRoIGZpbGw9InVybCgjYykiIGQ9Ik00MC40MzcgMzEuOTczIDMwLjk1IDQxLjQ2YTE1LjkzIDE1LjkzIDAgMCAxIDAgMjIuNTM2bDIwLjc0OS0yMC43NDl6Ii8+PC9nPjwvc3ltYm9sPjwvc3ZnPg=="},"displayName":"Jira Software","typeVersion":1,"nodeCategories":[{"id":4,"name":"Productivity"},{"id":5,"name":"Development"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"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/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/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/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"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":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":16,"name":"DevOps"}],"image":[]}}