{
  "workflow": {
    "id": 9600,
    "name": "Automated multi-tier expense approval & reimbursement with Jotform.",
    "views": 91,
    "recentViews": 0,
    "totalViews": 91,
    "createdAt": "2025-10-14T06:48:27.518Z",
    "description": "Eliminate weeks of waiting and mountains of paperwork with intelligent expense automation that processes reimbursements in 72 hours instead of 2–3 weeks — delivering 90% reduction in manual processing time.\n\n## What This Workflow Does\n\nTransforms your expense reimbursement process from bureaucratic nightmare to seamless automation:\n\n📝 Captures Expenses – Jotform intake with receipt upload and expense details\n\n⚙️ Policy Validation – Automatically validates against company rules (categories, amount limits)\n\n🚦 Smart Routing – Intelligent approval workflow based on expense amount:\n\n&lt; $100 → Auto-approve instantly (compliant expenses only)\n\n$100–$500 → Manager approval via Slack notification\n\n$500+ → Finance Director approval via Slack notification\n\n🚫 Violation Detection – Flags policy violations with clear rejection reasons\n\n📊 Audit Trail – Complete expense history logged to Google Sheets\n\n✉️ Automated Communication – Professional approval/rejection emails automatically sent\n\n## Key Features\n\n1. Policy Compliance Engine – Configurable rules for expense categories and amount limits\n\n2. Three-Tier Approval System – Auto-approve, manager review, and director approval paths\n\n3. Real-Time Violation Flagging – Instant detection of non-compliant expenses\n\n4. Comprehensive Audit Logging – Every expense tracked with timestamps and approver details\n\n5. Professional Email Templates – Branded communication for every outcome\n\n6. Slack Integration – Real-time notifications with expense context for quick decisions\n\n7. Zero Manual Processing – Seamless automation from submission to reimbursement\n\n## Perfect For\n\n1. Finance Teams – Processing 50–200+ expense reports monthly\n\n2. Growing Startups – Scaling operations without adding finance headcount\n\n3. Remote-First Companies – Distributed teams needing async approval workflows\n\n4. Compliance-Focused Organizations – Requiring complete audit trails and policy enforcement\n\n5. SMBs & Enterprises – Companies spending 10–20 hours/week on manual expense processing\n\n## What You’ll Need\n### Required Integrations\n\n1. Jotform – Expense submission form (free tier works)\n\n2. Create your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade)\n\n3. Google Sheets – Audit trail and expense database\n\n4. Gmail – Automated approval/rejection email communication\n\n5. Slack – Manager and Director approval notifications\n\n### Optional Enhancements\n\n1. QuickBooks/Xero – Automatic expense posting for approved items\n\n2. Google Cloud Vision – OCR for automatic receipt data extraction\n\n3. OpenAI – AI-powered receipt parsing and merchant detection\n\n4. Payment APIs – Direct deposit or check issuance automation\n\n## Quick Start\n\n1. Import Template – Copy JSON and import into n8n\n\n2. Create Jotform – Build form with fields:\n\n3. Employee name, email, ID, amount, category, merchant, date, description, receipt upload\n\n4. Add Credentials – Jotform, Google Sheets, Gmail, Slack\n\n5. Configure Google Sheet – Replace YOUR_GOOGLE_SHEET_ID with your spreadsheet ID\n\n6. Set Slack Channels – Update manager and director channel IDs in Slack nodes\n\n7. Customize Policies – Edit “Validate Policy” node with your company’s rules:\n\n8. Category limits (meals: $75, travel: $500, office supplies: $200, etc.)\n\n9. Auto-approve threshold (default: $100)\n\n10. Manager approval threshold (default: $500)\n\n11. Test Workflow – Submit test expenses for all scenarios (auto-approve, manager, director, rejection)\n\n12. Deploy & Share – Activate workflow and distribute Jotform link to employees\n\n## Customization Options\n\n1.Adjust Approval Thresholds – Modify auto-approve limits and escalation amounts\n\n2.Add Approval Levels – Insert additional routing nodes for VP or C-suite approvals\n\n3.Department-Based Routing – Route to different managers based on department\n\n4.Receipt OCR Integration – Add Google Vision + OpenAI for receipt data extraction\n\n5.Accounting System Sync – Connect QuickBooks/Xero for automatic expense posting\n\n6.Duplicate Detection – Flag potential duplicate submissions\n\n7.Budget Monitoring – Add monthly/quarterly budget checks\n\n8.Multi-Currency Support – Add conversion & validation for international expenses\n\n9.Mobile-Optimized Forms – Enhance Jotform for easy phone camera uploads\n\n10.Custom Email Branding – Update templates with your company’s logo and styling\n\n## Expected Results\n\n⏱️ 72-hour reimbursement vs 2–3 weeks\n\n📉 90% reduction in manual processing time\n\n🧾 100% audit compliance with timestamps & approvers\n\n🗂️ Zero lost receipts – all stored digitally\n\n🧠 Instant policy enforcement – violations caught automatically\n\n😀 Happier employees – fast and transparent reimbursement\n\n🕒 10–15 hours saved weekly for finance teams\n\n🏆 Use Cases\n🧑‍💻 Technology Companies\n\nProcess developer or engineering expenses (software, conferences) with auto-approval under $100.\n\n💼 Sales Organizations\n\nHandle high-volume travel expenses — auto-approve meals under $75, route hotels/flights for approval, flag entertainment violations.\n\n🧾 Consulting Firms\n\nManage client reimbursables with project-based routing and full audit trails for client invoicing.\n\n🏥 Healthcare Organizations\n\nTrack medical reimbursements with department-specific approvals and compliance documentation.\n\n🌍 Remote-First Teams\n\nProcess global expenses 24/7 with async Slack approvals and instant notifications.\n\n## Pro Tips\n\n1. Start Conservative – Begin with $50 auto-approve limit, raise later\n\n2. Monthly Policy Reviews – Adjust limits based on expense trends\n\n3. Employee Training – Include policy link in all automated emails\n\n4. Enhanced Slack Approvals – Use Block Kit for approve/reject buttons\n\n5. Receipt Quality Standards – Enforce minimum image resolution\n\n6. Backup Approvers – Add fallback if manager unavailable\n\n7. Executive Dashboard – Connect Sheets → Looker/Tableau\n\n8. Tax Categorization – Align with tax reporting for year-end\n\n9. Benchmark Data – Track average processing time & approval rates\n\n## Learning Resources\n\nThis workflow demonstrates:\n\n1. Multi-condition routing with nested IF nodes\n\n2. Policy enforcement using JavaScript logic\n\n3. Audit logging with Google Sheets append/update\n\n4. Async Slack approvals with messaging nodes\n\n5. Email automation using dynamic HTML templates\n\n6. Data normalization for varied Jotform inputs\n\n7. Error handling for invalid submissions\n\n8. Perfect for learning enterprise-grade n8n automation patterns 🎯\n\n## Workflow Structure Visualization\n📝 Jotform Submission\n    ↓\n🧾 Parse Form Data (Normalize fields)\n    ↓\n⚙️ Validate Against Policy (Check rules)\n    ↓\n🚫 Check Violations?\n    ├─ YES → Set Rejection → Log to Sheets → 📧 Send Rejection Email\n    └─ NO → Route Auto-Approve?\n            ├─ YES (&lt; $100) → ✅ Auto Approve → Log to Sheets → 📧 Send Approval Email\n            └─ NO → Route Manager?\n                    ├─ YES ($100-$500) → 📱 Slack Manager → Log to Sheets → ⏳ Await Approval\n                    └─ NO ($500+) → 📱 Slack Director → Log to Sheets → ⏳ Await Approval\n\n### Compliance & Security Features\n\n🧾 Complete Audit Trail – Every expense logged with timestamps\n\n🛡️ Policy Enforcement – Non-compliant submissions blocked early\n\n🔒 Data Privacy – PII secured via n8n credential system\n\n☁️ Receipt Storage – SOC 2–compliant Jotform cloud\n\n👥 Role-Based Access – Slack channel permissions enforced\n\n⚖️ Separation of Duties – Multi-level approval reduces fraud\n\n🚀 Advanced Features to Add\n\n🧠 Receipt OCR with AI – Google Vision + OpenAI for merchant/amount extraction\n\n💵 Accounting Integration – QuickBooks/Xero for GL posting\n\n🏦 Payment Automation – ACH/direct deposit API integration\n\n📱 Mobile App Interface – On-the-go submissions\n\n📈 Budget Monitoring – Real-time spending alerts\n\n📊 Expense Analytics – Automated monthly summaries\n\n🧾 Vendor Management – Flag new vendors for approval\n\n🚗 Mileage Calculator – IRS-compliant reimbursement\n\n💳 Corporate Card Sync – Match credit card transactions\n\n🌐 Per Diem Automation – Geo-based per diem calculation\n\n## Ready to Transform Your Expense Process?\n\nImport this template and start processing reimbursements in hours instead of weeks.\nYour finance team and employees will thank you! 🎉\n\nQuestions or customization needs?\nThe workflow includes detailed sticky notes explaining each section and decision point.",
    "workflow": {
      "meta": {
        "instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8",
        "templateCredsSetupCompleted": true
      },
      "nodes": [
        {
          "id": "0798c2b1-7ed5-45ce-a26c-2e8f7ada6a43",
          "name": "Parse Form Data",
          "type": "n8n-nodes-base.code",
          "position": [
            -864,
            -16
          ],
          "parameters": {
            "jsCode": "// Parse form data and prepare for processing\nconst formData = $input.first().json;\n\nreturn {\n  json: {\n    submissionId: formData.submissionID || Date.now().toString(),\n    employeeName: formData.employeeName || formData.q3_employeeName,\n    employeeEmail: formData.employeeEmail || formData.q4_employeeEmail,\n    employeeId: formData.employeeId || formData.q5_employeeId,\n    amount: parseFloat(formData.amount || formData.q6_amount),\n    category: formData.category || formData.q7_category,\n    merchant: formData.merchant || formData.q8_merchant,\n    date: formData.date || formData.q9_date,\n    description: formData.description || formData.q10_description,\n    receiptUrl: formData.receiptUrl || formData.q11_receipt,\n    submittedAt: new Date().toISOString()\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "df2085e9-dc08-4f25-a99e-009e2340b47c",
          "name": "Validate Policy",
          "type": "n8n-nodes-base.code",
          "position": [
            -672,
            -16
          ],
          "parameters": {
            "jsCode": "// Company policy rules and validation\nconst data = $input.first().json;\n\nconst policy = {\n  maxAmounts: {\n    meals: 75,\n    travel: 500,\n    office_supplies: 200,\n    software: 1000,\n    entertainment: 150,\n    other: 100\n  },\n  approvedCategories: ['meals', 'travel', 'office_supplies', 'software', 'entertainment'],\n  autoApproveThreshold: 100,\n  managerApprovalThreshold: 500\n};\n\nconst amount = data.amount;\nconst category = data.category;\n\nlet policyViolations = [];\nlet requiresApproval = 'auto';\n\nif (!policy.approvedCategories.includes(category)) {\n  policyViolations.push('Category not approved');\n}\n\nif (policy.maxAmounts[category] && amount > policy.maxAmounts[category]) {\n  policyViolations.push('Amount exceeds category limit');\n}\n\nif (amount < policy.autoApproveThreshold && policyViolations.length === 0) {\n  requiresApproval = 'auto';\n} else if (amount >= policy.autoApproveThreshold && amount < policy.managerApprovalThreshold) {\n  requiresApproval = 'manager';\n} else if (amount >= policy.managerApprovalThreshold) {\n  requiresApproval = 'director';\n}\n\nreturn {\n  json: {\n    ...data,\n    policyViolations: policyViolations,\n    isCompliant: policyViolations.length === 0,\n    requiresApproval: requiresApproval,\n    status: 'pending'\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "4ac52b34-7a64-49f5-b368-43d8b99bcab3",
          "name": "Check Violations",
          "type": "n8n-nodes-base.if",
          "position": [
            -464,
            -16
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 1,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "condition1",
                  "operator": {
                    "type": "number",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.policyViolations.length }}",
                  "rightValue": 0
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "9d132c2f-7f99-4b36-b543-27131702460c",
          "name": "Set Rejection",
          "type": "n8n-nodes-base.set",
          "position": [
            -272,
            144
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "status",
                  "name": "status",
                  "type": "string",
                  "value": "rejected"
                },
                {
                  "id": "rejectionReason",
                  "name": "rejectionReason",
                  "type": "string",
                  "value": "=Policy violations: {{ $json.policyViolations.join(', ') }}"
                }
              ]
            }
          },
          "typeVersion": 3.3
        },
        {
          "id": "47566677-5342-4b26-9974-793526a59bd9",
          "name": "Route Auto",
          "type": "n8n-nodes-base.if",
          "position": [
            -272,
            -176
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "condition1",
                  "operator": {
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.requiresApproval }}",
                  "rightValue": "auto"
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "c0b971bc-a5ce-48b6-978c-54ae02112505",
          "name": "Auto Approve",
          "type": "n8n-nodes-base.set",
          "position": [
            -64,
            -272
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "status",
                  "name": "status",
                  "type": "string",
                  "value": "approved"
                },
                {
                  "id": "approvedBy",
                  "name": "approvedBy",
                  "type": "string",
                  "value": "System (Auto-Approved)"
                },
                {
                  "id": "approvedAt",
                  "name": "approvedAt",
                  "type": "string",
                  "value": "={{ new Date().toISOString() }}"
                }
              ]
            }
          },
          "typeVersion": 3.3
        },
        {
          "id": "eef387ab-bee8-4570-8cca-26ccbd30abeb",
          "name": "Route Manager",
          "type": "n8n-nodes-base.if",
          "position": [
            -64,
            -80
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "condition1",
                  "operator": {
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.requiresApproval }}",
                  "rightValue": "manager"
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "74152681-2cf6-4e76-aabb-87ae00a86048",
          "name": "Slack Manager",
          "type": "n8n-nodes-base.slack",
          "position": [
            144,
            -224
          ],
          "webhookId": "61c90b37-cd59-4332-b0c6-0f8f15004d43",
          "parameters": {
            "text": "=New Expense Approval Required\nEmployee: {{ $json.employeeName }}\nAmount: ${{ $json.amount }}\nCategory: {{ $json.category }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C01234567"
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "e05fba8b-60e5-4438-9f7a-cd828bace8b8",
          "name": "Slack Director",
          "type": "n8n-nodes-base.slack",
          "position": [
            144,
            -16
          ],
          "webhookId": "eba016eb-5ad8-4d29-822e-9038e73a0733",
          "parameters": {
            "text": "=High-Value Expense - Director Approval\nEmployee: {{ $json.employeeName }}\nAmount: ${{ $json.amount }}\nCategory: {{ $json.category }}",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "C98765432"
            },
            "otherOptions": {}
          },
          "credentials": {
            "slackApi": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "b7a58104-fc21-485a-8c93-edb1dc253b2b",
          "name": "Log to Sheets",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            336,
            -64
          ],
          "parameters": {
            "columns": {
              "value": {},
              "schema": [],
              "mappingMode": "autoMapInputData",
              "matchingColumns": [
                "submissionId"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "YOUR_GOOGLE_SHEET_ID"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.4
        },
        {
          "id": "1af29bbe-b3ee-42ee-91a9-388b70659c48",
          "name": "Is Approved",
          "type": "n8n-nodes-base.if",
          "position": [
            544,
            -64
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "condition1",
                  "operator": {
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.status }}",
                  "rightValue": "approved"
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "0e8c5d12-fee3-4c7d-bc16-77a79e39befe",
          "name": "Rejection Email",
          "type": "n8n-nodes-base.gmail",
          "position": [
            752,
            0
          ],
          "webhookId": "fe2cb3ee-3c0f-4429-ac5c-9482a923f808",
          "parameters": {
            "sendTo": "={{ $json.employeeEmail }}",
            "message": "=Hi, Your expense for {{ $json.amount}} has been rejected as it did not matches with the company's validation policy.",
            "options": {},
            "subject": "=Expense Rejected - ${{ $json.amount }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "1b5d88c6-fe8f-4984-9e9e-19789ba76c60",
          "name": "Approved",
          "type": "n8n-nodes-base.gmail",
          "position": [
            752,
            -192
          ],
          "webhookId": "fe2cb3ee-3c0f-4429-ac5c-9482a923f808",
          "parameters": {
            "sendTo": "={{ $json.employeeEmail }}",
            "message": "Hi, Your expense for {{ $json.Amount }} has been approved",
            "options": {},
            "subject": "=Expense Approved - ${{ $json.amount }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "6382a19b-08de-4466-9013-696d5ffac4db",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1200,
            -208
          ],
          "parameters": {
            "height": 432,
            "content": "📩 Trigger: New Expense Submission\nCaptures employee expense details \nand receipt upload from Jotform.\nCreate your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade) \n"
          },
          "typeVersion": 1
        },
        {
          "id": "5b890f09-277e-41e6-9628-dd6907b14e5f",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -912,
            -160
          ],
          "parameters": {
            "width": 192,
            "content": "🧾 Parse & Normalize Data\nExtracts key fields (name, email, amount, \ncategory, merchant, receipt URL) \nfor further processing.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "fe3ea799-b6f3-48f4-bbc4-96623e1e8256",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -720,
            112
          ],
          "parameters": {
            "width": 208,
            "height": 192,
            "content": "⚙️ Policy Validation\nChecks compliance against company rules:\n- Allowed categories\n- Max amount limits\n- Auto/Manager/Director approval routing\n"
          },
          "typeVersion": 1
        },
        {
          "id": "11112b1f-af67-4c7c-86cc-b4ccfe83a249",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -512,
            -160
          ],
          "parameters": {
            "width": 176,
            "content": "🚫 Compliance Check\nIf violations exist → reject\nElse → continue for approval routing\n"
          },
          "typeVersion": 1
        },
        {
          "id": "054e826f-590f-4de0-8ccd-d299d2f6e044",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -288,
            -368
          ],
          "parameters": {
            "width": 576,
            "height": 496,
            "content": "⚡ Routing Decision\nDetermines if expense should be:\n- Auto-approved\n- Sent for manager approval\n- Sent for director approval\n"
          },
          "typeVersion": 1
        },
        {
          "id": "6ebce30b-f8d7-4bf2-bdf3-6f33b8363a55",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            320,
            -224
          ],
          "parameters": {
            "width": 208,
            "height": 384,
            "content": "📊 Audit Logging\nAppends expense status, \napprover details, and decision \nto Google Sheets for tracking.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "f5e44753-7705-41e1-bdac-0158deea26ab",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            544,
            -384
          ],
          "parameters": {
            "width": 384,
            "height": 576,
            "content": "🔍 Approval Check\nBranches workflow to send \napproval or rejection emails \nbased on final status.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "2eb6d9f2-7f9d-453f-a548-cf2660f7248c",
          "name": "Jotform Trigger",
          "type": "n8n-nodes-base.jotFormTrigger",
          "position": [
            -1120,
            -16
          ],
          "webhookId": "expense-submission",
          "parameters": {
            "form": "252860582136459"
          },
          "credentials": {
            "jotFormApi": {
              "id": "credential-id",
              "name": "jotFormApi Credential"
            }
          },
          "typeVersion": 1
        }
      ],
      "pinData": {},
      "connections": {
        "Route Auto": {
          "main": [
            [
              {
                "node": "Auto Approve",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Route Manager",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Is Approved": {
          "main": [
            [
              {
                "node": "Approved",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Rejection Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Auto Approve": {
          "main": [
            [
              {
                "node": "Log to Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Log to Sheets": {
          "main": [
            [
              {
                "node": "Is Approved",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Route Manager": {
          "main": [
            [
              {
                "node": "Slack Manager",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Slack Director",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Set Rejection": {
          "main": [
            [
              {
                "node": "Log to Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Slack Manager": {
          "main": [
            [
              {
                "node": "Log to Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Slack Director": {
          "main": [
            [
              {
                "node": "Log to Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Jotform Trigger": {
          "main": [
            [
              {
                "node": "Parse Form Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Parse Form Data": {
          "main": [
            [
              {
                "node": "Validate Policy",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Validate Policy": {
          "main": [
            [
              {
                "node": "Check Violations",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Check Violations": {
          "main": [
            [
              {
                "node": "Route Auto",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Set Rejection",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 21,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 4
        },
        "n8n-nodes-base.set": {
          "count": 2
        },
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.gmail": {
          "count": 2
        },
        "n8n-nodes-base.slack": {
          "count": 2
        },
        "n8n-nodes-base.stickyNote": {
          "count": 7
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-base.jotFormTrigger": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Jitesh Dugar",
      "username": "jiteshdugar",
      "bio": "AI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/jiteshdugar"
      ],
      "avatar": "https://gravatar.com/avatar/edaa3abb99806b0586dced559d0a5417f24a507e7c4464a63960f0638a4b1b90?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 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": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 227,
        "icon": "file:jotform.svg",
        "name": "n8n-nodes-base.jotFormTrigger",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.jotformtrigger/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/jotform/"
                }
              ]
            },
            "categories": [
              "Communication"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Jotform Trigger"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNSAyOCI+PHBhdGggaWQ9ImpvdGZvcm0tbG9nb21hcmstZmlyc3QiIGZpbGw9IiNGRjYxMDAiIGQ9Ik0xOS4yOTQgMy45MzRhMy4zNDEgMy4zNDEgMCAwIDEgNC43MjcgMCAzLjM0NCAzLjM0NCAwIDAgMSAwIDQuNzI4bC0xMS44MTcgMTEuODJhMy4zNDEgMy4zNDEgMCAwIDEtNC43MjYgMCAzLjM0NCAzLjM0NCAwIDAgMSAwLTQuNzI3bDExLjgxNi0xMS44MloiPjwvcGF0aD48cGF0aCBpZD0iam90Zm9ybS1sb2dvbWFyay1zZWNvbmQiIGZpbGw9IiMwMDk5RkYiIGQ9Ik05LjI1Ljk4YTMuMzQ0IDMuMzQ0IDAgMCAxIDQuNzI3IDQuNzI4bC04LjI3MSA4LjI3NGEzLjM0MiAzLjM0MiAwIDAgMS00LjcyNyAwIDMuMzQ0IDMuMzQ0IDAgMCAxIDAtNC43MjlMOS4yNS45OFoiPjwvcGF0aD48cGF0aCBpZD0iam90Zm9ybS1sb2dvbWFyay10aGlyZCIgZmlsbD0iI0ZGQjYyOSIgZD0iTTE4LjcwNCAxNy41MjdhMy4zNDQgMy4zNDQgMCAwIDEgNC43MjYgNC43MjhsLTQuNzI2IDQuNzI5YTMuMzQyIDMuMzQyIDAgMSAxLTQuNzI3LTQuNzI4bDQuNzI3LTQuNzI5WiI+PC9wYXRoPjxwYXRoIGlkPSJqb3Rmb3JtLWxvZ29tYXJrLWZvdXJ0aCIgZmlsbD0iIzBBMTU1MSIgZD0iTTEuNjcxIDI4aDQuNjY3Yy43NDUgMCAxLjExOC0uOS41OTEtMS40MjdMMS40MjYgMjEuMDdDLjkgMjAuNTQyIDAgMjAuOTE1IDAgMjEuNjU5djQuNjdDMCAyNy4yNTEuNzQ4IDI4IDEuNjcxIDI4WiI+PC9wYXRoPjwvc3ZnPg=="
        },
        "displayName": "Jotform Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 17,
        "name": "HR"
      }
    ],
    "image": []
  }
}