{"workflow":{"id":14289,"name":"Generate and track invoices with HubSpot, Gmail, Slack, Sheets, and Notion","views":3,"recentViews":0,"totalViews":3,"createdAt":"2026-03-24T11:35:38.495Z","description":"## How it works  \nThis workflow triggers when a HubSpot deal stage changes to Closed Won and automatically generates an invoice. It collects deal and contact data, builds a styled invoice, converts it into a PDF, and sends it to the client. The system logs all invoices and alerts the team, then monitors payment status with automated reminders. If payment is delayed, it escalates the issue and handles errors separately.\n\n## Step-by-step  \n\n- **Trigger and data collection**  \n  - **HubSpot - Deal Trigger** – Starts workflow on deal stage change.  \n  - **IF - Is Deal Closed Won?** – Filters only Closed Won deals.  \n  - **HTTP - Get Deal Details** – Fetches deal information.  \n  - **HTTP - Get Deal Associations** – Retrieves linked contacts.  \n  - **Code - Extract Contact ID** – Extracts and formats data.  \n  - **HTTP - Get Contact Details** – Gets customer details.  \n\n- **Invoice generation**  \n  - **Code - Build Invoice + HTML** – Creates invoice data and HTML layout.  \n\n- **Send and store invoice**  \n  - **HTTP - Generate PDF** – Converts HTML into PDF.  \n  - **Google Sheets - Log Invoice** – Stores invoice records.  \n  - **Notion - Create Invoice Record** – Tracks invoice internally.  \n  - **Gmail - Send Invoice Email** – Sends invoice to client.  \n  - **Slack - Invoice Sent Alert** – Notifies team.  \n\n- **Payment tracking and follow-up**  \n  - **Wait - 7 Day Payment Window** – Waits before checking payment.  \n  - **HTTP - Recheck Deal Stage** – Checks payment status.  \n  - **IF - Payment Received?** – Branches based on payment.  \n  - **Gmail - Follow-up Email #1** – Sends reminder if unpaid.  \n  - **Wait - 5 More Days** – Adds extra delay.  \n  - **HTTP - Final Payment Check** – Verifies final status. \n  -   **Slack - Payment Confirmed** – Confirms successful payment.   \n\n- **Escalation handling**  \n  - **IF - Still Unpaid? (Escalate)** – Detects overdue invoices.  \n  - **Slack - Escalation Alert** – Alerts team for action.  \n  - **Notion - Flag as Overdue** – Updates record status.  \n  - **Slack - Late Payment Confirmed** – Handles delayed payments.  \n\n- **Error handling (separate flow)**  \n  - **Error Trigger** – Captures workflow failures.  \n  - **Slack - Workflow Error Alert** – Sends error notification.  \n\n## Why use this?  \n\n- Fully automates invoicing from deal closure to payment tracking  \n- Reduces manual billing work and human errors  \n- Improves payment collection with automated reminders  \n- Provides clear visibility with logs and team alerts  \n- Ensures reliability with built-in error monitoring  \n","workflow":{"meta":{"instanceId":"c91c5b6efe2709e07c37996245857ac5d863d575d07e0072127351337c204c40"},"nodes":[{"id":"17153603-4a79-431e-b288-fc6a6bcd0292","name":"🎯 HubSpot - Deal Trigger","type":"n8n-nodes-base.hubspotTrigger","position":[3232,3104],"webhookId":"invoice-hs-webhook-001","parameters":{"eventsUi":{"eventValues":[{"name":"deal.propertyChange"}]},"additionalFields":{}},"typeVersion":1},{"id":"02d82b96-2db2-4350-95bd-7bc93adf6e30","name":"🔀 IF - Is Deal Closed Won?","type":"n8n-nodes-base.if","position":[3456,3104],"parameters":{"conditions":{"string":[{"value1":"={{ $json.propertyName }}","value2":"dealstage"},{"value1":"={{ $json.propertyValue }}","value2":"closedwon"}]}},"typeVersion":1},{"id":"4f351028-09b3-4464-a2db-82e34de58b07","name":"🏷️ HTTP - Get Deal Details","type":"n8n-nodes-base.httpRequest","position":[3680,3104],"parameters":{"url":"=https://api.hubapi.com/crm/v3/objects/deals/{{ $json.objectId }}?properties=dealname,amount,dealstage,closedate,hubspot_owner_id,description","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"RunwayML (Het)"}},"typeVersion":4},{"id":"ab9333b3-fafa-4321-ab6c-7882a225fbca","name":"🔗 HTTP - Get Deal Associations","type":"n8n-nodes-base.httpRequest","position":[3904,3104],"parameters":{"url":"=https://api.hubapi.com/crm/v3/objects/deals/{{ $json.id }}/associations/contacts","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"RunwayML (Het)"}},"typeVersion":4},{"id":"6501585d-bc0f-4558-9ada-03c805e939a6","name":"⚙️ Code - Extract Contact ID","type":"n8n-nodes-base.code","position":[4112,3104],"parameters":{"jsCode":"// ── Extract contact ID from associations response ──\nconst results = $input.first().json.results;\n\nif (!results || results.length === 0) {\n  throw new Error(\n    'No contact is associated with this HubSpot deal. ' +\n    'Please associate at least one contact before marking as Closed Won.'\n  );\n}\n\nconst contactId = results[0].id;\n\n// Pull deal data fetched two nodes ago\nconst deal = $('🏷️ HTTP - Get Deal Details').first().json;\n\nreturn {\n  contactId,\n  dealId:    deal.id,\n  dealName:  deal.properties.dealname  || 'Professional Services',\n  amount:    deal.properties.amount    || '0',\n  closeDate: deal.properties.closedate || new Date().toISOString().split('T')[0]\n};"},"typeVersion":2},{"id":"bd29bc05-f2a9-4a2d-a253-c4a392cbc172","name":"👤 HTTP - Get Contact Details","type":"n8n-nodes-base.httpRequest","position":[4336,3104],"parameters":{"url":"=https://api.hubapi.com/crm/v3/objects/contacts/{{ $json.contactId }}?properties=firstname,lastname,email,company,phone,address","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4},{"id":"ade25776-aa2f-4e09-8978-b030fd07f4cb","name":"📄 Code - Build Invoice + HTML","type":"n8n-nodes-base.code","position":[4560,3104],"parameters":{"jsCode":"// ── Build invoice data + beautifully styled HTML ──\nconst contactProps = $input.first().json.properties;\nconst contactId    = $input.first().json.id;\nconst prev         = $('⚙️ Code - Extract Contact ID').first().json;\n\n// ── Generate invoice number ──\nconst pad = (n) => String(n).padStart(4, '0');\nconst invoiceNumber = 'INV-' + new Date().getFullYear() + '-' + pad(Math.floor(Math.random() * 9000) + 1000);\nconst issueDate     = new Date().toISOString().split('T')[0];\nconst dueDate       = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0];\n\n// ── Contact & deal info ──\nconst firstName    = contactProps.firstname || '';\nconst lastName     = contactProps.lastname  || '';\nconst contactName  = `${firstName} ${lastName}`.trim() || 'Valued Customer';\nconst contactEmail = contactProps.email   || '';\nconst company      = contactProps.company || '';\nconst phone        = contactProps.phone   || 'N/A';\nconst amount       = parseFloat(prev.amount || '0');\nconst dealName     = prev.dealName;\n\nconst fmt = (n) => n.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\nconst formattedAmount = fmt(amount);\nconst year = new Date().getFullYear();\n\n// ── Build HTML invoice ──\nconst htmlContent = `<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<style>\n  * { margin:0; padding:0; box-sizing:border-box; }\n  body { font-family:'Segoe UI',Arial,sans-serif; color:#2d3748; background:#fff; }\n  .wrap { max-width:780px; margin:0 auto; padding:48px; }\n  .header { display:flex; justify-content:space-between; align-items:flex-start;\n            padding-bottom:28px; border-bottom:4px solid #4F46E5; margin-bottom:36px; }\n  .brand-name { font-size:24px; font-weight:800; color:#4F46E5; letter-spacing:-0.5px; }\n  .brand-sub  { font-size:12px; color:#718096; margin-top:5px; line-height:1.6; }\n  .inv-badge  { text-align:right; }\n  .inv-label  { font-size:30px; font-weight:900; color:#4F46E5; letter-spacing:4px; }\n  .inv-num    { font-size:15px; color:#718096; margin-top:4px; font-weight:600; }\n  .grid       { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:32px; }\n  .box        { background:#F7F8FC; border-radius:10px; padding:20px; }\n  .box h4     { font-size:10px; text-transform:uppercase; letter-spacing:1.5px;\n                color:#A0AEC0; margin-bottom:10px; }\n  .box p      { font-size:13.5px; color:#4A5568; line-height:1.8; }\n  .box .bold  { font-weight:700; font-size:15px; color:#2d3748; }\n  .status-unpaid { display:inline-block; background:#FFF5F5; color:#E53E3E;\n                   padding:2px 10px; border-radius:20px; font-weight:700; font-size:12px; }\n  table       { width:100%; border-collapse:collapse; margin-bottom:8px; }\n  thead tr    { background:#4F46E5; }\n  thead th    { color:#fff; padding:13px 16px; text-align:left;\n                font-size:12px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; }\n  tbody tr    { border-bottom:1px solid #EDF2F7; }\n  tbody td    { padding:13px 16px; font-size:14px; color:#4A5568; }\n  .sub-row td { padding:8px 16px; color:#718096; font-size:13px; }\n  .total-row td { padding:15px 16px; background:#F7F8FC; font-weight:700;\n                  font-size:16px; border-top:2px solid #4F46E5; }\n  .total-amt  { color:#4F46E5; font-size:20px; }\n  .pay-box    { background:#EBF8FF; border:1px solid #BEE3F8; border-radius:10px;\n                padding:18px 22px; margin:20px 0 32px; }\n  .pay-box h4 { color:#2B6CB0; font-size:13px; font-weight:700; margin-bottom:8px; }\n  .pay-box p  { color:#2C5282; font-size:13px; line-height:1.7; }\n  .footer     { margin-top:36px; padding-top:20px; border-top:1px solid #EDF2F7;\n                text-align:center; color:#A0AEC0; font-size:11.5px; line-height:1.8; }\n</style>\n</head>\n<body>\n<div class=\"wrap\">\n\n  <div class=\"header\">\n    <div>\n      <div class=\"brand-name\">YOUR COMPANY NAME</div>\n      <div class=\"brand-sub\">\n        123 Business St, City, State 12345<br>\n        user@example.com &nbsp;|&nbsp; +1234567890\n      </div>\n    </div>\n    <div class=\"inv-badge\">\n      <div class=\"inv-label\">INVOICE</div>\n      <div class=\"inv-num\">${invoiceNumber}</div>\n    </div>\n  </div>\n\n  <div class=\"grid\">\n    <div class=\"box\">\n      <h4>Bill To</h4>\n      <p class=\"bold\">${contactName}</p>\n      <p>${company}</p>\n      <p>${contactEmail}</p>\n      <p>${phone}</p>\n    </div>\n    <div class=\"box\">\n      <h4>Invoice Details</h4>\n      <p><strong>Invoice No:</strong> ${invoiceNumber}</p>\n      <p><strong>Issue Date:</strong> ${issueDate}</p>\n      <p><strong>Due Date:</strong> ${dueDate}</p>\n      <p><strong>Status:</strong> <span class=\"status-unpaid\">UNPAID</span></p>\n    </div>\n  </div>\n\n  <table>\n    <thead>\n      <tr>\n        <th>Description</th>\n        <th style=\"width:80px\">Qty</th>\n        <th style=\"width:150px\">Unit Price</th>\n        <th style=\"width:150px\">Amount</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td>${dealName}</td>\n        <td>1</td>\n        <td>$${formattedAmount}</td>\n        <td>$${formattedAmount}</td>\n      </tr>\n      <tr class=\"sub-row\">\n        <td colspan=\"3\" style=\"text-align:right\">Subtotal</td>\n        <td>$${formattedAmount}</td>\n      </tr>\n      <tr class=\"sub-row\">\n        <td colspan=\"3\" style=\"text-align:right\">Tax (0%)</td>\n        <td>$0.00</td>\n      </tr>\n      <tr class=\"total-row\">\n        <td colspan=\"3\" style=\"text-align:right\">Total Amount Due</td>\n        <td class=\"total-amt\">$${formattedAmount}</td>\n      </tr>\n    </tbody>\n  </table>\n\n  <div class=\"pay-box\">\n    <h4>💳 Payment Instructions</h4>\n    <p>\n      Please make payment within 30 days of the invoice date.<br>\n      Reference invoice number <strong>${invoiceNumber}</strong> in your payment.<br>\n      Bank Transfer: Account <strong>1234-5678</strong> &nbsp;|&nbsp; Routing: <strong>021000021</strong>\n    </p>\n  </div>\n\n  <div class=\"footer\">\n    Thank you for your business! Questions? Contact user@example.com<br>\n    © ${year} Your Company Name. All rights reserved. &nbsp;|&nbsp; Payment terms: Net 30\n  </div>\n\n</div>\n</body>\n</html>`;\n\nreturn {\n  invoice_number:   invoiceNumber,\n  issue_date:       issueDate,\n  due_date:         dueDate,\n  amount,\n  formatted_amount: formattedAmount,\n  deal_name:        dealName,\n  contact_name:     contactName,\n  contact_email:    contactEmail,\n  company,\n  phone,\n  deal_id:    prev.dealId,\n  contact_id: contactId,\n  html_content: htmlContent\n};"},"typeVersion":2},{"id":"dc9aab04-faab-41e8-8162-30b298b289e8","name":"🖨️ HTTP - Generate PDF","type":"n8n-nodes-base.httpRequest","position":[4784,3104],"parameters":{"url":"https://api.html2pdf.app/v1/generate","method":"POST","options":{"response":{"response":{"responseFormat":"file","outputPropertyName":"invoice_pdf"}}},"sendBody":true,"bodyParameters":{"parameters":[{"name":"html","value":"={{ $json.html_content }}"},{"name":"apiKey","value":"REPLACE_HTML2PDF_API_KEY"},{"name":"media_type","value":"print"},{"name":"format","value":"A4"},{"name":"landscape","value":"false"}]}},"typeVersion":4},{"id":"05553481-1cae-48ca-b871-9c66839a79f9","name":"📊 Google Sheets - Log Invoice","type":"n8n-nodes-base.googleSheets","position":[4992,3104],"parameters":{"columns":{"value":{"Email":"={{ $('📄 Code - Build Invoice + HTML').item.json.contact_email }}","Amount":"={{ $('📄 Code - Build Invoice + HTML').item.json.amount }}","Status":"Sent - Awaiting Payment","Company":"={{ $('📄 Code - Build Invoice + HTML').item.json.company }}","Due Date":"={{ $('📄 Code - Build Invoice + HTML').item.json.due_date }}","Deal Name":"={{ $('📄 Code - Build Invoice + HTML').item.json.deal_name }}","Issue Date":"={{ $('📄 Code - Build Invoice + HTML').item.json.issue_date }}","Client Name":"={{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }}","Invoice Number":"={{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}","HubSpot Deal ID":"={{ $('📄 Code - Build Invoice + HTML').item.json.deal_id }}"},"mappingMode":"defineBelow"},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"Sheet1"},"documentId":{"__rl":true,"mode":"id","value":"REPLACE_GOOGLE_SHEET_ID"}},"typeVersion":4},{"id":"4614313b-2803-49e0-8781-d9d0fcf8e8c8","name":"📓 Notion - Create Invoice Record","type":"n8n-nodes-base.notion","position":[5216,3104],"parameters":{"title":"={{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }} — {{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }}","pageId":{"__rl":true,"mode":"url","value":""},"options":{}},"credentials":{"notionApi":{"id":"credential-id","name":"Notion account(het)"}},"typeVersion":2},{"id":"076e9e1e-3b62-4528-9317-f955c7ef385d","name":"📧 Gmail - Send Invoice Email","type":"n8n-nodes-base.gmail","position":[5440,3104],"webhookId":"15dc063f-a5b1-4151-b20f-f2071342e361","parameters":{"sendTo":"={{ $('📄 Code - Build Invoice + HTML').item.json.contact_email }}","message":"=<div style=\"font-family:Arial,sans-serif;color:#2d3748;max-width:600px\">\n  <p>Dear {{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }},</p>\n  <p>Thank you for choosing us. Please find attached your invoice <strong>{{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}</strong> for <strong>${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }}</strong>.</p>\n  <table style=\"width:100%;background:#f7f8fc;border-radius:8px;padding:16px;margin:20px 0\">\n    <tr><td style=\"padding:6px 0\"><strong>Invoice #:</strong></td><td>{{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}</td></tr>\n    <tr><td style=\"padding:6px 0\"><strong>Amount Due:</strong></td><td style=\"color:#4F46E5;font-weight:700\">${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }}</td></tr>\n    <tr><td style=\"padding:6px 0\"><strong>Due Date:</strong></td><td>{{ $('📄 Code - Build Invoice + HTML').item.json.due_date }}</td></tr>\n  </table>\n  <p>The invoice PDF is attached. Please process payment by the due date and include the invoice number as reference.</p>\n  <p>For questions, simply reply to this email.</p>\n  <p style=\"margin-top:24px\">Best regards,<br><strong>Billing Team</strong><br>Your Company Name</p>\n</div>","options":{},"subject":"=Invoice {{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }} — ${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }} Due {{ $('📄 Code - Build Invoice + HTML').item.json.due_date }}"},"typeVersion":2},{"id":"03e00a09-730a-4d3a-b658-7454f48710cb","name":"💬 Slack - Invoice Sent Alert","type":"n8n-nodes-base.slack","position":[5648,3104],"webhookId":"b7e1c867-597f-4feb-8a58-27807fa0b84a","parameters":{"text":"=:white_check_mark: *Invoice Sent Successfully*\n\n*Invoice:* `{{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}`\n*Client:* {{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }} @ {{ $('📄 Code - Build Invoice + HTML').item.json.company }}\n*Amount:* *${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }}*\n*Deal:* {{ $('📄 Code - Build Invoice + HTML').item.json.deal_name }}\n*Due Date:* {{ $('📄 Code - Build Invoice + HTML').item.json.due_date }}\n\n:hourglass_flowing_sand: *Auto follow-up* will trigger in 7 days if payment is not confirmed.","otherOptions":{"mrkdwn":true},"authentication":"oAuth2"},"typeVersion":2},{"id":"2ebdc39f-f729-4968-ac6c-80a63011c70c","name":"⏳ Wait - 7 Day Payment Window","type":"n8n-nodes-base.wait","position":[5888,3104],"webhookId":"wait-7-days-invoice-001","parameters":{"unit":"days","amount":7},"typeVersion":1},{"id":"5167b736-46a7-467b-b2d2-e0913bec9828","name":"🔍 HTTP - Recheck Deal Stage","type":"n8n-nodes-base.httpRequest","position":[6096,3104],"parameters":{"url":"=https://api.hubapi.com/crm/v3/objects/deals/{{ $('📄 Code - Build Invoice + HTML').item.json.deal_id }}?properties=dealstage,amount,hs_deal_stage_probability","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4},{"id":"a21a6f44-0c56-4c72-bc2d-ceef3cd443c1","name":"🔀 IF - Payment Received?","type":"n8n-nodes-base.if","position":[6304,3104],"parameters":{"conditions":{"string":[{"value1":"={{ $json.properties.dealstage }}","value2":"closedwon_paid"}]},"combineOperation":"any"},"typeVersion":1},{"id":"ac494063-dcd8-47d8-b263-771f5e940490","name":"✅ Slack - Payment Confirmed","type":"n8n-nodes-base.slack","position":[6560,2912],"webhookId":"85f0b3ec-cc7d-4060-8b11-00fe8f74a446","parameters":{"text":"=:moneybag: *Payment Confirmed — Invoice Closed!*\n\n*Invoice:* `{{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}`\n*Client:* {{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }} @ {{ $('📄 Code - Build Invoice + HTML').item.json.company }}\n*Amount Received:* *${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }}*\n\n:tada: Deal marked as paid in HubSpot. Great work team!","otherOptions":{"mrkdwn":true},"authentication":"oAuth2"},"typeVersion":2},{"id":"d6cea393-d97f-4170-a769-a2f47ee15e21","name":"📧 Gmail - Follow-up Email #1","type":"n8n-nodes-base.gmail","position":[6560,3328],"webhookId":"fe66bda5-702d-4de6-9aab-70dd635f00df","parameters":{"sendTo":"={{ $('📄 Code - Build Invoice + HTML').item.json.contact_email }}","message":"=<div style=\"font-family:Arial,sans-serif;color:#2d3748;max-width:600px\">\n  <p>Dear {{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }},</p>\n  <p>I hope you're doing well! This is a friendly reminder that invoice <strong>{{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}</strong> for <strong>${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }}</strong> was due on <strong>{{ $('📄 Code - Build Invoice + HTML').item.json.due_date }}</strong>.</p>\n  <p>If you've already sent payment, please disregard this message — we may be crossing in the post. Otherwise, we'd appreciate your prompt attention.</p>\n  <p>Need to discuss payment terms or have any questions? Simply reply to this email and we'll be happy to help.</p>\n  <p style=\"margin-top:24px\">Warm regards,<br><strong>Billing Team</strong><br>Your Company Name</p>\n</div>","options":{},"subject":"=Friendly Reminder: Invoice {{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }} — Payment Due"},"typeVersion":2},{"id":"52083ac6-85bc-45c6-bc10-04beb18a5d4b","name":"⏳ Wait - 5 More Days","type":"n8n-nodes-base.wait","position":[6784,3328],"webhookId":"wait-5-days-invoice-002","parameters":{"unit":"days","amount":5},"typeVersion":1},{"id":"41086544-3a90-4d57-b4c9-f4819ca3ac5a","name":"🔍 HTTP - Final Payment Check","type":"n8n-nodes-base.httpRequest","position":[7008,3328],"parameters":{"url":"=https://api.hubapi.com/crm/v3/objects/deals/{{ $('📄 Code - Build Invoice + HTML').item.json.deal_id }}?properties=dealstage,amount","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4},{"id":"fd161811-2aa6-4293-9c74-9bbd6e707f3e","name":"🔀 IF - Still Unpaid? (Escalate)","type":"n8n-nodes-base.if","position":[7216,3328],"parameters":{"conditions":{"string":[{"value1":"={{ $json.properties.dealstage }}","value2":"closedwon_paid","operation":"notEqual"}]},"combineOperation":"any"},"typeVersion":1},{"id":"951d1ce9-ccc5-4280-9ccf-00cd2776b379","name":"🚨 Slack - Escalation Alert","type":"n8n-nodes-base.slack","position":[7552,2976],"webhookId":"e9acd347-f364-459c-83c5-95dcd0673976","parameters":{"text":"=:rotating_light: *OVERDUE INVOICE — MANUAL ACTION REQUIRED*\n\n*Invoice:* `{{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}`\n*Client:* {{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }} @ {{ $('📄 Code - Build Invoice + HTML').item.json.company }}\n*Overdue Amount:* *${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }}*\n*Client Email:* {{ $('📄 Code - Build Invoice + HTML').item.json.contact_email }}\n*Original Due Date:* {{ $('📄 Code - Build Invoice + HTML').item.json.due_date }}\n*Days Overdue:* 12+\n\n:phone: *Please contact the client directly — two automated reminders have been sent.*\n:notion: Notion record has been flagged as *OVERDUE*.","otherOptions":{"mrkdwn":true},"authentication":"oAuth2"},"typeVersion":2},{"id":"7ac58dd0-1e09-433b-b9c4-6ac905e249ac","name":"📓 Notion - Flag as Overdue","type":"n8n-nodes-base.notion","position":[7552,3184],"parameters":{"operation":"update"},"credentials":{"notionApi":{"id":"credential-id","name":"Notion account(het)"}},"typeVersion":2},{"id":"d69aceed-3c66-4fac-b89b-79d731a2271f","name":"✅ Slack - Late Payment Confirmed","type":"n8n-nodes-base.slack","position":[7552,3376],"webhookId":"2047b192-8843-43de-9d34-e25f9bdd19d7","parameters":{"text":"=:moneybag: *Late Payment Received — Invoice Closed*\n\n*Invoice:* `{{ $('📄 Code - Build Invoice + HTML').item.json.invoice_number }}`\n*Client:* {{ $('📄 Code - Build Invoice + HTML').item.json.contact_name }} @ {{ $('📄 Code - Build Invoice + HTML').item.json.company }}\n*Amount Received:* *${{ $('📄 Code - Build Invoice + HTML').item.json.formatted_amount }}*\n\nPayment came in after the follow-up reminder. :slightly_smiling_face: Please update HubSpot manually if needed.","otherOptions":{"mrkdwn":true},"authentication":"oAuth2"},"typeVersion":2},{"id":"40077fa5-b256-4c47-a23b-c13140546038","name":"⚡ Error Trigger","type":"n8n-nodes-base.errorTrigger","position":[3216,3728],"parameters":{},"typeVersion":1},{"id":"15a3db2e-f1b1-4fe2-a004-e18a86f686d4","name":"🚨 Slack - Workflow Error Alert","type":"n8n-nodes-base.slack","position":[3440,3728],"webhookId":"e539266a-b53f-45a7-a562-dd80a0bda054","parameters":{"text":"=:x: *INVOICE PIPELINE — WORKFLOW ERROR*\n\n*Error:* `{{ $json.execution.error.message }}`\n*Failed Node:* {{ $json.execution.lastNodeExecuted }}\n*Workflow:* {{ $json.workflow.name }}\n*Execution ID:* {{ $json.execution.id }}\n*Timestamp:* {{ $now.format('yyyy-MM-dd HH:mm:ss') }}\n\n:arrow_right: Log into N8N and check execution logs for details.\nManual intervention required.","otherOptions":{"mrkdwn":true},"authentication":"oAuth2"},"typeVersion":2},{"id":"0a8a475c-9852-40bb-bbd8-e226f2383575","name":"📋 SETUP INSTRUCTIONS","type":"n8n-nodes-base.stickyNote","position":[2224,2880],"parameters":{"width":780,"height":1020,"content":"# Automated Invoice & Follow-Up System\n\n### How it works\nThis workflow triggers when a HubSpot deal is marked as Closed Won. It fetches deal and contact data, generates a styled invoice, converts it into a PDF, logs it in internal systems, and sends it to the client.\n\nAfter sending, the system tracks payment status. If unpaid, it sends reminders and escalates overdue invoices automatically.\n\n### Setup steps\n1. Connect HubSpot trigger and API credentials\n2. Add HTML2PDF API key\n3. Set Google Sheets and Notion database\n4. Connect Gmail and Slack\n5. Update payment stage ID in IF nodes\n6. Activate workflow\n\n### Customization tips\n- Edit invoice design in Code node\n- Adjust wait durations for follow-ups\n- Add more reminders if needed"},"typeVersion":1},{"id":"fdd9db77-bc88-48f7-bfcf-d8095afab68b","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[3088,2864],"parameters":{"color":7,"width":1376,"height":704,"content":"##  Trigger & Data Collection\nTriggers on deal stage change.\nFetches deal + contact details from HubSpot."},"typeVersion":1},{"id":"0e8949e7-6db2-42da-b5ba-cacf017f80d6","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[4480,2864],"parameters":{"color":7,"height":704,"content":"## Invoice Generation\nBuilds invoice data and creates styled HTML."},"typeVersion":1},{"id":"c132b042-4213-4098-9eb8-e2a08d775afc","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[4736,2864],"parameters":{"color":7,"width":1072,"height":704,"content":"## Send & Store Invoice\nConverts to PDF, logs in systems,\nemails client, and alerts team."},"typeVersion":1},{"id":"6bb8af1d-e99b-4faa-a3b5-0d23b838b958","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[5824,2864],"parameters":{"color":7,"width":1328,"height":688,"content":"## Send & Store Invoice\nConverts to PDF, logs in systems,\nemails client, and alerts team."},"typeVersion":1},{"id":"a6b6d2c9-4409-478b-9320-729f4dc12f23","name":"Sticky Note11","type":"n8n-nodes-base.stickyNote","position":[7168,2864],"parameters":{"color":7,"width":720,"height":688,"content":"##  Escalation & Errors\nHandles overdue invoices and workflow failures.\nAlerts team and updates records."},"typeVersion":1},{"id":"73f010c3-1287-44f8-a0b7-8afbef49ff89","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[3088,3600],"parameters":{"color":7,"width":576,"height":304,"content":"## Error Handling\nCaptures any workflow failure\nand sends alert to Slack for quick action."},"typeVersion":1}],"pinData":{},"connections":{"⚡ Error Trigger":{"main":[[{"node":"🚨 Slack - Workflow Error Alert","type":"main","index":0}]]},"⏳ Wait - 5 More Days":{"main":[[{"node":"🔍 HTTP - Final Payment Check","type":"main","index":0}]]},"🎯 HubSpot - Deal Trigger":{"main":[[{"node":"🔀 IF - Is Deal Closed Won?","type":"main","index":0}]]},"🔀 IF - Payment Received?":{"main":[[{"node":"✅ Slack - Payment Confirmed","type":"main","index":0}],[{"node":"📧 Gmail - Follow-up Email #1","type":"main","index":0}]]},"🖨️ HTTP - Generate PDF":{"main":[[{"node":"📊 Google Sheets - Log Invoice","type":"main","index":0}]]},"🔀 IF - Is Deal Closed Won?":{"main":[[{"node":"🏷️ HTTP - Get Deal Details","type":"main","index":0}]]},"🔍 HTTP - Recheck Deal Stage":{"main":[[{"node":"🔀 IF - Payment Received?","type":"main","index":0}]]},"⏳ Wait - 7 Day Payment Window":{"main":[[{"node":"🔍 HTTP - Recheck Deal Stage","type":"main","index":0}]]},"🏷️ HTTP - Get Deal Details":{"main":[[{"node":"🔗 HTTP - Get Deal Associations","type":"main","index":0}]]},"👤 HTTP - Get Contact Details":{"main":[[{"node":"📄 Code - Build Invoice + HTML","type":"main","index":0}]]},"💬 Slack - Invoice Sent Alert":{"main":[[{"node":"⏳ Wait - 7 Day Payment Window","type":"main","index":0}]]},"📧 Gmail - Follow-up Email #1":{"main":[[{"node":"⏳ Wait - 5 More Days","type":"main","index":0}]]},"📧 Gmail - Send Invoice Email":{"main":[[{"node":"💬 Slack - Invoice Sent Alert","type":"main","index":0}]]},"🔍 HTTP - Final Payment Check":{"main":[[{"node":"🔀 IF - Still Unpaid? (Escalate)","type":"main","index":0}]]},"⚙️ Code - Extract Contact ID":{"main":[[{"node":"👤 HTTP - Get Contact Details","type":"main","index":0}]]},"📄 Code - Build Invoice + HTML":{"main":[[{"node":"🖨️ HTTP - Generate PDF","type":"main","index":0}]]},"📊 Google Sheets - Log Invoice":{"main":[[{"node":"📓 Notion - Create Invoice Record","type":"main","index":0}]]},"🔗 HTTP - Get Deal Associations":{"main":[[{"node":"⚙️ Code - Extract Contact ID","type":"main","index":0}]]},"🔀 IF - Still Unpaid? (Escalate)":{"main":[[{"node":"🚨 Slack - Escalation Alert","type":"main","index":0},{"node":"📓 Notion - Flag as Overdue","type":"main","index":0}],[{"node":"✅ Slack - Late Payment Confirmed","type":"main","index":0}]]},"📓 Notion - Create Invoice Record":{"main":[[{"node":"📧 Gmail - Send Invoice Email","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":32,"nodeTypes":{"n8n-nodes-base.if":{"count":3},"n8n-nodes-base.code":{"count":2},"n8n-nodes-base.wait":{"count":2},"n8n-nodes-base.gmail":{"count":2},"n8n-nodes-base.slack":{"count":5},"n8n-nodes-base.notion":{"count":2},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.httpRequest":{"count":6},"n8n-nodes-base.errorTrigger":{"count":1},"n8n-nodes-base.googleSheets":{"count":1},"n8n-nodes-base.hubspotTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Avkash Kakdiya","username":"itechnotion","bio":"🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders.\n💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers.\n🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools.\n📬 Let’s automate what slows you down.","verified":true,"links":["https://calendly.com/itechnotion_sales/schedule-your-expert-consultation-for-automation"],"avatar":"https://gravatar.com/avatar/cd18cea4647ff1df4cb154c7d172ca67dcf656f09a3f1ffece5646296d1822d5?r=pg&d=retro&size=200"},"nodes":[{"id":12,"icon":"fa:bug","name":"n8n-nodes-base.errorTrigger","codex":{"data":{"details":"In n8n, when a workflow execution fails, it can start another workflow. This second workflow can be any arbitrary workflow on your n8n instance. Use the Error Trigger node as your Trigger in the Error workflow.","resources":{"generic":[{"url":"https://n8n.io/blog/creating-error-workflows-in-n8n/","icon":"🌪","label":"Creating Error Workflows in n8n"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.errortrigger/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"Error Trigger","color":"#0000FF"},"iconData":{"icon":"bug","type":"icon"},"displayName":"Error Trigger","typeVersion":1,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":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":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"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/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-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"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/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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"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/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"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/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"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/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/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"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-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/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"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.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":303,"icon":"file:hubspot.svg","name":"n8n-nodes-base.hubspotTrigger","codex":{"data":{"resources":{"generic":[{"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.hubspottrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/hubspot/"}]},"categories":["Sales"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"HubSpot Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjIuODgzIDY5Ljg4MyI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMi40NDIiIHk9IjIuNDQyIi8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxwYXRoIGZpbGw9IiNmODc2MWYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBkPSJNNTUuNTA0IDMwLjQwMWExNi4yNiAxNi4yNiAwIDAgMC01LjkwNC01Ljg2NGMtMS44NjUtMS4wODQtMy43OTQtMS43NzMtNS45NzItMi4wN3YtNy43OThhNS43MSA1LjcxIDAgMCAwIDMuNTI1LTUuMzU3IDUuODYgNS44NiAwIDAgMC01Ljg1OS01Ljg4OSA1LjkxIDUuOTEgMCAwIDAtNS45MDggNS44ODljMCAyLjM5MyAxLjI3IDQuNDM0IDMuNDUyIDUuMzU3djcuNzU0YTE3IDE3IDAgMCAwLTUuMTk1IDEuNjMxTDEyLjc2OSA4LjI0N2MuMTQ2LS41NTIuMjczLTEuMTIzLjI3My0xLjcyNEE2LjUyIDYuNTIgMCAwIDAgNi41MTkgMCA2LjUyIDYuNTIgMCAwIDAgMCA2LjUyNGE2LjUyMyA2LjUyMyAwIDAgMCA2LjUyNCA2LjUyNCA2LjQ3IDYuNDcgMCAwIDAgMy4zNS0uOTUybDEuMzY3IDEuMDM1IDE4LjcyNiAxMy41MDFjLS45OTEuOTA4LTEuOTE0IDEuOTQzLTIuNjUxIDMuMTA1LTEuNDk0IDIuMzY4LTIuNDA3IDQuOTcxLTIuNDA3IDcuODEzdi41ODZhMTYuNCAxNi40IDAgMCAwIDEuMDI1IDUuNjQ1QzI2LjUgNDUuMzI0IDI3LjMzIDQ2LjczIDI4LjM2MSA0OGwtNi4yMjEgNi4yMzVhNS4wMSA1LjAxIDAgMCAwLTUuMjk4IDEuMTYyYy0uOTQ3Ljk0Mi0xLjQ4IDIuMjI3LTEuNDc1IDMuNTY1cy41MjcgMi42MTIgMS40NzkgMy41NjQgMi4yMjcgMS40OCAzLjU2NSAxLjQ4YTUgNSAwIDAgMCAzLjU2NS0xLjQ4IDUuMDUgNS4wNSAwIDAgMCAxLjQ3NS0zLjU2NCA1IDUgMCAwIDAtLjIzNC0xLjUxNGw2LjQyNi02LjQyNmExNiAxNiAwIDAgMCAyLjg1NiAxLjU2MyAxNi43IDE2LjcgMCAwIDAgNi42ODUgMS40MDZoLjQzOWExNS43NiAxNS43NiAwIDAgMCA3LjYyNy0xLjkyOSAxNS43NyAxNS43NyAwIDAgMCA1Ljk3Ny01LjYzYzEuNDk5LTIuMzkzIDIuMzE5LTUuMDQ0IDIuMzE5LTcuOTU5di0uMTQ2YzAtMi44NjYtLjY2NC01LjUwOC0yLjA1MS03Ljkzem0tNy44NDcgMTMuNDg3Yy0xLjc0MyAxLjkzOC0zLjc1IDMuMTM1LTYuMDE2IDMuMTM1aC0uNDNjLTEuMjk0IDAtMi41NjQtLjM1Ni0zLjc5OS0xLjAxMWE4LjggOC44IDAgMCAxLTMuMzMtMy4wMzJjLS44OTgtMS4yNy0xLjM4Ny0yLjY1Ni0xLjM4Ny00LjEyNnYtLjQzOWMwLTEuNDQ1LjI3OC0yLjgxNy45NzctNC4xMTEuNzQ3LTEuNDY1IDEuNzU4LTIuNTE1IDMuMTAxLTMuMzg5YTcuNiA3LjYgMCAwIDEgNC4yOTctMS4yOTRoLjE0N2MxLjQxNiAwIDIuNzY5LjI3OCA0LjAzOC45MjhhOC41NiA4LjU2IDAgMCAxIDMuMTc0IDIuODg2IDkuMiA5LjIgMCAwIDEgMS40MjEgNC4wNTNsLjAzNC45MTNjMCAxLjk4Ny0uNzYyIDMuODI4LTIuMjggNS40OTh6Ii8+PC9zeW1ib2w+PC9zdmc+"},"displayName":"HubSpot Trigger","typeVersion":1,"nodeCategories":[{"id":2,"name":"Sales"}]},{"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":487,"icon":"file:notion.svg","name":"n8n-nodes-base.notion","codex":{"data":{"resources":{"generic":[{"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 "}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.notion/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/notion/"}]},"categories":["Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"Notion"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjU4Mjc2IDYuOTc2NzlDOC44MjA0NyA3Ljk4MjM4IDkuMjg0NzkgNy45MDU2NiAxMS42MDkxIDcuNzUwNTdMMzMuNTIwNiA2LjQzNDg4QzMzLjk4NTMgNi40MzQ4OCAzMy41OTg5IDUuOTcxMjcgMzMuNDQzOSA1Ljg5NDIzTDI5LjgwNDkgMy4yNjM0OEMyOS4xMDc2IDIuNzIyMTMgMjguMTc4NiAyLjEwMjE3IDI2LjM5ODIgMi4yNTcyNkw1LjE4MTE1IDMuODA0NzZDNC40MDczNiAzLjg4MTQ4IDQuMjUyODIgNC4yNjgzNyA0LjU2MDk2IDQuNTc4NDdMNy41ODI3NiA2Ljk3Njc5Wk04Ljg5ODI5IDEyLjA4MzNWMzUuMTM4MUM4Ljg5ODI5IDM2LjM3NzEgOS41MTc0NiAzNi44NDA3IDEwLjkxMSAzNi43NjRMMzQuOTkxOSAzNS4zNzA2QzM2LjM4NjIgMzUuMjkzOSAzNi41NDE1IDM0LjQ0MTcgMzYuNTQxNSAzMy40MzUyVjEwLjUzNTFDMzYuNTQxNSA5LjUzMDE5IDM2LjE1NDkgOC45ODgyOSAzNS4zMDE0IDkuMDY1NjRMMTAuMTM2NyAxMC41MzUxQzkuMjA3OTkgMTAuNjEzMSA4Ljg5ODIxIDExLjA3NzcgOC44OTgyMSAxMi4wODMzSDguODk4MjlaTTMyLjY3MDggMTMuMzJDMzIuODI1MiAxNC4wMTcgMzIuNjcwOCAxNC43MTMzIDMxLjk3MjUgMTQuNzkxN0wzMC44MTIzIDE1LjAyMjlWMzIuMDQzNEMyOS44MDQ5IDMyLjU4NDggMjguODc1OSAzMi44OTQ0IDI4LjEwMTggMzIuODk0NEMyNi44NjI1IDMyLjg5NDQgMjYuNTUyMSAzMi41MDcyIDI1LjYyMzcgMzEuMzQ3NEwxOC4wMzQzIDE5LjQzMjlWMzAuOTYwNUwyMC40MzU5IDMxLjUwMjRDMjAuNDM1OSAzMS41MDI0IDIwLjQzNTkgMzIuODk0NCAxOC40OTgzIDMyLjg5NDRMMTMuMTU2OCAzMy4yMDQyQzEzLjAwMTYgMzIuODk0NCAxMy4xNTY4IDMyLjEyMTQgMTMuNjk4NiAzMS45NjY1TDE1LjA5MjUgMzEuNTgwMlYxNi4zMzg1TDEzLjE1NzIgMTYuMTgzNEMxMy4wMDE5IDE1LjQ4NjQgMTMuMzg4NSAxNC40ODE0IDE0LjQ3MzMgMTQuNDAzNUwyMC4yMDM1IDE0LjAxNzJMMjguMTAxOCAyNi4wODY4VjE1LjQwOTdMMjYuMDg4MSAxNS4xNzg2QzI1LjkzMzUgMTQuMzI2NSAyNi41NTIxIDEzLjcwNzggMjcuMzI2NSAxMy42MzExTDMyLjY3MDggMTMuMzJaTTMuMzk5NzMgMS43MTU5OEwyNS40Njg4IDAuMDkwNzQ1N0MyOC4xNzkgLTAuMTQxNjg4IDI4Ljg3NjMgMC4wMTQwMjQ1IDMwLjU3OTYgMS4yNTEzNUwzNy42MjQzIDYuMjAyNzZDMzguNzg2NyA3LjA1NDIxIDM5LjE3NDIgNy4yODYwMiAzOS4xNzQyIDguMjE0MTlWMzUuMzcwNkMzOS4xNzQyIDM3LjA3MjYgMzguNTU0MiAzOC4wNzkxIDM2LjM4NjUgMzguMjMzMUwxMC43NTc3IDM5Ljc4MDdDOS4xMzA0OSAzOS44NTgzIDguMzU2MDcgMzkuNjI2NCA3LjUwMzkyIDM4LjU0MjZMMi4zMTYwOCAzMS44MTE3QzEuMzg2NTggMzAuNTcyNiAxIDI5LjY0NTcgMSAyOC41NjEzVjQuNDIyODNDMSAzLjAzMTA1IDEuNjIwMTkgMS44NzAwNSAzLjM5OTczIDEuNzE1OThWMS43MTU5OFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="},"displayName":"Notion","typeVersion":2,"nodeCategories":[{"id":4,"name":"Productivity"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"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/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.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"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"}]},{"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":34,"name":"Invoice Processing"}],"image":[]}}