{
  "name": "Automated multi-tier expense approval & reimbursement with Jotform.",
  "nodes": [
    {
      "id": "0798c2b1-7ed5-45ce-a26c-2e8f7ada6a43",
      "name": "Parse Form Data",
      "type": "n8n-nodes-base.code",
      "position": [
        -864,
        -16
      ]
    },
    {
      "id": "df2085e9-dc08-4f25-a99e-009e2340b47c",
      "name": "Validate Policy",
      "type": "n8n-nodes-base.code",
      "position": [
        -672,
        -16
      ]
    },
    {
      "id": "4ac52b34-7a64-49f5-b368-43d8b99bcab3",
      "name": "Check Violations",
      "type": "n8n-nodes-base.if",
      "position": [
        -464,
        -16
      ]
    },
    {
      "id": "9d132c2f-7f99-4b36-b543-27131702460c",
      "name": "Set Rejection",
      "type": "n8n-nodes-base.set",
      "position": [
        -272,
        144
      ]
    },
    {
      "id": "47566677-5342-4b26-9974-793526a59bd9",
      "name": "Route Auto",
      "type": "n8n-nodes-base.if",
      "position": [
        -272,
        -176
      ]
    },
    {
      "id": "c0b971bc-a5ce-48b6-978c-54ae02112505",
      "name": "Auto Approve",
      "type": "n8n-nodes-base.set",
      "position": [
        -64,
        -272
      ]
    },
    {
      "id": "eef387ab-bee8-4570-8cca-26ccbd30abeb",
      "name": "Route Manager",
      "type": "n8n-nodes-base.if",
      "position": [
        -64,
        -80
      ]
    },
    {
      "id": "74152681-2cf6-4e76-aabb-87ae00a86048",
      "name": "Slack Manager",
      "type": "n8n-nodes-base.slack",
      "position": [
        144,
        -224
      ]
    },
    {
      "id": "e05fba8b-60e5-4438-9f7a-cd828bace8b8",
      "name": "Slack Director",
      "type": "n8n-nodes-base.slack",
      "position": [
        144,
        -16
      ]
    },
    {
      "id": "b7a58104-fc21-485a-8c93-edb1dc253b2b",
      "name": "Log to Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        336,
        -64
      ]
    },
    {
      "id": "1af29bbe-b3ee-42ee-91a9-388b70659c48",
      "name": "Is Approved",
      "type": "n8n-nodes-base.if",
      "position": [
        544,
        -64
      ]
    },
    {
      "id": "0e8c5d12-fee3-4c7d-bc16-77a79e39befe",
      "name": "Rejection Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        752,
        0
      ]
    },
    {
      "id": "1b5d88c6-fe8f-4984-9e9e-19789ba76c60",
      "name": "Approved",
      "type": "n8n-nodes-base.gmail",
      "position": [
        752,
        -192
      ]
    },
    {
      "id": "6382a19b-08de-4466-9013-696d5ffac4db",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1200,
        -208
      ],
      "parameters": {
        "width": null,
        "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)"
      }
    },
    {
      "id": "5b890f09-277e-41e6-9628-dd6907b14e5f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -912,
        -160
      ],
      "parameters": {
        "width": 192,
        "height": null,
        "content": "🧾 Parse & Normalize Data\nExtracts key fields (name, email, amount, \ncategory, merchant, receipt URL) \nfor further processing.\n"
      }
    },
    {
      "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"
      }
    },
    {
      "id": "11112b1f-af67-4c7c-86cc-b4ccfe83a249",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        -160
      ],
      "parameters": {
        "width": 176,
        "height": null,
        "content": "🚫 Compliance Check\nIf violations exist → reject\nElse → continue for approval routing\n"
      }
    },
    {
      "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"
      }
    },
    {
      "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"
      }
    },
    {
      "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"
      }
    },
    {
      "id": "2eb6d9f2-7f9d-453f-a548-cf2660f7248c",
      "name": "Jotform Trigger",
      "type": "n8n-nodes-base.jotFormTrigger",
      "position": [
        -1120,
        -16
      ]
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}