{
  "id": "200",
  "name": "BillBot",
  "nodes": [
    {
      "name": "Set relevant data",
      "type": "n8n-nodes-base.set",
      "position": [
        780,
        460
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "Category",
              "value": "={{$node[\"Parse details from receipt\"].json[\"predictions\"][0][\"category\"][\"value\"]}}"
            },
            {
              "name": "Date",
              "value": "={{$node[\"Parse details from receipt\"].json[\"predictions\"][0][\"date\"][\"iso\"]}}"
            },
            {
              "name": "Merchant",
              "value": "={{$node[\"Parse details from receipt\"].json[\"predictions\"][0][\"merchant\"][\"name\"]}}"
            },
            {
              "name": "Time",
              "value": "={{$node[\"Parse details from receipt\"].json[\"predictions\"][0][\"time\"][\"iso\"]}}"
            },
            {
              "name": "Amount",
              "value": "={{$node[\"Parse details from receipt\"].json[\"predictions\"][0][\"total\"][\"amount\"]}}"
            },
            {
              "name": "Currency",
              "value": "={{$node[\"Parse details from receipt\"].json[\"predictions\"][0][\"locale\"][\"currency\"]}}"
            },
            {
              "name": "Added by",
              "value": "={{$node[\"Get receipts from bot\"].json[\"message\"][\"chat\"][\"first_name\"]}} {{$node[\"Get receipts from bot\"].json[\"message\"][\"chat\"][\"last_name\"]}}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1,
      "id": "node-c1e4ed19"
    },
    {
      "name": "Send confirmation",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1180,
        460
      ],
      "parameters": {
        "text": "=✅ Bill of {{$node[\"Set relevant data\"].json[\"Amount\"]}} {{$node[\"Set relevant data\"].json[\"Currency\"]}} from {{$node[\"Set relevant data\"].json[\"Merchant\"]}}, dated {{$node[\"Set relevant data\"].json[\"Date\"]}} at {{$node[\"Set relevant data\"].json[\"Time\"]}}. Category was {{$node[\"Set relevant data\"].json[\"Category\"]}}.",
        "chatId": "={{$node[\"Get receipts from bot\"].json[\"message\"][\"chat\"][\"id\"]}}",
        "additionalFields": {}
      },
      "typeVersion": 1,
      "id": "node-dbac86d7"
    },
    {
      "name": "Get receipts from bot",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        380,
        460
      ],
      "webhookId": "ef81fe75-10c8-40c3-8bea-d65648556705",
      "parameters": {
        "updates": [
          "*"
        ],
        "additionalFields": {
          "download": true
        }
      },
      "typeVersion": 1,
      "id": "node-76f0acb0"
    },
    {
      "name": "Parse details from receipt",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        580,
        460
      ],
      "parameters": {
        "url": "{{ $env.BASE_URL }}",
        "options": {
          "bodyContentType": "multipart-form-data"
        },
        "requestMethod": "POST",
        "authentication": "{{ $credentials.headerAuth }}",
        "jsonParameters": true,
        "sendBinaryData": true
      },
      "typeVersion": 1,
      "id": "node-b5ab29bd"
    },
    {
      "name": "Add to expense record",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        980,
        460
      ],
      "parameters": {
        "range": "A:G",
        "options": {},
        "sheetId": "",
        "operation": "append",
        "authentication": "{{ $credentials.oAuth2 }}"
      },
      "typeVersion": 1,
      "id": "node-b2c82f60"
    },
    {
      "name": "Send SMS notification",
      "type": "n8n-nodes-base.twilio",
      "position": [
        1380,
        460
      ],
      "parameters": {
        "to": "",
        "from": "",
        "message": "=A receipt worth {{$node[\"Set relevant data\"].json[\"Amount\"]}} {{$node[\"Set relevant data\"].json[\"Currency\"]}} was submitted by {{$node[\"Set relevant data\"].json[\"Added by\"]}} and has been added to the following spreadsheet:\nhttps://docs.google.com/spreadsheets/d/{{$node[\"Add to expense record\"].parameter[\"sheetId\"]}}/"
      },
      "typeVersion": 1,
      "id": "node-559fa1e0"
    },
    {
      "id": "error-68ecdf1d",
      "name": "Error Handler",
      "type": "n8n-nodes-base.stopAndError",
      "typeVersion": 1,
      "position": [
        1000,
        400
      ],
      "parameters": {
        "message": "Workflow execution error",
        "options": {}
      }
    }
  ],
  "connections": {},
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true,
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": null,
    "timezone": "UTC",
    "executionTimeout": 3600,
    "maxExecutions": 1000,
    "retryOnFail": true,
    "retryCount": 3
  },
  "meta": {
    "versionId": "1.0.0",
    "createdAt": "2025-09-29T07:07:45.801986",
    "updatedAt": "2025-09-29T07:07:45.802019",
    "owner": "n8n-user",
    "license": "MIT",
    "category": "automation",
    "status": "active",
    "priority": "high",
    "environment": "production"
  },
  "tags": [
    "automation",
    "n8n",
    "production-ready",
    "excellent",
    "optimized"
  ],
  "description": "Production-ready workflow: BillBot. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."
}