{"workflow":{"id":14515,"name":"Log invoice approval decisions from Slack to Google Sheets","views":2,"recentViews":1,"totalViews":2,"createdAt":"2026-03-31T07:36:44.942Z","description":"## What This Workflow Does\nListens for button clicks from the **Invoice → Slack Approval** workflow. When someone clicks Approve, Reject, or Flag on an invoice in Slack, this workflow captures that decision, logs it to **Google Sheets**, and sends a confirmation notification.\n\n## How It Works\n1. **Webhook Trigger** – Receives POST request from Slack when a button is clicked\n2. **Parse Payload** – Extracts the JSON payload from Slack's request body\n3. **Extract Decision Data** – Pulls decision, user info, and invoice details from the message\n4. **Route by Decision** – Branches to Approved, Rejected, or Flagged path\n5. **Log to Sheets** – Appends invoice data to the appropriate sheet tab\n6. **Notify via Slack** – Sends confirmation DM to the approver\n\n## Decision Routes\n- ✅ **Approved** → Logs to \"Approved\" sheet → DM confirmation\n- ❌ **Rejected** → Logs to \"Rejected\" sheet → DM confirmation\n- 🚩 **Flagged** → Logs to \"Flagged\" sheet → DM for manual review\n\n---\n\n## Setup Guide\n\n### 1. Create Google Sheet\n1. Create a new Google Sheet with 3 tabs: `Approved`, `Rejected`, `Flagged`\n2. Add these column headers to each tab:\n   - Supplier Name\n   - Invoice Number\n   - Amount\n   - Date\n3. Copy the **Sheet ID** from the URL\n\n### 2. Connect the Nodes in n8n\n1. Add your **Google Sheets OAuth2** credential to all three logging nodes\n2. Update the **Document ID** in each Google Sheets node to your Sheet ID\n3. Add your **Slack API** credential to all three notification nodes\n4. Update the **User ID** in the notification nodes (or change to channel)\n\n### 3. Configure Slack Interactivity\n1. Go to **api.slack.com/apps** → your app → **Interactivity & Shortcuts**\n2. Set the Request URL to this workflow's webhook URL\n3. Save Changes\n\n### 4. Activate & Test\n1. Click **Active** in the top-right corner of n8n\n2. Trigger the Invoice Approval workflow to send a Slack message\n3. Click a button in Slack\n4. Check Google Sheets and Slack for results","workflow":{"name":"Invoice Approval Handler (Slack Listener)","tags":[{"name":"Finance"},{"name":"Invoice Automation"},{"name":"Slack"}],"nodes":[{"id":"f024271f-524f-4ab5-b7fb-43ed93e2bea3","name":"Receive Slack Button Click","type":"n8n-nodes-base.webhook","position":[-64,416],"parameters":{"path":"invoice-approval-handler","options":{},"httpMethod":"POST"},"typeVersion":2},{"id":"3c8f8381-a479-4e37-a35a-32f185762422","name":"Parse Slack Payload","type":"n8n-nodes-base.set","position":[208,416],"parameters":{"options":{},"assignments":{"assignments":[{"id":"a493fcd6-0bf3-4887-bd69-4026c14c3d22","name":"payload","type":"object","value":"={{ JSON.parse($json.body.payload) }}"}]}},"typeVersion":3.4},{"id":"e22d06ad-d82d-433d-8360-3089e8ad35e4","name":"Extract Decision & Invoice Data","type":"n8n-nodes-base.set","position":[480,416],"parameters":{"options":{},"assignments":{"assignments":[{"id":"ecc7c2a7-85a2-4bb6-8213-06b409ab9281","name":"decision","type":"string","value":"={{ $json.payload.actions[0].value }}"},{"id":"d6f8aad0-508f-4a38-99ed-00eb76bcd7f8","name":"decided_by","type":"string","value":"={{ $json.payload.user.name }}"},{"id":"277dbaef-143b-4603-85d4-b69f1284b3d9","name":"decided_by_id","type":"string","value":"={{ $json.payload.user.id }}"},{"id":"44951b7f-73c9-48df-b8ce-189bbcaa2112","name":"channel_id","type":"string","value":"={{ $json.payload.channel.id }}"},{"id":"224e0814-6d1f-4ff8-90d5-a08bb05da837","name":"message_ts","type":"string","value":"={{ $json.payload.message.ts }}"},{"id":"1d96a304-f9ca-43e1-b1c2-590b8ce92c21","name":"supplier_name","type":"string","value":"={{ $json.payload.message.blocks[1].fields[0].text.split('\\n')[1] }}"},{"id":"99f3f0a9-b595-4057-ac33-2421cc5b6ca5","name":"invoice_number","type":"string","value":"={{ $json.payload.message.blocks[1].fields[1].text.split('\\n')[1] }}"},{"id":"fb44a6ec-6441-4c8e-9143-85fe7577211c","name":"amount","type":"string","value":"={{ $json.payload.message.blocks[1].fields[2].text.split('\\n')[1] }}"},{"id":"3b17ccc8-108a-4586-b6de-2b1685b21539","name":"invoice_date","type":"string","value":"={{ $json.payload.message.blocks[1].fields[3].text.split('\\n')[1] }}"}]}},"typeVersion":3.4},{"id":"899c3038-7397-441e-990e-8ef38977fa97","name":"Route: Approved / Rejected / Flagged","type":"n8n-nodes-base.switch","position":[752,400],"parameters":{"rules":{"values":[{"outputKey":"Approved","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.decision }}","rightValue":"approved"}]},"renameOutput":true},{"outputKey":"Rejected","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.decision }}","rightValue":"rejected"}]},"renameOutput":true},{"outputKey":"Flagged","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.decision }}","rightValue":"flagged"}]},"renameOutput":true}]},"options":{}},"typeVersion":3.2},{"id":"dfe0a576-d0f1-4b6e-affb-ec93ab80597f","name":"Log to Sheets: Approved","type":"n8n-nodes-base.googleSheets","position":[1024,240],"parameters":{"columns":{"value":{"Date":"={{ $json.invoice_date }}","Amount":"={{ $json.amount }}","Supplier Name":"={{ $json.supplier_name }}","Invoice Number":"={{ $json.invoice_number }}"},"schema":[{"id":"Supplier Name","type":"string","display":true,"required":false,"displayName":"Supplier Name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Invoice Number","type":"string","display":true,"required":false,"displayName":"Invoice Number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Amount","type":"string","display":true,"required":false,"displayName":"Amount","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date","type":"string","display":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"Approved"},"documentId":{"__rl":true,"mode":"id","value":"YOUR_GOOGLE_SHEET_ID"}},"typeVersion":4.5},{"id":"9fb05679-ed5b-44b2-a72a-e2f0f88ea622","name":"Log to Sheets: Rejected","type":"n8n-nodes-base.googleSheets","position":[1024,416],"parameters":{"columns":{"value":{"Date":"={{ $json.invoice_date }}","Amount":"={{ $json.amount }}","Supplier Name":"={{ $json.supplier_name }}","Invoice Number":"={{ $json.invoice_number }}"},"schema":[{"id":"Supplier Name","type":"string","display":true,"required":false,"displayName":"Supplier Name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Invoice Number","type":"string","display":true,"required":false,"displayName":"Invoice Number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Amount","type":"string","display":true,"required":false,"displayName":"Amount","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date","type":"string","display":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"Rejected"},"documentId":{"__rl":true,"mode":"id","value":"YOUR_GOOGLE_SHEET_ID"}},"typeVersion":4.5},{"id":"a2d9b4fe-16e0-4514-aa9c-daf65ee080ad","name":"Log to Sheets: Flagged","type":"n8n-nodes-base.googleSheets","position":[1024,592],"parameters":{"columns":{"value":{"Date":"={{ $json.invoice_date }}","Amount":"={{ $json.amount }}","Supplier Name":"={{ $json.supplier_name }}","Invoice Number":"={{ $json.invoice_number }}"},"schema":[{"id":"Supplier Name","type":"string","display":true,"required":false,"displayName":"Supplier Name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Invoice Number","type":"string","display":true,"required":false,"displayName":"Invoice Number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Amount","type":"string","display":true,"required":false,"displayName":"Amount","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date","type":"string","display":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[]},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"Flagged"},"documentId":{"__rl":true,"mode":"id","value":"YOUR_GOOGLE_SHEET_ID"}},"typeVersion":4.5},{"id":"f444c5fb-0d76-413d-b170-4dd085d668c8","name":"Slack DM: Approved ✅","type":"n8n-nodes-base.slack","position":[1296,240],"parameters":{"text":"=✅ *Invoice Approved & Ready to Pay*\n\n*Supplier:* {{ $json['Supplier Name'] }}\n*Invoice #:* {{ $json['Invoice Number'] }}\n*Amount:* {{ $json.Amount }}\n*Date:* {{ $json.Date }}\n*Approved by:* {{ $('Route: Approved / Rejected / Flagged').item.json.decided_by }}","user":{"__rl":true,"mode":"id","value":"YOUR_USER_ID"},"select":"user","otherOptions":{}},"typeVersion":2.3},{"id":"58e53f7a-c8f1-4ddd-b8ad-f16691d55cab","name":"Slack DM: Rejected ❌","type":"n8n-nodes-base.slack","position":[1296,416],"parameters":{"text":"=❌ *Invoice Rejected*\n\n*Supplier:* {{ $json['Supplier Name'] }}\n*Invoice #:* {{ $json['Invoice Number'] }}\n*Amount:* {{ $json.Amount }}\n*Date:* {{ $json.Date }}\n*Rejected by:* {{ $('Route: Approved / Rejected / Flagged').item.json.decided_by }}","user":{"__rl":true,"mode":"id","value":"YOUR_USER_ID"},"select":"user","otherOptions":{}},"typeVersion":2.3},{"id":"5473fdea-f831-4da8-8c0d-94fcae527931","name":"Slack DM: Flagged 🚩","type":"n8n-nodes-base.slack","position":[1296,592],"parameters":{"text":"=🚩 *Invoice Flagged for Review*\n\n*Supplier:* {{ $json['Supplier Name'] }}\n*Invoice #:* {{ $json['Invoice Number'] }}\n*Amount:* {{ $json.Amount }}\n*Date:* {{ $json.Date }}\n*Flagged by:* {{ $('Route: Approved / Rejected / Flagged').item.json.decided_by }}\n\n⚠️ Please review this invoice manually.","user":{"__rl":true,"mode":"id","value":"YOUR_USER_ID"},"select":"user","otherOptions":{}},"typeVersion":2.3},{"id":"45e5c100-b3c5-430d-b5cb-33c8ba1b7f8a","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-144,320],"parameters":{"color":7,"width":256,"height":272,"content":"### 🔔 Slack Webhook\nReceives button click events from Slack Interactivity"},"typeVersion":1},{"id":"6ebf1842-3c96-425a-9cf5-454a491bb489","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[128,320],"parameters":{"color":7,"width":256,"height":272,"content":"### 📦 Parse Payload\nConverts Slack's URL-encoded payload into JSON object"},"typeVersion":1},{"id":"f536f100-b96e-45dd-aa23-8b2a36d7063f","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[400,320],"parameters":{"color":7,"width":256,"height":272,"content":"### 📋 Extract Decision Data\nPulls decision, user, and invoice details from Slack message"},"typeVersion":1},{"id":"0c8770a8-1c00-455d-acb0-b6b6f3f48c5b","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[672,288],"parameters":{"color":7,"width":256,"height":336,"content":"### 🔀 Route by Decision\nBranches flow: Approved → Rejected → Flagged"},"typeVersion":1},{"id":"3e58c7fc-8301-490f-acaa-85a013c82ef1","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[944,144],"parameters":{"color":7,"width":256,"height":608,"content":"### 📊 Log to Sheets\nAppends invoice data to the appropriate Google Sheets tab"},"typeVersion":1},{"id":"783c33e9-68a3-4082-9184-a2a4db6f04e4","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1216,144],"parameters":{"color":7,"width":256,"height":608,"content":"### 💬 Send Confirmation\nNotifies the approver via Slack DM"},"typeVersion":1},{"id":"32f0f5bd-897b-49dc-b85f-71dcfe5505a6","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-832,-160],"parameters":{"width":672,"height":1264,"content":"# 📥 Invoice Approval Handler\n(Slack Button Listener)\n\n## What This Workflow Does\nListens for button clicks from the **Invoice → Slack Approval** workflow. When someone clicks Approve, Reject, or Flag on an invoice in Slack, this workflow captures that decision, logs it to **Google Sheets**, and sends a confirmation notification.\n\n## How It Works\n1. **Webhook Trigger** – Receives POST request from Slack when a button is clicked\n2. **Parse Payload** – Extracts the JSON payload from Slack's request body\n3. **Extract Decision Data** – Pulls decision, user info, and invoice details from the message\n4. **Route by Decision** – Branches to Approved, Rejected, or Flagged path\n5. **Log to Sheets** – Appends invoice data to the appropriate sheet tab\n6. **Notify via Slack** – Sends confirmation DM to the approver\n\n## Decision Routes\n- ✅ **Approved** → Logs to \"Approved\" sheet → DM confirmation\n- ❌ **Rejected** → Logs to \"Rejected\" sheet → DM confirmation\n- 🚩 **Flagged** → Logs to \"Flagged\" sheet → DM for manual review\n\n---\n\n## Setup Guide\n\n### 1. Create Google Sheet\n1. Create a new Google Sheet with 3 tabs: `Approved`, `Rejected`, `Flagged`\n2. Add these column headers to each tab:\n   - Supplier Name\n   - Invoice Number\n   - Amount\n   - Date\n3. Copy the **Sheet ID** from the URL\n\n### 2. Connect the Nodes in n8n\n1. Add your **Google Sheets OAuth2** credential to all three logging nodes\n2. Update the **Document ID** in each Google Sheets node to your Sheet ID\n3. Add your **Slack API** credential to all three notification nodes\n4. Update the **User ID** in the notification nodes (or change to channel)\n\n### 3. Configure Slack Interactivity\n1. Go to **api.slack.com/apps** → your app → **Interactivity & Shortcuts**\n2. Set the Request URL to this workflow's webhook URL\n3. Save Changes\n\n### 4. Activate & Test\n1. Click **Active** in the top-right corner of n8n\n2. Trigger the Invoice Approval workflow to send a Slack message\n3. Click a button in Slack\n4. Check Google Sheets and Slack for results"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"connections":{"Parse Slack Payload":{"main":[[{"node":"Extract Decision & Invoice Data","type":"main","index":0}]]},"Log to Sheets: Flagged":{"main":[[{"node":"Slack DM: Flagged 🚩","type":"main","index":0}]]},"Log to Sheets: Approved":{"main":[[{"node":"Slack DM: Approved ✅","type":"main","index":0}]]},"Log to Sheets: Rejected":{"main":[[{"node":"Slack DM: Rejected ❌","type":"main","index":0}]]},"Receive Slack Button Click":{"main":[[{"node":"Parse Slack Payload","type":"main","index":0}]]},"Extract Decision & Invoice Data":{"main":[[{"node":"Route: Approved / Rejected / Flagged","type":"main","index":0}]]},"Route: Approved / Rejected / Flagged":{"main":[[{"node":"Log to Sheets: Approved","type":"main","index":0}],[{"node":"Log to Sheets: Rejected","type":"main","index":0}],[{"node":"Log to Sheets: Flagged","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":17,"nodeTypes":{"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.slack":{"count":3},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.googleSheets":{"count":3}}},"status":"published","readyToDemo":null,"user":{"name":"Felix","username":"easybits","bio":"Marketing Lead with a passion for automation and AI. I love working on smart workflows that automate repetitive manual tasks.","verified":true,"links":["https://easybits.tech/"],"avatar":"https://gravatar.com/avatar/af10d12444918e1d6cb3fd05bd68baa80b70744968fc8a216d369a58366eb634?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"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/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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"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/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-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/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"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":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":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":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"}]}],"categories":[{"id":34,"name":"Invoice Processing"}],"image":[]}}