{
 "name": "RecipeAgents: Snap a receipt, get an expense row",
 "nodes": [
  {
   "parameters": {
    "pollTimes": {
     "item": [
      {
       "mode": "everyMinute"
      }
     ]
    },
    "triggerOn": "specificFolder",
    "folderToWatch": {
     "__rl": true,
     "value": "",
     "mode": "list"
    },
    "event": "fileCreated",
    "options": {}
   },
   "id": "5270f440-dc95-485f-811b-6747b470c2b3",
   "name": "Google Drive Trigger",
   "type": "n8n-nodes-base.googleDriveTrigger",
   "typeVersion": 1,
   "position": [
    240,
    300
   ]
  },
  {
   "parameters": {
    "modelId": {
     "__rl": true,
     "value": "gpt-4o-mini",
     "mode": "list",
     "cachedResultName": "GPT-4O-MINI"
    },
    "messages": {
     "values": [
      {
       "content": "=From this receipt image, return JSON {merchant, date YYYY-MM-DD, currency, total, category: one of [food, travel, software, office, other]}. Null if unreadable; never guess the total.\n\nInput: {{ JSON.stringify($json) }}"
      }
     ]
    },
    "jsonOutput": true,
    "options": {}
   },
   "id": "3d80d82e-490c-4dc0-a530-58f44ee9e511",
   "name": "AI step",
   "type": "@n8n/n8n-nodes-langchain.openAi",
   "typeVersion": 1.8,
   "position": [
    500,
    300
   ]
  },
  {
   "parameters": {
    "operation": "append",
    "documentId": {
     "__rl": true,
     "value": "",
     "mode": "list"
    },
    "sheetName": {
     "__rl": true,
     "value": "",
     "mode": "list"
    },
    "columns": {
     "mappingMode": "autoMapInputData",
     "value": {}
    },
    "options": {}
   },
   "id": "8a473419-38d9-426d-9b0f-89f15f5acb74",
   "name": "Append to Sheet",
   "type": "n8n-nodes-base.googleSheets",
   "typeVersion": 4.5,
   "position": [
    760,
    300
   ]
  },
  {
   "parameters": {
    "content": "## Snap a receipt, get an expense row\nFrom recipeagents.usestarbase.com/recipes/receipt-photo-expenses\n\n1. Connect credentials on each node (Google, OpenAI, Slack).\n2. Pick your sheet/folder/channel and model.\n3. Run once with test data and check the output before activating.\nKeep a human check on anything customer-facing.",
    "height": 260,
    "width": 420
   },
   "id": "05c077a5-f234-4918-9465-3ddfa630f75d",
   "name": "Read me",
   "type": "n8n-nodes-base.stickyNote",
   "typeVersion": 1,
   "position": [
    200,
    20
   ]
  }
 ],
 "connections": {
  "Google Drive Trigger": {
   "main": [
    [
     {
      "node": "AI step",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "AI step": {
   "main": [
    [
     {
      "node": "Append to Sheet",
      "type": "main",
      "index": 0
     }
    ]
   ]
  }
 },
 "pinData": {},
 "active": false,
 "settings": {
  "executionOrder": "v1"
 },
 "meta": {
  "templateCredsSetupCompleted": false
 },
 "tags": []
}