{
  "workflow": {
    "id": 8950,
    "name": "Create Stripe invoices from Airtable orders with Google Sheets logging",
    "views": 135,
    "recentViews": 0,
    "totalViews": 135,
    "createdAt": "2025-09-26T10:11:15.412Z",
    "description": "## Description\nAutomate B2B order invoicing by fetching orders from Airtable, validating paid B2B entries, creating Stripe customers and invoices, finalizing invoices, and logging structured invoice data into Google Sheets. This workflow ensures seamless B2B billing, centralized record-keeping, and reduces manual errors in financial operations. ⚡💳📊\n\n## What This Template Does\n- Triggers hourly to check for new B2B orders. ⏱️\n- Fetches order data from Airtable (Orders table). 📥\n- Filters only paid orders with “B2B” tag. ✅\n- Creates a corresponding Stripe customer from order details. 👤\n- Processes order line items for invoicing. 📦\n- Creates a Stripe invoice with due date and payment terms. 🧾\n- Finalizes the invoice automatically. ✔️\n- Formats invoice details (totals, due dates, customer info, links). 🔄\n- Logs structured invoice data into Google Sheets for tracking. 📊\n\n## Key Benefits\n- Fully automates B2B invoicing workflow from orders to finalized invoices. 🔄\n- Ensures all invoices are linked, structured, and logged in Sheets. 🧾\n- Reduces manual effort and eliminates data entry errors. ⚡\n- Maintains centralized invoice tracking for finance teams. 📂\n- Creates a consistent billing flow integrated with Stripe. 💳\n\n## Features\n- Hourly Trigger – Continuously monitors Airtable for new/updated orders.\n- Airtable Integration – Fetches order details automatically.\n- Conditional Filter – Processes only “B2B” paid orders.\n- Stripe Customer Creation – Automatically creates customers in Stripe.\n- Line Item Processor – Handles Shopify/Order line items or test data.\n- Stripe Invoice Creation – Generates draft invoices with due dates.\n- Invoice Finalization – Auto-finalizes and prepares invoices for payment.\n- Data Formatter – Structures invoice info (totals, links, dates, status).\n- Google Sheets Integration – Logs all invoice data for reporting.\n\n## Requirements\n- n8n instance (cloud or self-hosted).\n- Airtable Personal Access Token with read access to Orders table.\n- Stripe API credentials with customer + invoice permissions.\n- Google Sheets OAuth2 credentials with read/write access.\n\n## Target Audience\n- Finance/ops teams handling B2B customer invoicing. 💼\n- SaaS or eCommerce businesses with B2B order flows. 🛍️\n- Startups needing automated billing + centralized reporting. 🚀\n- Teams tracking Stripe invoices inside Google Sheets. 📊\n\n## Step-by-Step Setup Instructions\n- Connect Airtable credentials and replace with your base/table IDs. 🔑\n- Configure Stripe API credentials for invoice + customer creation. 💳\n- Link Google Sheets credentials and update the target sheet ID. 📊\n- Adjust order filtering conditions (tags, payment status) as needed. ⚙️\n- Test with sample data to validate invoices are created + logged. ✅",
    "workflow": {
      "id": "2ko7gxYzw5Uy6lFh",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "templateCredsSetupCompleted": true
      },
      "name": "Airtable Order to Stripe Invoice (B2B/Manual Capture)",
      "tags": [],
      "nodes": [
        {
          "id": "7e7fd28b-de0f-4be1-806f-ff05fe0d383d",
          "name": "Workflow Description",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -528,
            80
          ],
          "parameters": {
            "width": 320,
            "height": 708,
            "content": "## 🚀 B2B Invoice Automation Workflow\n\nThis workflow automatically creates Stripe invoices for B2B paid orders and logs them to Google Sheets.\n\n### What it does:\n- Triggers every hour to check for new B2B orders\n- Filters for paid B2B orders only\n- Creates Stripe customers and invoices\n- Logs invoice data to Google Sheets for tracking\n\n### Requirements:\n- Airtable with Orders table\n- Stripe account with API access\n- Google Sheets for logging\n\n### Setup Instructions:\n1. Configure your Airtable credentials\n2. Set up Stripe API credentials\n3. Connect Google Sheets with proper permissions\n4. Update the record ID in \"Fetch B2B Order\" node\n5. Update Google Sheets document ID\n"
          },
          "typeVersion": 1
        },
        {
          "id": "ff6b94d0-1292-4413-a374-72c9304d2bb2",
          "name": "Schedule Setup Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -96,
            -160
          ],
          "parameters": {
            "width": 280,
            "height": 340,
            "content": "## ⏰ Schedule Setup\n\n**Purpose:** Triggers the workflow every hour to check for new orders\n\n**Configuration:**\n- Interval: 1 hour\n- Can be changed based on your needs\n\n**Tips:**\n- For testing, use manual trigger first\n- Consider timezone settings for your business hours"
          },
          "typeVersion": 1
        },
        {
          "id": "9d95e100-66c2-4bad-b3a3-9aafcdc6ea52",
          "name": "Hourly Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            80,
            208
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "field": "hours"
                }
              ]
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "1e771a28-cf1d-4f20-bb4a-5f212bc5ef81",
          "name": "Airtable Setup Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            208,
            368
          ],
          "parameters": {
            "width": 300,
            "height": 376,
            "content": "## 📋 Airtable Setup\n\n**Purpose:** Fetch order data from your Airtable\n\n**Required Steps:**\n1. Replace the hardcoded record ID with your actual record ID\n2. Update base ID and table ID to match your setup\n3. Ensure your Airtable has these fields:\n   - Customer Name\n   - Email\n   - Phone Number\n   - financial_status\n   - tags\n\n**Security:** Never commit your actual record IDs to public repos"
          },
          "typeVersion": 1
        },
        {
          "id": "fdd91819-6baa-4c0c-bf05-2ef2ae931625",
          "name": "Fetch B2B Order",
          "type": "n8n-nodes-base.airtable",
          "position": [
            288,
            208
          ],
          "parameters": {
            "id": "rec5GbGenP8Wurf4W",
            "base": {
              "__rl": true,
              "mode": "list",
              "value": "appxjEpOgye5YQG1J",
              "cachedResultUrl": "https://airtable.com/appxjEpOgye5YQG1J",
              "cachedResultName": "Lead Manager"
            },
            "table": {
              "__rl": true,
              "mode": "list",
              "value": "tbl56YM9iZKaIhAB3",
              "cachedResultUrl": "https://airtable.com/appxjEpOgye5YQG1J/tbl56YM9iZKaIhAB3",
              "cachedResultName": "Orders"
            },
            "options": {}
          },
          "credentials": {
            "airtableTokenApi": {
              "id": "credential-id",
              "name": "airtableTokenApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "87e76054-5d3e-4f98-b565-b2be586673ac",
          "name": "Order Filter Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            416,
            -176
          ],
          "parameters": {
            "width": 280,
            "height": 336,
            "content": "## 🔍 Order Filtering\n\n**Purpose:** Only process B2B orders that are already paid\n\n**Filter Conditions:**\n- financial_status = \"paid\"\n- tags contains \"B2B\"\n- Both conditions must be true (AND logic)\n\n**Customization:**\n- Modify conditions based on your order structure\n- Add additional filters if needed"
          },
          "typeVersion": 1
        },
        {
          "id": "72e1a601-e9c4-4e65-93db-f4dcb23d9530",
          "name": "Filter B2B Paid Orders",
          "type": "n8n-nodes-base.if",
          "position": [
            512,
            208
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 1,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "condition1",
                  "operator": {
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.financial_status }}",
                  "rightValue": "paid"
                },
                {
                  "id": "condition2",
                  "operator": {
                    "type": "string",
                    "operation": "contains"
                  },
                  "leftValue": "={{ $json.tags }}",
                  "rightValue": "B2B"
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "aa6e2bc9-1e47-4a4a-9236-cd2066c8b1ac",
          "name": "Stripe Customer Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            656,
            384
          ],
          "parameters": {
            "width": 300,
            "height": 452,
            "content": "## 👤 Stripe Customer Creation\n\n**Purpose:** Create or update customer in Stripe\n\n**Configuration:**\n- Maps customer data from Airtable\n- Uses continueOnFail to handle existing customers\n- Stores customer ID for invoice creation\n\n**Required Fields:**\n- Customer Name\n- Email\n- Phone Number (optional)\n\n**Note:** Stripe will return existing customer if email already exists"
          },
          "typeVersion": 1
        },
        {
          "id": "162bda8f-8ab2-467b-a856-ee7796da8e81",
          "name": "Create Stripe Customer",
          "type": "n8n-nodes-base.stripe",
          "position": [
            736,
            208
          ],
          "parameters": {
            "name": "={{ $json[\"Customer Name\"] }}",
            "resource": "customer",
            "operation": "create",
            "additionalFields": {
              "email": "={{ $json.Email }}",
              "phone": "={{ $json[\"Phone Number\"] }}"
            }
          },
          "credentials": {
            "stripeApi": {
              "id": "credential-id",
              "name": "stripeApi Credential"
            }
          },
          "typeVersion": 1,
          "continueOnFail": true
        },
        {
          "id": "bc462aa9-f034-4e7f-8a07-5668b462396a",
          "name": "Line Items Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            880,
            -208
          ],
          "parameters": {
            "width": 280,
            "height": 384,
            "content": "## 📄 Line Item Processing\n\n**Purpose:** Split orders into individual line items for invoicing\n\n**What it does:**\n- Processes each product in the order separately\n- Formats data for Stripe invoice creation\n- Handles missing data gracefully\n- Creates test data if no order items found\n\n**Output:** One item per product for detailed invoicing"
          },
          "typeVersion": 1
        },
        {
          "id": "8d23c8a5-9ca5-43ac-a69c-c0ae0e71d1f5",
          "name": "Process Line Items",
          "type": "n8n-nodes-base.code",
          "position": [
            960,
            208
          ],
          "parameters": {
            "jsCode": "// Get the current input (Stripe customer)\nconst stripeCustomer = $input.item.json;\n\n// Try to get Shopify order from various sources\nlet shopifyOrder = null;\n\n// Method 1: Try from execution data\ntry {\n  const executionData = $workflow.data;\n  console.log('Execution Data:', JSON.stringify(executionData, null, 2));\n} catch (e) {\n  console.log('Cannot access execution data');\n}\n\n// Method 2: Try from items\ntry {\n  const items = $items();\n  console.log('Items:', JSON.stringify(items, null, 2));\n  \n  // Look for Shopify order in items\n  for (const item of items) {\n    if (item.line_items) {\n      shopifyOrder = item;\n      break;\n    }\n  }\n} catch (e) {\n  console.log('Cannot access items');\n}\n\n// Method 3: Create a test line item if no Shopify data found\nif (!shopifyOrder || !shopifyOrder.line_items || shopifyOrder.line_items.length === 0) {\n  console.log('No Shopify order found, creating test data');\n  \n  // Return test data to verify the node works\n  return [\n    {\n      stripe_customer: stripeCustomer,\n      line_item: {\n        id: 'test_item_1',\n        title: 'Test Product',\n        price: '99.99',\n        quantity: 1\n      },\n      price: 99.99,\n      quantity: 1,\n      title: 'Test Product',\n      customer_id: stripeCustomer.id,\n      currency: 'USD'\n    }\n  ];\n}\n\n// If we have Shopify order, process it\nconst lineItems = shopifyOrder.line_items || [];\nconsole.log('Processing line items:', lineItems);\n\n// Return processed line items\nreturn lineItems.map((item, index) => ({\n  shopify_order: shopifyOrder,\n  stripe_customer: stripeCustomer,\n  line_item: item,\n  price: parseFloat(item.price || '0'),\n  quantity: parseInt(item.quantity || '1'),\n  title: item.title || `Item ${index + 1}`,\n  customer_id: stripeCustomer.id,\n  currency: shopifyOrder.currency || 'USD'\n}));"
          },
          "typeVersion": 2
        },
        {
          "id": "188a61b7-5c0f-4bab-a2e9-8c15ebf18d7b",
          "name": "Invoice Creation Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1136,
            384
          ],
          "parameters": {
            "width": 300,
            "height": 372,
            "content": "## 🧾 Invoice Creation\n\n**Purpose:** Create draft invoice in Stripe\n\n**Configuration:**\n- Creates invoice for the customer\n- Sets 30-day payment terms\n- Uses send_invoice collection method\n- Includes all pending invoice items\n\n**Parameters:**\n- customer: Stripe customer ID\n- currency: Order currency\n- days_until_due: 30 days\n- auto_advance: false (manual finalization)"
          },
          "typeVersion": 1
        },
        {
          "id": "8e7661ce-e5e0-4011-96ad-c63f561ddfee",
          "name": "Create Stripe Invoice",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            1184,
            208
          ],
          "parameters": {
            "url": "https://api.stripe.com/v1/invoices",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "sendHeaders": true,
            "authentication": "predefinedCredentialType",
            "bodyParameters": {
              "parameters": [
                {
                  "name": "customer",
                  "value": "={{ $json.customer_id }}"
                },
                {
                  "name": "currency",
                  "value": "={{ $json.currency }}"
                },
                {
                  "name": "auto_advance",
                  "value": "false"
                },
                {
                  "name": "collection_method",
                  "value": "send_invoice"
                },
                {
                  "name": "days_until_due",
                  "value": "30"
                },
                {
                  "name": "pending_invoice_items_behavior",
                  "value": "include"
                }
              ]
            },
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/x-www-form-urlencoded"
                }
              ]
            },
            "nodeCredentialType": "stripeApi"
          },
          "credentials": {
            "stripeApi": {
              "id": "credential-id",
              "name": "stripeApi Credential"
            }
          },
          "typeVersion": 4.1
        },
        {
          "id": "4f617671-ca7c-4da7-8d32-f15e5845431a",
          "name": "Finalization Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1312,
            -192
          ],
          "parameters": {
            "width": 280,
            "height": 384,
            "content": "## ✅ Invoice Finalization\n\n**Purpose:** Finalize the draft invoice to make it payable\n\n**What happens:**\n- Converts draft to final invoice\n- Generates invoice number\n- Makes invoice payable by customer\n- Triggers email sending (if configured)\n\n**Parameters:**\n- auto_advance: true (automatically send)\n- Invoice ID from previous step"
          },
          "typeVersion": 1
        },
        {
          "id": "fdf51683-a973-4a01-9872-3df221a34526",
          "name": "Finalize Invoice",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            1392,
            208
          ],
          "parameters": {
            "url": "=https://api.stripe.com/v1/invoices/{{ $json.id }}/finalize ",
            "method": "POST",
            "options": {},
            "sendBody": true,
            "sendHeaders": true,
            "authentication": "predefinedCredentialType",
            "bodyParameters": {
              "parameters": [
                {
                  "name": "auto_advance",
                  "value": "true"
                }
              ]
            },
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/x-www-form-urlencoded"
                }
              ]
            },
            "nodeCredentialType": "stripeApi"
          },
          "credentials": {
            "stripeApi": {
              "id": "credential-id",
              "name": "stripeApi Credential"
            }
          },
          "typeVersion": 4.1
        },
        {
          "id": "6811b3d3-4b24-4637-97be-d5d32b9576e8",
          "name": "Data Formatting Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1536,
            400
          ],
          "parameters": {
            "width": 280,
            "height": 368,
            "content": "## 📊 Data Formatting\n\n**Purpose:** Format invoice data for Google Sheets logging\n\n**Data includes:**\n- Invoice details (ID, number, status)\n- Customer information\n- Financial amounts (converted from cents)\n- Important URLs (hosted invoice, PDF)\n- Timestamps for tracking\n\n**Output:** Clean, formatted data ready for spreadsheet"
          },
          "typeVersion": 1
        },
        {
          "id": "60bf510e-5a75-4e55-af01-0ca305ddeee5",
          "name": "Format Data for Sheets",
          "type": "n8n-nodes-base.code",
          "position": [
            1584,
            208
          ],
          "parameters": {
            "jsCode": "// Get the invoice data from the HTTP response\nconst invoice = $input.item.json;\n\n// Format the data for Google Sheets\nconst formattedData = {\n  // Invoice Information\n  stripe_invoice_id: invoice.id,\n  invoice_number: invoice.number,\n  invoice_status: invoice.status,\n  \n  // Customer Information\n  customer_id: invoice.customer,\n  customer_name: invoice.customer_name,\n  customer_email: invoice.customer_email,\n  customer_phone: invoice.customer_phone,\n  \n  // Financial Information\n  currency: invoice.currency.toUpperCase(),\n  amount_due: (invoice.amount_due / 100).toFixed(2), // Convert from cents to dollars\n  amount_paid: (invoice.amount_paid / 100).toFixed(2),\n  amount_remaining: (invoice.amount_remaining / 100).toFixed(2),\n  subtotal: (invoice.subtotal / 100).toFixed(2),\n  total: (invoice.total / 100).toFixed(2),\n  \n  // Invoice URLs\n  hosted_invoice_url: invoice.hosted_invoice_url,\n  invoice_pdf: invoice.invoice_pdf,\n  \n  // Dates (converted to readable format)\n  created_date: new Date(invoice.created * 1000).toISOString(),\n  due_date: invoice.due_date ? new Date(invoice.due_date * 1000).toISOString() : null,\n  finalized_at: invoice.status_transitions.finalized_at ? new Date(invoice.status_transitions.finalized_at * 1000).toISOString() : null,\n  paid_at: invoice.status_transitions.paid_at ? new Date(invoice.status_transitions.paid_at * 1000).toISOString() : null,\n  \n  // Additional Information\n  collection_method: invoice.collection_method,\n  billing_reason: invoice.billing_reason,\n  line_items_count: invoice.lines.total_count,\n  \n  // Timestamp for when this record was processed\n  processed_timestamp: new Date().toISOString(),\n  \n  // Original Shopify Order Reference (if available from previous nodes)\n  shopify_order_id: null // This will be populated if you have Shopify data in workflow\n};\n\n// Try to get Shopify order ID from previous nodes if available\ntry {\n  const shopifyData = $('Process Line Items').item.json.shopify_order;\n  if (shopifyData && shopifyData.id) {\n    formattedData.shopify_order_id = shopifyData.id;\n  }\n} catch (e) {\n  console.log('No Shopify order data found');\n}\n\n// Log the formatted data for debugging\nconsole.log('Formatted data for Google Sheets:', formattedData);\n\nreturn formattedData;"
          },
          "typeVersion": 2
        },
        {
          "id": "57fcfb57-b703-4f89-baa9-d784b1f3dd48",
          "name": "Sheets Logging Guide",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1760,
            -304
          ],
          "parameters": {
            "width": 300,
            "height": 488,
            "content": "## 📋 Google Sheets Logging\n\n**Purpose:** Log invoice data to spreadsheet for tracking\n\n**Setup Required:**\n1. Replace YOUR_SPREADSHEET_ID with your actual Google Sheets ID\n2. Ensure proper column headers in your sheet\n3. Grant n8n access to your Google account\n\n**Logged Data:**\n- Invoice details, customer info, financial amounts\n- URLs for invoice access\n- Timestamps for tracking\n\n**Security:** Never commit your actual spreadsheet ID to public repos"
          },
          "typeVersion": 1
        },
        {
          "id": "c36e89ac-03af-42c7-9c0e-6ca4c1780171",
          "name": "Log to Google Sheets",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1792,
            208
          ],
          "parameters": {
            "columns": {
              "value": {},
              "schema": [
                {
                  "id": "stripe_invoice_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "stripe_invoice_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "invoice_number",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "invoice_number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "invoice_status",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "invoice_status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "customer_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "customer_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "customer_name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "customer_name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "customer_email",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "customer_email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "customer_phone",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "customer_phone",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "currency",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "currency",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "amount_due",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "amount_due",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "amount_paid",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "amount_paid",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "amount_remaining",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "amount_remaining",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "subtotal",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "subtotal",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "total",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "total",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "hosted_invoice_url",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "hosted_invoice_url",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "invoice_pdf",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "invoice_pdf",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "created_date",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "created_date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "due_date",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "due_date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "finalized_at",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "finalized_at",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "paid_at",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "paid_at",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "collection_method",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "collection_method",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "billing_reason",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "billing_reason",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "line_items_count",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "line_items_count",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "processed_timestamp",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "processed_timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "shopify_order_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "shopify_order_id",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "autoMapInputData",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uc9oXoocsPsu5X0oDx6Q552389F28K8X_Yp75tAvhaU/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1Uc9oXoocsPsu5X0oDx6Q552389F28K8X_Yp75tAvhaU",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uc9oXoocsPsu5X0oDx6Q552389F28K8X_Yp75tAvhaU/edit?usp=drivesdk",
              "cachedResultName": "Orders Invoices Data"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "9cba8243-00ab-42f0-a229-fcf7e559a4b3",
      "connections": {
        "Hourly Trigger": {
          "main": [
            [
              {
                "node": "Fetch B2B Order",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch B2B Order": {
          "main": [
            [
              {
                "node": "Filter B2B Paid Orders",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Finalize Invoice": {
          "main": [
            [
              {
                "node": "Format Data for Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Process Line Items": {
          "main": [
            [
              {
                "node": "Create Stripe Invoice",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Create Stripe Invoice": {
          "main": [
            [
              {
                "node": "Finalize Invoice",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Create Stripe Customer": {
          "main": [
            [
              {
                "node": "Process Line Items",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Filter B2B Paid Orders": {
          "main": [
            [
              {
                "node": "Create Stripe Customer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Data for Sheets": {
          "main": [
            [
              {
                "node": "Log to Google Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 19,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.stripe": {
          "count": 1
        },
        "n8n-nodes-base.airtable": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 10
        },
        "n8n-nodes-base.httpRequest": {
          "count": 2
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Rahul Joshi",
      "username": "rahul08",
      "bio": "Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/callrahul/"
      ],
      "avatar": "https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 2,
        "icon": "file:airtable.svg",
        "name": "n8n-nodes-base.airtable",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/",
                  "icon": "🎯",
                  "label": "2021 Goals: Level Up Your Vocabulary With Vonage and n8n"
                },
                {
                  "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-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/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/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "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/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/sending-sms-the-low-code-way-with-airtable-twilio-programmable-sms-and-n8n/",
                  "icon": "📱",
                  "label": "Sending SMS the Low-Code Way with Airtable, Twilio Programmable SMS, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automating-conference-organization-processes-with-n8n/",
                  "icon": "🙋‍♀️",
                  "label": "Automating Conference Organization Processes with n8n"
                },
                {
                  "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/app-nodes/n8n-nodes-base.airtable/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/airtable/"
                }
              ]
            },
            "categories": [
              "Data & Storage"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Airtable"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTcwIj48cGF0aCBmaWxsPSIjZmNiNDAwIiBkPSJNODkgNC44IDE2LjIgMzQuOWMtNC4xIDEuNy00IDcuNC4xIDkuMWw3My4yIDI5YzYuNCAyLjYgMTMuNiAyLjYgMjAgMGw3My4yLTI5YzQuMS0xLjYgNC4xLTcuNC4xLTkuMWwtNzMtMzAuMUMxMDMuMiAyIDk1LjcgMiA4OSA0LjgiLz48cGF0aCBmaWxsPSIjMThiZmZmIiBkPSJNMTA1LjkgODguOXY3Mi41YzAgMy40IDMuNSA1LjggNi43IDQuNWw4MS42LTMxLjdjMS45LS43IDMuMS0yLjUgMy4xLTQuNVY1Ny4yYzAtMy40LTMuNS01LjgtNi43LTQuNUwxMDkgODQuM2MtMS45LjgtMy4xIDIuNi0zLjEgNC42Ii8+PHBhdGggZmlsbD0iI2Y4MmI2MCIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctMi41IDEuMkw5LjEgMTMwYy0zLjIgMS42LTcuNC0uOC03LjQtNC40VjU3LjVjMC0xLjMuNy0yLjQgMS42LTMuM3EuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNSA0LjMgNy4xLjUgOC45Ii8+PHBhdGggZmlsbD0iI2JhMWU0NSIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctNTkuNC01MHEuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNCA0LjMgNyAuNSA4LjgiLz48L3N2Zz4="
        },
        "displayName": "Airtable",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          }
        ]
      },
      {
        "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": 499,
        "icon": "file:stripe.svg",
        "name": "n8n-nodes-base.stripe",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.stripe/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/stripe/"
                }
              ]
            },
            "categories": [
              "Finance & Accounting",
              "Sales"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Stripe"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjU0IC04MCAzNjAgMzYwIj48cGF0aCBkPSJNNDE0IDExMy40YzAtMjUuNi0xMi40LTQ1LjgtMzYuMS00NS44LTIzLjggMC0zOC4yIDIwLjItMzguMiA0NS42IDAgMzAuMSAxNyA0NS4zIDQxLjQgNDUuMyAxMS45IDAgMjAuOS0yLjcgMjcuNy02LjV2LTIwYy02LjggMy40LTE0LjYgNS41LTI0LjUgNS41LTkuNyAwLTE4LjMtMy40LTE5LjQtMTUuMmg0OC45YzAtMS4zLjItNi41LjItOC45bS00OS40LTkuNWMwLTExLjMgNi45LTE2IDEzLjItMTYgNi4xIDAgMTIuNiA0LjcgMTIuNiAxNnptLTYzLjUtMzYuM2MtOS44IDAtMTYuMSA0LjYtMTkuNiA3LjhsLTEuMy02LjJoLTIydjExNi42bDI1LTUuMy4xLTI4LjNjMy42IDIuNiA4LjkgNi4zIDE3LjcgNi4zIDE3LjkgMCAzNC4yLTE0LjQgMzQuMi00Ni4xLS4xLTI5LTE2LjYtNDQuOC0zNC4xLTQ0LjhtLTYgNjguOWMtNS45IDAtOS40LTIuMS0xMS44LTQuN2wtLjEtMzcuMWMyLjYtMi45IDYuMi00LjkgMTEuOS00LjkgOS4xIDAgMTUuNCAxMC4yIDE1LjQgMjMuMyAwIDEzLjQtNi4yIDIzLjQtMTUuNCAyMy40bS03MS4zLTc0LjggMjUuMS01LjRWMzZsLTI1LjEgNS4zem0wIDcuNmgyNS4xdjg3LjVoLTI1LjF6bS0yNi45IDcuNC0xLjYtNy40aC0yMS42djg3LjVoMjVWOTcuNWM1LjktNy43IDE1LjktNi4zIDE5LTUuMnYtMjNjLTMuMi0xLjItMTQuOS0zLjQtMjAuOCA3LjRtLTUwLTI5LjEtMjQuNCA1LjItLjEgODAuMWMwIDE0LjggMTEuMSAyNS43IDI1LjkgMjUuNyA4LjIgMCAxNC4yLTEuNSAxNy41LTMuM1YxMzVjLTMuMiAxLjMtMTkgNS45LTE5LTguOVY5MC42aDE5VjY5LjNoLTE5ek03OS4zIDk0LjdjMC0zLjkgMy4yLTUuNCA4LjUtNS40IDcuNiAwIDE3LjIgMi4zIDI0LjggNi40VjcyLjJjLTguMy0zLjMtMTYuNS00LjYtMjQuOC00LjZDNjcuNSA2Ny42IDU0IDc4LjIgNTQgOTUuOWMwIDI3LjYgMzggMjMuMiAzOCAzNS4xIDAgNC42LTQgNi4xLTkuNiA2LjEtOC4zIDAtMTguOS0zLjQtMjcuMy04djIzLjhjOS4zIDQgMTguNyA1LjcgMjcuMyA1LjcgMjAuOCAwIDM1LjEtMTAuMyAzNS4xLTI4LjItLjEtMjkuOC0zOC4yLTI0LjUtMzguMi0zNS43IiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojNjM1YmZmIi8+PC9zdmc+"
        },
        "displayName": "Stripe",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 2,
            "name": "Sales"
          },
          {
            "id": 8,
            "name": "Finance & Accounting"
          }
        ]
      },
      {
        "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"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 34,
        "name": "Invoice Processing"
      }
    ],
    "image": []
  }
}