{"workflow":{"id":14957,"name":"Benchmark invoice data extraction accuracy with easybits","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-09T10:06:05.638Z","description":"## What This Workflow Does\nUpload the same invoice in different qualities (original PDF, scanned copy, phone photo, compressed JPEG, etc.) and instantly see how accurately each field was extracted. The workflow compares every extracted value against a fixed ground truth and returns a per-field pass/fail report with an overall accuracy percentage – directly in the browser.\n\n## How It Works\n1. **Upload** – A document is submitted through the n8n web form\n2. **Extract** – easybits Extractor processes the file and returns structured data\n3. **Compare** – Each extracted field is compared against the known correct values\n4. **Report** – A completion screen shows which fields matched and the overall accuracy\n\n## Setup Guide\n\n### 1. Create Your easybits Extractor Pipeline\n1. Go to [extractor.easybits.tech](https://extractor.easybits.tech/) and create a new pipeline\n2. Upload one of the example invoices as your reference document – you can find them [here](https://github.com/felix-sattler-easybits/n8n-workflows/tree/88d7c9818b150e71dd749bf9f665359fa57efcb9/data-extraction-stresstest).\n3. Click **Auto-Mapping** – the Extractor will automatically detect and set up all fields for you\n4. Save the pipeline and copy your **Pipeline ID** and **API Key**\n\n### 2. Connect Your easybits Credentials\nOpen the **easybits Extractor** node in the workflow and connect your credentials (Pipeline ID & API Key). The node will use the pipeline you just created – no further configuration needed.\n\n### 3. Adjust the Ground Truth (if needed)\nThe **Ground Truth** node contains the expected values for all 10 fields. If you're testing with a different document, update these values to match your reference invoice.\n\n### 4. Activate & Test the workflow by uploading your first test document\n\n---\n\n## 🔄 Want to Test a Different Extraction Solution?\nYou can swap out the easybits Extractor node for an **HTTP Request node** pointing at any other extraction API. As long as your HTTP node returns the same field names under `json.data` (e.g. `data.invoice_number`, `data.amount_paid`, etc.), the rest of the workflow – ground truth comparison, validation, and results display – works identically. This makes it easy to benchmark multiple solutions side by side using the exact same test documents and accuracy criteria.","workflow":{"meta":{"templateCredsSetupCompleted":false},"name":"Stresstest Workflow (easybits Extractor verified community node)","tags":[],"nodes":[{"id":"0fcb599c-7cce-45a3-bbdb-179ae3078e79","name":"Document Upload","type":"n8n-nodes-base.formTrigger","position":[16,96],"webhookId":"","parameters":{"options":{},"formTitle":"Document Upload Form","formFields":{"values":[{"fieldType":"file","fieldLabel":"Upload"}]},"responseMode":"lastNode"},"typeVersion":2.5},{"id":"9b51006c-7343-412d-87b2-55005b5e1aa1","name":"Validation","type":"n8n-nodes-base.set","position":[1232,96],"parameters":{"options":{},"assignments":{"assignments":[{"id":"a9749b03-86a3-42ab-9bea-2e37b3bc2f45","name":"amount_due_status","type":"string","value":"={{ $json.data.amount_due === 0 ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"d155a6b5-108b-4634-9cf0-d857b582ecd0","name":"amount_paid_status","type":"string","value":"={{ $json.data.amount_paid === 73.82 ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"a160371f-7ca0-4453-bd9e-b665839f1d18","name":"billing_period_status","type":"string","value":"={{ $json.data.billing_period === \"Jan 15 to Feb 15, 2026\" ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"7ecd25a0-9ebb-4538-a754-3719cabfb3fe","name":"currency_status","type":"string","value":"={{ $json.data.currency === \"EUR\" ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"ebf4410d-9528-4825-8522-9f4702ef2814","name":"customer_name_status","type":"string","value":"={{ $json.data.customer_name === \"Max Mustermann\" ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"0b5f14ea-ab7c-4d9b-869a-a5dc293b799d","name":"invoice_date_status","type":"string","value":"={{ $json.data.invoice_date === \"Jan 15, 2026\" ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"92da2d35-6694-4113-8572-2f58b1e5a235","name":"invoice_number_status","type":"string","value":"={{ $json.data.invoice_number === \"IN-2026-0022514\" ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"f51863ca-174f-48cc-949d-af161fd3140e","name":"payment_status_status","type":"string","value":"={{ $json.data.payment_status === \"PAID\" ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"678b30ca-69eb-424c-bd3a-c383b166b7d4","name":"total_amount_status","type":"string","value":"={{ $json.data.total_amount === 73.82 ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"6b94284d-8ebb-4896-8dcf-203b2272b0ff","name":"vendor_name_status","type":"string","value":"={{ $json.data.vendor_name === \"easybits GmbH\" ? \"correct ✅\" : \"incorrect ❌\" }}"},{"id":"51efc06b-0fc7-409c-b5a9-7b8a0947698c","name":"accuracy_percent","type":"number","value":"={{ (\n  ($json.data.amount_due === 0 ? 1 : 0) +\n  ($json.data.amount_paid === 73.82 ? 1 : 0) +\n  ($json.data.billing_period === \"Jan 15 to Feb 15, 2026\" ? 1 : 0) +\n  ($json.data.currency === \"EUR\" ? 1 : 0) +\n  ($json.data.customer_name === \"Max Mustermann\" ? 1 : 0) +\n  ($json.data.invoice_date === \"Jan 15, 2026\" ? 1 : 0) +\n  ($json.data.invoice_number === \"IN-2026-0022514\" ? 1 : 0) +\n  ($json.data.payment_status === \"PAID\" ? 1 : 0) +\n  ($json.data.total_amount === 73.82 ? 1 : 0) +\n  ($json.data.vendor_name === \"easybits GmbH\" ? 1 : 0)\n) / 10 * 100 }}"}]}},"typeVersion":3.4},{"id":"f7f9ba54-b830-4f2b-abae-e31d3183923c","name":"Merge Ground Truth","type":"n8n-nodes-base.merge","position":[928,384],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"3a2a3e96-586d-4f5c-997c-adad9e466725","name":"Ground Truth","type":"n8n-nodes-base.set","position":[624,96],"parameters":{"options":{},"assignments":{"assignments":[{"id":"f4ee8a43-3aea-431f-8d9b-4d856fb07190","name":"gt_amount_due","type":"number","value":0},{"id":"69e34d32-9262-411c-acb3-bac059b8095f","name":"gt_amount_paid","type":"number","value":73.82},{"id":"d8b4619b-aedf-4207-a142-1903c5417239","name":"gt_billing_period","type":"string","value":"Jan 15 to Feb 15, 2026"},{"id":"1766bb6f-ab35-4032-b47a-fdb429521f04","name":"gt_currency","type":"string","value":"EUR"},{"id":"bbaea181-5391-494b-80a3-58756692203c","name":"gt_customer_name","type":"string","value":"Max Mustermann"},{"id":"efb28932-894d-4357-9e0a-2dd989fef99a","name":"gt_invoice_date","type":"string","value":"Jan 15, 2026"},{"id":"3df929a7-ca9e-4a50-96cf-06e41856772b","name":"gt_invoice_number","type":"string","value":"IN-2026-0022514"},{"id":"d281a5cb-07d0-481d-b71b-8844aaf975a9","name":"gt_payment_status","type":"string","value":"PAID"},{"id":"2feba545-bd40-4c4e-9519-741c1aeca7d2","name":"gt_total_amount","type":"number","value":73.82},{"id":"29eff29d-9fe0-4a03-97d4-3ed0cc59dfb0","name":"gt_vendor_name","type":"string","value":"easybits GmbH"}]}},"typeVersion":3.4},{"id":"a8a48fb4-163a-4b3a-8ba9-887736b25b07","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-848,-336],"parameters":{"width":752,"height":1088,"content":"# 🧪 easybits Extractor – Stress Test Workflow\n\n## What This Workflow Does\nUpload the same invoice in different qualities (original PDF, scanned copy, phone photo, compressed JPEG, etc.) and instantly see how accurately each field was extracted. The workflow compares every extracted value against a fixed ground truth and returns a per-field pass/fail report with an overall accuracy percentage – directly in the browser.\n\n## How It Works\n1. **Upload** – A document is submitted through the n8n web form\n2. **Extract** – easybits Extractor processes the file and returns structured data\n3. **Compare** – Each extracted field is compared against the known correct values\n4. **Report** – A completion screen shows which fields matched and the overall accuracy\n\n## Setup Guide\n\n### 1. Create Your easybits Extractor Pipeline\n1. Go to [extractor.easybits.tech](https://extractor.easybits.tech/) and create a new pipeline\n2. Upload one of the example invoices as your reference document – you can find them here: https://github.com/felix-sattler-easybits/n8n-workflows/tree/88d7c9818b150e71dd749bf9f665359fa57efcb9/data-extraction-stresstest\n3. Click **Auto-Mapping** – the Extractor will automatically detect and set up all fields for you\n4. Save the pipeline and copy your **Pipeline ID** and **API Key**\n\n### 2. Connect Your easybits Credentials\nOpen the **easybits Extractor** node in the workflow and connect your credentials (Pipeline ID & API Key). The node will use the pipeline you just created – no further configuration needed.\n\n### 3. Adjust the Ground Truth (if needed)\nThe **Ground Truth** node contains the expected values for all 10 fields. If you're testing with a different document, update these values to match your reference invoice.\n\n### 4. Activate & Test the workflow by uploading your first test document\n\n---\n\n## 🔄 Want to Test a Different Extraction Solution?\nYou can swap out the easybits Extractor node for an **HTTP Request node** pointing at any other extraction API. As long as your HTTP node returns the same field names under `json.data` (e.g. `data.invoice_number`, `data.amount_paid`, etc.), the rest of the workflow – ground truth comparison, validation, and results display – works identically. This makes it easy to benchmark multiple solutions side by side using the exact same test documents and accuracy criteria."},"typeVersion":1},{"id":"b1edcf65-811a-43b3-ad64-2d283af43e68","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-80,-112],"parameters":{"color":7,"width":288,"height":384,"content":"## 📥 Document Upload\nHosts a simple web form with a single file upload field. Set to \"Workflow Finishes\" mode so the browser waits for the full pipeline to complete before showing results."},"typeVersion":1},{"id":"d4082c17-e4fb-4b05-b4cc-aa3b0f3968fb","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[224,-112],"parameters":{"color":7,"width":288,"height":384,"content":"## 🤖 easybits Data Extraction\nSends the uploaded file to the easybits Extractor API. Returns structured fields under `json.data` – including invoice number, amounts, dates, vendor, and payment status."},"typeVersion":1},{"id":"54adb19b-1033-4358-a88e-7b0d608a6a09","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[528,-112],"parameters":{"color":7,"width":288,"height":384,"content":"## 📋 Ground Truth\nHolds the known correct values for all 10 fields, prefixed with `gt_` to avoid name collisions after merging. Update these values if you switch to a different test document."},"typeVersion":1},{"id":"a951b9cd-a29f-42db-904c-7a236b188f9d","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[832,176],"parameters":{"color":7,"width":288,"height":384,"content":"## 🔀 Merge Ground Truth\nCombines the extracted data (Input 1) with the ground truth values (Input 2) into a single item using positional merge. This puts both datasets side by side for comparison."},"typeVersion":1},{"id":"8f89e502-1420-43e8-8db6-4b1ee5224f51","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1136,-112],"parameters":{"color":7,"width":288,"height":384,"content":"## ✅ Validation\nCompares each extracted field against its ground truth value. Outputs a status per field (correct ✅ / incorrect ❌) and calculates the overall accuracy as a percentage."},"typeVersion":1},{"id":"7d2fa37b-5d86-4909-8a9e-e3095a1b73a8","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[1440,-112],"parameters":{"color":7,"width":288,"height":384,"content":"## 📊 Results\nDisplays the final report as a form completion page. Shows the accuracy percentage and a per-field breakdown so you can immediately see which fields were extracted correctly and which ones drifted."},"typeVersion":1},{"id":"3fefe62e-e5eb-45c3-9585-d5296790e0f8","name":"easybits: Data Extraction","type":"@easybits/n8n-nodes-extractor.easybitsExtractor","position":[320,96],"parameters":{},"typeVersion":2},{"id":"55f36569-dd9b-4957-ba75-e6df41977ffc","name":"Results in Form","type":"n8n-nodes-base.form","position":[1536,96],"webhookId":"","parameters":{"options":{},"operation":"completion","completionTitle":"Stresstest Results","completionMessage":"=Extraction Accuracy: {{ $json.accuracy_percent }}%<br><br>Vendor Name: {{ $json.vendor_name_status }}<br>Customer Name: {{ $json.customer_name_status }}<br>Invoice Number: {{ $json.invoice_number_status }}<br>Invoice Date: {{ $json.invoice_date_status }}<br>Billing Period: {{ $json.billing_period_status }}<br>Currency: {{ $json.currency_status }}<br>Total Amount: {{ $json.total_amount_status }}<br>Amount Paid: {{ $json.amount_paid_status }}<br>Amount Due: {{ $json.amount_due_status }}<br>Payment Status: {{ $json.payment_status_status }}"},"typeVersion":2.5}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"connections":{"Validation":{"main":[[{"node":"Results in Form","type":"main","index":0}]]},"Ground Truth":{"main":[[{"node":"Merge Ground Truth","type":"main","index":1}]]},"Document Upload":{"main":[[{"node":"easybits: Data Extraction","type":"main","index":0}]]},"Merge Ground Truth":{"main":[[{"node":"Validation","type":"main","index":0}]]},"easybits: Data Extraction":{"main":[[{"node":"Merge Ground Truth","type":"main","index":0},{"node":"Ground Truth","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":13,"nodeTypes":{"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.form":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.formTrigger":{"count":1},"@easybits/n8n-nodes-extractor.easybitsExtractor":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Felix","username":"easybits","bio":"Marketing Lead with a passion for automation and AI. I love working on smart workflows that automate repetitive manual tasks.","verified":true,"links":["https://easybits.tech/"],"avatar":"https://gravatar.com/avatar/af10d12444918e1d6cb3fd05bd68baa80b70744968fc8a216d369a58366eb634?r=pg&d=retro&size=200"},"nodes":[{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/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/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.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"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":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":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1274,"icon":"file:form.svg","name":"n8n-nodes-base.form","codex":{"data":{"alias":["_Form","form","table","submit","post","page","step","stage","multi"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.form/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Form"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":34,"name":"Invoice Processing"},{"id":49,"name":"AI Summarization"}],"image":[]}}