{"workflow":{"id":13654,"name":"Scan WhatsApp receipt photos and track expenses using Wati and GPT-4o","views":177,"recentViews":1,"totalViews":177,"createdAt":"2026-02-24T12:28:11.825Z","description":"Transform messy receipt photos into a structured, searchable expense database in seconds. This workflow automates the entire journey from a WhatsApp message to a live Google Sheets entry by combining WATI for communication, OpenAI Vision for extraction, and automated reporting logic.\n\n---\n\n## 🎯 What This Workflow Does\n\nTurns a simple WhatsApp photo or text command into a professional expense management system:\n\n- 📝 **Captures Receipt Assets**  \n  Receives an image or text command via WATI Trigger from the user's phone.\n\n- 🚦 **Smart Message Routing**  \n  A Switch node detects the input type:\n  - **Image:** Routes to the AI scanning branch for receipt processing.\n  - **Text (\"report\"):** Routes to the reporting branch to generate monthly summaries.\n\n- 👁️ **Vision AI Analysis**  \n  OpenAI GPT-4o \"looks\" at the receipt image to extract the merchant name, total amount, currency, and date.\n\n- ☁️ **Base64 Data Processing**  \n  A specialized Code node uses `getBinaryDataBuffer` to convert receipt images into a high-speed data URL, ensuring OpenAI always receives the actual image instead of a placeholder.\n\n- 📊 **Automated Logging & Reporting**\n  - **Logging:** Appends validated data to Google Sheets with automated month categorization.\n  - **Reporting:** Aggregates totals by category and sends a visual dashboard back to WhatsApp.\n\n---\n\n## ✨ Key Features\n\n- **Zero-Manual Entry:** AI extracts 100% of the data from the photo, including currency codes and spending categories.\n- **Visual Progress Reports:** The workflow generates formatted WhatsApp reports with visual percentage bars (`███░░`).\n- **Automatic Month Tracking:** Uses Luxon date expressions to derive \"Month\" names automatically from receipt dates.\n- **Dual-Mode Trigger:** Handles both new expense logging and historical data retrieval within a single WhatsApp chat.\n- **Robust Error Handling:** Includes logic to catch \"filesystem\" errors and ensure binary data is properly converted for the AI.\n\n---\n\n## 💼 Perfect For\n\n- **Small Business Owners:** Tracking business expenses on the go without saving paper receipts.\n- **Freelancers:** Quickly logging billable expenses for client reimbursement.\n- **Personal Finance Users:** Maintaining a real-time budget directly from their primary messaging app.\n- **Teams:** Allowing multiple employees to \"WhatsApp\" their receipts to a central company sheet.\n\n---\n\n## 🔧 What You'll Need\n\n### Required Integrations\n\n- **[WATI](https://www.wati.io/)** – To receive WhatsApp messages and send automated replies.\n\n- **[OpenAI API](https://platform.openai.com/)** – GPT-4o Vision for image analysis and structured JSON extraction.\n\n- **[Google Sheets](https://www.google.com/sheets/about/)** – To host the master expense database.\n\n### Optional Customizations\n\n- **Currency Conversion:** Add a node to convert all foreign expenses into your local currency automatically.\n- **Budget Alerts:** Set a threshold to notify you via WhatsApp if your monthly total exceeds a specific limit.\n\n---\n\n## 🚀 Quick Start\n\n1. **Import Template** – Copy the JSON and import it into your n8n instance.\n2. **Set Credentials** – Connect your WATI, OpenAI, and Google Sheets accounts.\n3. **Configure Sheet** – Ensure your Google Sheet has headers for:\n   - `timestamp`\n   - `phone`\n   - `vendor`\n   - `amount`\n   - `currency`\n   - `date`\n   - `category`\n   - `month`\n4. **Test Scanning** – Send a photo of a receipt to your WATI number.\n5. **Request Report** – Type `report` in WhatsApp to see your spending breakdown.\n\n---\n\n## 🎨 Customization Options\n\n- **Category Mapping:** Modify the OpenAI prompt to use categories specific to your tax filing needs (e.g., \"Office Supplies,\" \"Travel\").\n- **Filtering Logic:** Adjust the Build Monthly Report code to show weekly instead of monthly summaries.\n- **Multi-User Support:** The workflow is already built to filter data based on the sender's phone number.\n\n---\n\n## 📈 Expected Results\n\n- 90% reduction in time spent on monthly expense reconciliation.\n- 100% accuracy in date and amount extraction using GPT-4o Vision.\n- Real-time visibility into spending habits without ever opening a spreadsheet.\n- Zero lost receipts by logging them the moment they are received.\n\n---\n\n## 🏆 Use Cases\n\n### Business Travel\nA consultant snaps photos of taxi and meal receipts during a trip; by the time they land, their expense sheet is already populated and categorized.\n\n### Personal Budgeting\nA user types `report` at the end of the week to instantly see what percentage of their budget went to \"Food\" vs \"Entertainment\".\n\n### Subscription Management\nUpload screenshots of digital invoices to track monthly software costs and recurring bills.\n\n---\n\n## 💡 Pro Tips\n\n- **Clear Lighting:** For best AI extraction, ensure the receipt text is clear and not folded.\n- **Keyword Commands:** You can add more keywords like `summary` or `last week` by expanding the Route Message switch node.\n- **JSON Validation:** The Parse & Validate node ensures that even if the AI adds extra text, only the clean data is saved.\n\n---\n\nReady to automate your expenses? Import this template and connect your WATI number to start scanning receipts today!\n```","workflow":{"meta":{"instanceId":"277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8","templateCredsSetupCompleted":true},"nodes":[{"id":"3bf367ea-63dc-4547-aec6-5b7fd658608c","name":"📋 Flow Overview","type":"n8n-nodes-base.stickyNote","position":[-272,16],"parameters":{"width":500,"height":374,"content":"## 📊 WhatsApp Expense Tracker – AI Receipt Scanner\n\n**How it works:**\n1. User sends a receipt photo (or text command) on WhatsApp via WATI\n2. n8n receives the webhook, detects if it's an image or text\n3. If image → OpenAI Vision extracts vendor, amount, date, category\n4. Extracted data is appended to Google Sheets\n5. If user sends `report` → monthly summary is pulled from Sheets and sent back\n\n**Setup needed:** WATI credentials, OpenAI API key, Google Sheets OAuth"},"typeVersion":1},{"id":"ab271019-dd04-4b53-b6ab-78b8025ca94a","name":"Sticky – Receive & Route","type":"n8n-nodes-base.stickyNote","position":[272,400],"parameters":{"color":7,"width":548,"height":484,"content":"### 1️⃣ Webhook + Route\n**WATI Trigger** receives incoming WhatsApp messages.\n**Switch** checks: image → receipt scan | `report` text → monthly report | anything else → help message."},"typeVersion":1},{"id":"0f4b6bab-89b4-4d75-957b-d767139da255","name":"Sticky – AI Scan","type":"n8n-nodes-base.stickyNote","position":[880,336],"parameters":{"color":7,"width":808,"height":420,"content":"### 2️⃣ Download & Scan Receipt\n**Get a media file** downloads the receipt image binary from WATI.\n**Prepare Image Code** converts the binary to a base64 data URL so OpenAI Vision can read it.\n**OpenAI GPT-4o** analyses the image and returns structured JSON."},"typeVersion":1},{"id":"a81dbf8b-d435-4327-a6ff-2772794b8693","name":"Sticky – Log & Confirm","type":"n8n-nodes-base.stickyNote","position":[1760,336],"parameters":{"color":7,"width":404,"height":416,"content":"### 3️⃣ Log to Sheets + Confirm\n**Google Sheets – Append** logs the row: timestamp, phone, vendor, amount, currency, date, category, description, month.\n**WATI – Confirm** sends a session message back to the user with the logged expense summary."},"typeVersion":1},{"id":"7cdee34e-1fc5-4f2c-8ca3-c62fa4f5a28f","name":"Sticky – Report","type":"n8n-nodes-base.stickyNote","position":[896,784],"parameters":{"color":7,"width":724,"height":283,"content":"### 4️⃣ Monthly Report\n**Google Sheets – Read** fetches ALL rows, filtered in the Code node by current month.\n**Build Report Code** aggregates totals per category with visual % bars.\n**WATI – Send Report** replies with the formatted breakdown."},"typeVersion":1},{"id":"01fbe3f8-b96b-4ee0-bcf2-1b867556711f","name":"Route Message","type":"n8n-nodes-base.switch","position":[528,640],"parameters":{"rules":{"values":[{"outputKey":"Image Receipt","conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"2960fec3-8599-4a2d-a77c-a9204a6a9fad","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.type }}","rightValue":"image"}]},"renameOutput":true},{"outputKey":"Monthly Report","conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ed5d4131-7461-4dbb-8ffa-6c70749a42c3","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.text }}","rightValue":"={{ $json.text }}"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3},{"id":"88893515-d634-49d0-b457-f8b230a08a7e","name":"Parse & Validate Expense","type":"n8n-nodes-base.code","position":[1520,528],"parameters":{"jsCode":"// 1. Get the raw text content from the OpenAI extraction node\n// Note: We access .choices[0].message.content because it's a Chat Completion\nconst rawContent = $input.first().json.choices[0].message.content\nconst parsed = JSON.parse(rawContent);\n\n// 2. Reference the correct Trigger name (Wati Trigger1)\nconst triggerNode = $('Wati Trigger').first();\nconst phone = triggerNode.json.waId || triggerNode.json.from || 'unknown';\nconst senderName = triggerNode.json.senderName || 'User';\n\n// 3. Create the expense object\nconst now = new Date();\nconst expenseRow = {\n  timestamp: now.toISOString(),\n  phone: phone,\n  senderName: senderName,\n  vendor: parsed.vendor || parsed.merchant || 'Unknown Vendor',\n  amount: parsed.amount || parsed.total || 0,\n  currency: parsed.currency || 'INR',\n  date: parsed.date || now.toISOString().split('T')[0],\n  category: parsed.category || 'Other',\n  description: parsed.description || ''\n};\n\nreturn { json: expenseRow };"},"typeVersion":2},{"id":"411fe9db-8c1f-4319-bd11-d93161178880","name":"Google Sheets – Log Expense","type":"n8n-nodes-base.googleSheets","position":[1808,528],"parameters":{"columns":{"value":{"date ":"={{ $json.date }}","month":"={{ DateTime.fromISO($json.date).monthLong }}","phone":"={{ $json.phone }}","amount":"={{ $json.amount }}","vendor":"={{ $json.vendor }}","category":"={{ $json.category }}","currency":"={{ $json.currency }}","timestamp":"={{ $json.timestamp }}","description":"={{ $json.description }}"},"schema":[{"id":"timestamp","type":"string","display":true,"required":false,"displayName":"timestamp","defaultMatch":false,"canBeUsedToMatch":true},{"id":"phone","type":"string","display":true,"required":false,"displayName":"phone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"vendor","type":"string","display":true,"required":false,"displayName":"vendor","defaultMatch":false,"canBeUsedToMatch":true},{"id":"amount","type":"string","display":true,"required":false,"displayName":"amount","defaultMatch":false,"canBeUsedToMatch":true},{"id":"currency","type":"string","display":true,"required":false,"displayName":"currency","defaultMatch":false,"canBeUsedToMatch":true},{"id":"date ","type":"string","display":true,"removed":false,"required":false,"displayName":"date ","defaultMatch":false,"canBeUsedToMatch":true},{"id":"category","type":"string","display":true,"removed":false,"required":false,"displayName":"category","defaultMatch":false,"canBeUsedToMatch":true},{"id":"description","type":"string","display":true,"required":false,"displayName":"description","defaultMatch":false,"canBeUsedToMatch":true},{"id":"month","type":"string","display":true,"required":false,"displayName":"month","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1IgLWByzBp46IeTnxt_5I4jpmJh31Z0TIh7gBpoQjCSQ/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1IgLWByzBp46IeTnxt_5I4jpmJh31Z0TIh7gBpoQjCSQ","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1IgLWByzBp46IeTnxt_5I4jpmJh31Z0TIh7gBpoQjCSQ/edit?usp=drivesdk","cachedResultName":"wati - expense"}},"credentials":{"googleSheetsOAuth2Api":{"id":"Kz2DdSp11rxqwlFt","name":"Google Sheets account - Deepanshi"}},"typeVersion":4.5},{"id":"5a3cccd1-35bd-4851-a1bc-b8051261c0ab","name":"Google Sheets – Read This Month","type":"n8n-nodes-base.googleSheets","position":[1008,912],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1IgLWByzBp46IeTnxt_5I4jpmJh31Z0TIh7gBpoQjCSQ/edit#gid=0","cachedResultName":"Expenses"},"documentId":{"__rl":true,"mode":"list","value":"1IgLWByzBp46IeTnxt_5I4jpmJh31Z0TIh7gBpoQjCSQ","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1IgLWByzBp46IeTnxt_5I4jpmJh31Z0TIh7gBpoQjCSQ/edit?usp=drivesdk","cachedResultName":"wati - expense"}},"credentials":{"googleSheetsOAuth2Api":{"id":"Kz2DdSp11rxqwlFt","name":"Google Sheets account - Deepanshi"}},"typeVersion":4.5},{"id":"8a7e4899-b4f3-4f17-87b1-6d9d59f8a116","name":"Build Monthly Report","type":"n8n-nodes-base.code","position":[1216,912],"parameters":{"jsCode":"// ── Build Monthly Report ──────────────────────────────────────────\n// Reads all rows, filters to current month, aggregates by category.\n\nconst allRows = $input.all();\nconst now = new Date();\nconst currentMonth = now.toISOString().substring(0, 7); // YYYY-MM\nconst callerPhone = $('Wati Trigger').first().json.waId\n\n// Filter only this month & this user's expenses\nconst rows = allRows.filter(r => {\n  const rowMonth = r.json.month || (r.json.timestamp || '').substring(0, 7);\n  const rowPhone = r.json.phone || '';\n  return rowMonth === currentMonth && rowPhone === callerPhone;\n});\n\nconst monthLabel = now.toLocaleString('default', { month: 'long', year: 'numeric' });\n\nif (!rows || rows.length === 0) {\n  return [{ json: { reportText: `📊 No expenses recorded for *${monthLabel}* yet.\\n\\nSnap a receipt photo to start tracking!` } }];\n}\n\n// Aggregate by category\nconst categoryTotals = {};\nlet grandTotal = 0;\nlet currency = 'USD';\n\nfor (const row of rows) {\n  const cat = row.json.category || 'Other';\n  const amt = parseFloat(row.json.amount) || 0;\n  currency = row.json.currency || currency;\n  categoryTotals[cat] = (categoryTotals[cat] || 0) + amt;\n  grandTotal += amt;\n}\n\n// Build formatted WhatsApp message with visual bars\nconst lines = [`📊 *Monthly Expense Report*`, `📅 *${monthLabel}*`, ''];\n\nconst sorted = Object.entries(categoryTotals).sort((a, b) => b[1] - a[1]);\nfor (const [cat, total] of sorted) {\n  const pct = grandTotal > 0 ? ((total / grandTotal) * 100) : 0;\n  const filledBars = Math.round(pct / 10);\n  const bar = '█'.repeat(filledBars) + '░'.repeat(10 - filledBars);\n  lines.push(`${bar} *${cat}*`);\n  lines.push(`  ${currency} ${total.toFixed(2)}  (${pct.toFixed(1)}%)`);\n  lines.push('');\n}\n\nlines.push(`━━━━━━━━━━━━━━━━━━`);\nlines.push(`💰 *Total Spent: ${currency} ${grandTotal.toFixed(2)}*`);\nlines.push(`🧾 *Receipts logged: ${rows.length}*`);\nlines.push('');\nlines.push('Snap a receipt photo to log a new expense!');\n\nreturn [{ json: { reportText: lines.join('\\n'), grandTotal, currency, count: rows.length } }];"},"typeVersion":2},{"id":"47eef0fa-7eb6-495b-8ba4-d78bf81c92ff","name":"Prepare Image for OpenAI1","type":"n8n-nodes-base.code","position":[1136,528],"parameters":{"jsCode":"// Get the item and its binary data reference\nconst item = $input.first();\nconst binaryPropertyName = 'data'; // Ensure this matches your binary field name\nconst binaryData = item.binary?.[binaryPropertyName];\n\nif (!binaryData) {\n  throw new Error(`No binary data found in property \"${binaryPropertyName}\".`);\n}\n\n// Retrieve the actual file buffer from n8n's storage\nconst buffer = await this.helpers.getBinaryDataBuffer(0, binaryPropertyName);\n\n// Convert that buffer into a real Base64 string\nconst base64String = buffer.toString('base64');\nconst mimeType = binaryData.mimeType || 'image/jpeg';\n\nreturn {\n  json: {\n    mimeType: mimeType,\n    // This will now contain the ACTUAL image code, not \"filesystem-v2\"\n    dataUrl: `data:${mimeType};base64,${base64String}`\n  }\n};"},"typeVersion":2},{"id":"de8d0d89-cccb-4599-afff-ddb08b4f261b","name":"OpenAI – Extract Receipt Data2","type":"n8n-nodes-base.httpRequest","position":[1312,528],"parameters":{"url":"https://api.openai.com/v1/chat/completions","method":"POST","options":{},"jsonBody":"={\n  \"model\": \"gpt-4o\",\n  \"max_tokens\": 600,\n  \"temperature\": 0.1,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": [\n        {\n          \"type\": \"text\",\n          \"text\": \"You are a receipt scanning assistant. Extract the following details from this receipt image and return ONLY a raw JSON object — no explanation, no markdown, no code fences. Just the JSON.\\n\\n{\\n  \\\"vendor\\\": \\\"name of the shop, restaurant or business\\\",\\n  \\\"amount\\\": total final amount paid as a number only (no currency symbol),\\n  \\\"currency\\\": \\\"3-letter ISO currency code based on the country e.g. INR, USD, EUR, GBP\\\",\\n  \\\"date\\\": \\\"date on the receipt in YYYY-MM-DD format\\\",\\n  \\\"category\\\": \\\"pick exactly one from: Food, Transport, Utilities, Shopping, Healthcare, Entertainment, Other\\\",\\n  \\\"description\\\": \\\"one short sentence summarising what was purchased\\\"\\n}\\n\\nRules:\\n- amount must be a number, not a string\\n- If any field is not visible or unclear, set it to null\\n- Never add extra fields\\n- Never wrap in markdown or code blocks\\n- Return only the JSON, nothing else\"\n        },\n        {\n          \"type\": \"image_url\",\n          \"image_url\": {\n            \"url\": \"{{ $json.dataUrl }}\",\n            \"detail\": \"high\"\n          }\n        }\n      ]\n    }\n  ]\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"predefinedCredentialType","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]},"nodeCredentialType":"openAiApi"},"credentials":{"openAiApi":{"id":"8IkhtT3EbXygnvcr","name":"Mediajade"},"httpHeaderAuth":{"id":"GKgCj9WxmYpiz70D","name":"Stripe Header Auth"}},"typeVersion":4.2},{"id":"6387db9f-7a4d-403a-9017-761e6dd4b5a2","name":"Wati Trigger","type":"n8n-nodes-wati.watiTrigger","position":[336,656],"webhookId":"ceb8d7d4-0ea8-4491-9bec-89f94a3feb35","parameters":{"event":"messageReceived"},"credentials":{"watiApi":{"id":"LeAm3lDk4hC1D2Qy","name":"wati - templates"}},"typeVersion":1,"alwaysOutputData":true},{"id":"f920680d-354a-41e5-871a-d8eee6847aeb","name":"Get a media file1","type":"n8n-nodes-wati.wati","position":[912,528],"parameters":{"operation":"getMedia","mediaFileUrl":"={{ $json.data }}"},"credentials":{"watiApi":{"id":"LeAm3lDk4hC1D2Qy","name":"wati - templates"}},"typeVersion":1},{"id":"60f3a0b8-afad-445b-bdd6-7000bef1e452","name":"Send Expenditure message","type":"n8n-nodes-wati.wati","position":[2016,528],"parameters":{"target":"={{ $('Wati Trigger').item.json.waId }}","messageText":"=✅ *Expense Logged Successfully!*\n\n🏪 *Vendor:* {{ $('Parse & Validate Expense').item.json.vendor }}\n💰 *Amount:* {{ $('Parse & Validate Expense').item.json.currency }} {{ $('Parse & Validate Expense').item.json.amount }}\n🗂️ *Category:* {{ $('Parse & Validate Expense').item.json.category }}\n📅 *Date:* {{ $('Parse & Validate Expense').item.json.date }}\n📝 *Details:* {{ $('Parse & Validate Expense').item.json.description }}\n\nYour expense has been saved! \nType *report* to view your monthly summary 📊"},"credentials":{"watiApi":{"id":"LeAm3lDk4hC1D2Qy","name":"wati - templates"}},"typeVersion":1},{"id":"f7e8beab-a370-420a-af95-b03d0a044c3a","name":"Send Expenditure Report - month","type":"n8n-nodes-wati.wati","position":[1424,912],"parameters":{"target":"={{ $('Wati Trigger').item.json.waId }}","messageText":"={{ $('Build Monthly Report').item.json.reportText }}"},"credentials":{"watiApi":{"id":"LeAm3lDk4hC1D2Qy","name":"wati - templates"}},"typeVersion":1}],"pinData":{"Wati Trigger":[{"id":"699d91010f41e0ed0044ca2c","data":null,"text":"report","type":"text","waId":"917024935915","owner":false,"created":"2026-02-24T11:52:33.1741628Z","sourceId":null,"ticketId":"699d5bece335b461449f4b91","avatarUrl":null,"eventType":"message","forwarded":false,"listReply":null,"sourceUrl":null,"timestamp":"1771933951","assignedId":null,"senderName":"Deepanshi Singhal","sourceType":7,"buttonReply":null,"operatorName":null,"statusString":"SENT","operatorEmail":null,"conversationId":"699d5becb12153808a3300f0","messageContact":null,"replyContextId":"","whatsappMessageId":"wamid.HBgMOTE3MDI0OTM1OTE1FQIAEhggQUNDNjAzRjM1Q0UxQkZFNjJGNjJBOUIyODRFRkQ0NzgA","frequentlyForwarded":false,"interactiveButtonReply":null}]},"connections":{"Wati Trigger":{"main":[[{"node":"Route Message","type":"main","index":0}]]},"Route Message":{"main":[[{"node":"Get a media file1","type":"main","index":0}],[{"node":"Google Sheets – Read This Month","type":"main","index":0}]]},"Get a media file1":{"main":[[{"node":"Prepare Image for OpenAI1","type":"main","index":0}]]},"Build Monthly Report":{"main":[[{"node":"Send Expenditure Report - month","type":"main","index":0}]]},"Parse & Validate Expense":{"main":[[{"node":"Google Sheets – Log Expense","type":"main","index":0}]]},"Prepare Image for OpenAI1":{"main":[[{"node":"OpenAI – Extract Receipt Data2","type":"main","index":0}]]},"Google Sheets – Log Expense":{"main":[[{"node":"Send Expenditure message","type":"main","index":0}]]},"OpenAI – Extract Receipt Data2":{"main":[[{"node":"Parse & Validate Expense","type":"main","index":0}]]},"Google Sheets – Read This Month":{"main":[[{"node":"Build Monthly Report","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":16,"nodeTypes":{"n8n-nodes-base.code":{"count":3},"n8n-nodes-wati.wati":{"count":3},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-wati.watiTrigger":{"count":1},"n8n-nodes-base.googleSheets":{"count":2}}},"status":"published","readyToDemo":null,"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":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":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"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/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/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/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"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":35,"name":"Document Extraction"},{"id":47,"name":"AI Chatbot"}],"image":[]}}