{"workflow":{"id":13786,"name":"Bulk generate payment reminder PDFs from NocoDB with Autype","views":19,"recentViews":0,"totalViews":19,"createdAt":"2026-03-01T20:16:26.950Z","description":"![Screenshot.png](fileId:4680)\n\n⚠️ Important: This workflow uses the Autype community node and requires a self-hosted n8n instance.\n\nThis workflow reads overdue invoices from a NocoDB database, generates a personalized **payment reminder PDF** for each record using the Autype Bulk Render API, and sends the resulting ZIP archive by email via SMTP. Days overdue are calculated automatically from the due date at runtime. Supported output formats: PDF, DOCX (Word), ODT.\n\n## Who is this for?\n\nFinance teams, accounting departments, and developers who want to automate recurring document generation from database records. Good fit for payment reminders, invoices, collection letters, dunning notices, or any business correspondence that goes out in batches.\n\n## What this workflow does\n\nIt reads all overdue invoices from a NocoDB table, maps each row to a set of document variables, and sends everything to the Autype Bulk Render API in a single batch request. The result is a ZIP archive with one PDF per invoice, which gets sent by email via SMTP on a weekly schedule.\n\nThe included payment reminder template includes:\n- Company logo in the header, page numbers in the footer\n- Customer name and full address block\n- Invoice details table with USD amounts\n- Styled table with alternating row colors\n- Automatic date insertion via `{{date/DD.MM.YYYY}}`\n- Days overdue calculated at runtime from `due_date` (no separate DB column needed)\n\nThere is also a **one-time setup flow** (orange sticky note) that creates the Autype project and document template via API.\n\n### NocoDB Table Structure\n\nCreate a table called **Overdue Invoices** with the following columns:\n\n| Column | Type | Example |\n|---|---|---|\n| `customer_name` | Text | Jane Smith |\n| `customer_address` | Text | 742 Evergreen Terrace, Springfield, IL 62704 |\n| `invoice_number` | Text | INV-2026-0042 |\n| `amount_due` | Number | 1,250.00 |\n| `due_date` | Date | 2026-02-15 |\n| `company_name` | Text | TechStart Inc. |\n\n&gt; `days_overdue` is not stored in the database. The workflow calculates it from `due_date` at runtime. Amounts are rendered in USD. Change the template if you need a different currency.\n\n### Test Data\n\nUse these two sample records to test the workflow:\n\n**Record 1:**\n| Column | Value |\n|---|---|\n| `customer_name` | Jane Smith |\n| `customer_address` | 742 Evergreen Terrace, Springfield, IL 62704 |\n| `invoice_number` | INV-2026-0042 |\n| `amount_due` | 1250.00 |\n| `due_date` | 2026-02-01 |\n| `company_name` | TechStart Inc. |\n\n**Record 2:**\n| Column | Value |\n|---|---|\n| `customer_name` | Robert Chen |\n| `customer_address` | 88 Innovation Drive, Suite 400, Austin, TX 73301 |\n| `invoice_number` | INV-2026-0078 |\n| `amount_due` | 3480.50 |\n| `due_date` | 2026-01-15 |\n| `company_name` | DataFlow GmbH |\n\n## How it works\n\n**One-time setup (run once, then disable):**\n1. **Run Setup Once** — triggers the setup flow manually.\n2. **Create Project** — creates an Autype project named \"Payment Reminders\".\n3. **Create Document** — creates the payment reminder template and returns the document ID.\n\n**Main flow (weekly):**\n4. **Weekly Schedule** — runs every Monday by default.\n5. **Get Overdue Invoices** — fetches all NocoDB rows where `due_date &lt; today`.\n6. **Build Bulk Items** — maps rows to Autype variable sets and calculates `daysOverdue` from `due_date`.\n7. **Bulk Render Payment Reminders** — sends all items in one API call, waits for completion, downloads the ZIP.\n8. **Send ZIP via Email** — sends the ZIP via SMTP to a print service, accounting inbox, or document archive.\n\n## Setup\n\n1. Install **n8n-nodes-autype** via **Settings → Community Nodes** (self-hosted n8n only).\n2. Get your API key at [app.autype.com](https://app.autype.com) → [API Keys](https://docs.autype.com/getting-started/editor/settings#api-keys).\n3. Add an **Autype API** credential in n8n and update `YOUR_CREDENTIAL_ID` in each Autype node.\n4. Set up a **NocoDB** instance and create the \"Overdue Invoices\" table with the columns listed above. Add NocoDB API credentials in n8n.\n5. Configure **SMTP** credentials in n8n for email delivery.\n6. **Run the one-time setup:** Click **Run Setup Once**, then copy the document `id` from the **Create Document** output and paste it into the `Build Bulk Items` code node (replace `YOUR_DOCUMENT_ID`). Then disable the setup nodes.\n\n**Tip:** It is easier to create and edit templates directly in the [Autype web editor](https://app.autype.com). The built-in AI agent can generate a full template from a single prompt. Once saved, the document ID is in the URL, e.g. `https://app.autype.com/document/a70a811d-a745-46f8-8eeb-bb9f2eb8cegb`. Use the **JSON/Markdown switch** to inspect the document JSON, or the **Bulk** tab to check the expected variable structure.\n\n**Note:** This is a community node so it Requires a self-hosted n8n instance.\n\n## Requirements\n\n- Self-hosted n8n instance (community nodes are not available on n8n Cloud)\n- Autype account with API key (free tier available, paid plan recommended for bulk rendering)\n- `n8n-nodes-autype` community node installed\n- NocoDB instance with API access\n- SMTP server for email delivery\n\n## How to customize\n\n- **Currency:** Change `$ {{amountDue}}` in the document JSON to any other symbol if needed.\n- **Output format:** Set `document.type` to `docx` or `odt` for Word or OpenDocument output.\n- **Data source:** The NocoDB node can be swapped for Google Sheets, Airtable, PostgreSQL, MySQL, or any other n8n data source. Just map the field names in the Code node.\n- **Document type:** Replace the payment reminder layout with invoices, contracts, certificates, or any other document. Update the template and variable mappings to match.\n- **Individual emails:** Use Split In Batches to loop over the output and send each PDF to the corresponding customer directly.\n- **Schedule:** Adjust the Schedule Trigger to run daily, monthly, or swap it for a webhook trigger.\n- **JSON syntax:** All available document elements are documented in the [Autype JSON Syntax Reference](https://docs.autype.com/api-reference/json-syntax/overview).\n- **Post-processing:** The [Autype Tools API](https://docs.autype.com/api-reference/introduction) supports watermarks, password protection, compression, merging, and format conversion.","workflow":{"id":"bulk-payment-reminders-nocodb","meta":{"instanceId":"autype-template"},"name":"A05: Bulk Generate Payment Reminder PDFs from NocoDB and Email as ZIP","tags":[],"nodes":[{"id":"2c511a10-6407-49cc-8c4e-27af2ba99e40","name":"Weekly Schedule","type":"n8n-nodes-base.scheduleTrigger","position":[2464,1376],"parameters":{"rule":{"interval":[{"field":"weeks","triggerAtDay":[1]}]}},"typeVersion":1.2},{"id":"02203b42-9e35-40f9-8a49-c26f892612d8","name":"Get Overdue Invoices","type":"n8n-nodes-base.nocoDb","position":[2704,1376],"parameters":{"table":"YOUR_TABLE_ID","options":{},"operation":"getAll","projectId":"YOUR_NOCODB_BASE_ID","returnAll":true,"authentication":"nocoDbApiToken"},"credentials":{"nocoDbApiToken":{"id":"credential-id","name":"NocoDB account"}},"typeVersion":3},{"id":"f9a88e7f-c613-4d77-a358-b41dbe7b1f70","name":"Build Bulk Items","type":"n8n-nodes-base.code","position":[2928,1376],"parameters":{"jsCode":"const rows = $input.all();\nconst today = new Date();\ntoday.setHours(0, 0, 0, 0);\n\nconst items = rows.map(row => {\n  const dueDate = new Date(row.json.due_date);\n  const diffMs = today.getTime() - dueDate.getTime();\n  const daysOverdue = Math.max(0, Math.floor(diffMs / (1000 * 60 * 60 * 24)));\n\n  return {\n    customerName: row.json.customer_name || '',\n    customerAddress: row.json.customer_address || '',\n    invoiceNumber: row.json.invoice_number || '',\n    amountDue: String(row.json.amount_due || '0.00'),\n    dueDate: row.json.due_date || '',\n    daysOverdue: String(daysOverdue),\n    companyName: row.json.company_name || ''\n  };\n});\n\nreturn [{ json: { documentId: 'YOUR_DOCUMENT_ID', items: JSON.stringify(items) } }];"},"typeVersion":2},{"id":"05562054-062f-4121-b22f-f20e77369845","name":"Bulk Render Payment Reminders","type":"n8n-nodes-autype.autype","position":[3184,1376],"parameters":{"items":"={{ $json.items }}","resource":"bulkRender","documentId":"={{ $json.documentId }}","downloadOutput":true,"additionalFields":{}},"credentials":{"autypeApi":{"id":"credential-id","name":"Autype account"}},"typeVersion":1},{"id":"4d1b747a-5366-4558-b3de-0e034334026a","name":"Send ZIP via Email","type":"n8n-nodes-base.emailSend","position":[3408,1376],"parameters":{"options":{"attachments":"data"},"subject":"=Payment Reminders — {{ $now.format('yyyy-MM-dd') }} ({{ $('Get Overdue Invoices').all().length }} documents)","toEmail":"user@example.com","fromEmail":"user@example.com"},"credentials":{"smtp":{"id":"credential-id","name":"SMTP account"}},"typeVersion":2.1},{"id":"805ee819-4af6-4540-b4a6-0b5e2db6e7bb","name":"Run Setup Once","type":"n8n-nodes-base.manualTrigger","position":[2928,832],"parameters":{},"typeVersion":1},{"id":"72c5debc-9426-497c-914c-cd6e37706116","name":"Create Project","type":"n8n-nodes-autype.autype","position":[3136,832],"parameters":{"name":"Payment Reminders","resource":"document","operation":"createProject","projectAdditionalFields":{"description":"Bulk payment reminder letters — created by n8n"}},"credentials":{"autypeApi":{"id":"credential-id","name":"Autype account"}},"typeVersion":1},{"id":"d414631e-d8b6-418f-9885-9e6428f1f263","name":"Create Document","type":"n8n-nodes-autype.autype","position":[3360,832],"parameters":{"title":"Payment Reminder — Template","resource":"document","operation":"createDocument","projectId":"={{ $json.id }}","additionalFields":{"content":"{\n  \"document\": {\n    \"size\": \"A4\",\n    \"type\": \"pdf\",\n    \"marginTop\": 2.5,\n    \"marginLeft\": 2.5,\n    \"marginRight\": 2.5,\n    \"orientation\": \"portrait\",\n    \"marginBottom\": 2.5\n  },\n  \"variables\": {\n    \"dueDate\": \"2026-01-01\",\n    \"amountDue\": \"0.00\",\n    \"companyName\": \"Company Name\",\n    \"daysOverdue\": \"0\",\n    \"customerName\": \"Customer Name\",\n    \"invoiceNumber\": \"INV-0000\",\n    \"customerAddress\": \"123 Main Street, Suite 100, New York, NY 10001\"\n  },\n  \"defaults\": {\n    \"chart\": {\n      \"colors\": [\n        \"#3b82f6\",\n        \"#ef4444\",\n        \"#10b981\",\n        \"#f59e0b\",\n        \"#8b5cf6\"\n      ],\n      \"borderColors\": [\n        \"#2563eb\",\n        \"#dc2626\",\n        \"#059669\",\n        \"#d97706\",\n        \"#7c3aed\"\n      ]\n    },\n    \"color\": \"#1a1a2e\",\n    \"footer\": {\n      \"excludeFirstPage\": false\n    },\n    \"header\": {\n      \"left\": {\n        \"src\": \"https://img.icons8.com/?size=100&id=e9femSksvyZL&format=png&color=6700FF\",\n        \"type\": \"image\",\n        \"width\": 40\n      },\n      \"right\": \"ACME Corp.\",\n      \"center\": \"\",\n      \"excludeFirstPage\": false\n    },\n    \"styles\": {\n      \"h1\": {\n        \"color\": \"#1a1a2e\",\n        \"fontSize\": 22,\n        \"fontWeight\": \"bold\"\n      },\n      \"h2\": {\n        \"color\": \"#1a1a2e\",\n        \"fontSize\": 16,\n        \"fontWeight\": \"bold\"\n      },\n      \"h3\": {\n        \"color\": \"#6700ff\",\n        \"fontSize\": 13,\n        \"fontWeight\": \"bold\"\n      },\n      \"text\": {\n        \"color\": \"#3d3d5c\",\n        \"fontSize\": 11\n      },\n      \"table\": {\n        \"rows\": {\n          \"align\": \"left\",\n          \"color\": \"#1a1a2e\",\n          \"backgroundColor\": \"#ffffff\",\n          \"alternateBackgroundColor\": \"#f5f0ff\"\n        },\n        \"header\": {\n          \"align\": \"left\",\n          \"color\": \"#ffffff\",\n          \"fontWeight\": \"bold\",\n          \"backgroundColor\": \"#6700ff\"\n        },\n        \"borders\": {\n          \"inner\": {\n            \"color\": \"#e0d4f5\",\n            \"style\": \"solid\",\n            \"width\": 1\n          },\n          \"outer\": {\n            \"color\": \"#6700ff\",\n            \"width\": 1\n          }\n        },\n        \"cellPadding\": {\n          \"top\": 6,\n          \"left\": 10,\n          \"right\": 10,\n          \"bottom\": 6\n        }\n      },\n      \"text2\": {\n        \"color\": \"#6b6b8a\",\n        \"fontSize\": 9\n      }\n    },\n    \"spacing\": {\n      \"after\": {\n        \"h1\": 15,\n        \"h2\": 12,\n        \"h3\": 10,\n        \"h4\": 8,\n        \"h5\": 6,\n        \"h6\": 5,\n        \"code\": 15,\n        \"list\": 10,\n        \"math\": 15,\n        \"text\": 10,\n        \"chart\": 15,\n        \"image\": 15,\n        \"table\": 15\n      },\n      \"before\": {\n        \"h1\": 20,\n        \"h2\": 18,\n        \"h3\": 16,\n        \"h4\": 14,\n        \"h5\": 12,\n        \"h6\": 10,\n        \"code\": 10,\n        \"list\": 10,\n        \"math\": 10,\n        \"text\": 0,\n        \"chart\": 10,\n        \"image\": 10,\n        \"table\": 10\n      }\n    },\n    \"fontSize\": 11,\n    \"fontFamily\": \"Arial\",\n    \"lineHeight\": 1.5\n  },\n  \"sections\": [\n    {\n      \"type\": \"flow\",\n      \"content\": [\n        {\n          \"id\": \"90188293-9f44-4955-802d-5db337b067ed\",\n          \"type\": \"spacer\",\n          \"height\": 1\n        },\n        {\n          \"id\": \"fdbce060-74f9-4b57-b73a-211733d90ca9\",\n          \"type\": \"h1\",\n          \"text\": \"Payment Reminder\"\n        },\n        {\n          \"id\": \"34f98687-22e4-41fb-ae69-601a85995afb\",\n          \"type\": \"spacer\",\n          \"height\": 0.5\n        },\n        {\n          \"id\": \"bac9709e-948c-4f76-842b-3620d8e9a0cd\",\n          \"type\": \"text\",\n          \"text\": \"Date: {{date/DD.MM.YYYY}}\",\n          \"align\": \"right\"\n        },\n        {\n          \"id\": \"1cff82c8-34aa-40cd-ac4b-5629f0eb54b8\",\n          \"type\": \"spacer\",\n          \"height\": 0.5\n        },\n        {\n          \"id\": \"091ce85f-c2a4-4ec9-956b-0e7bc71a8c2c\",\n          \"type\": \"text\",\n          \"text\": \"**To:** {{customerName}}\"\n        },\n        {\n          \"id\": \"6f0c0ef2-e8a9-498c-a510-20b4cba5883a\",\n          \"type\": \"variableRef\",\n          \"variable\": \"customerAddress\"\n        },\n        {\n          \"id\": \"14807236-2bab-4f49-892c-bd94ec413159\",\n          \"type\": \"text\",\n          \"text\": \"**Company:** {{companyName}}\"\n        },\n        {\n          \"id\": \"cdc2ed22-16f6-4a9f-bd3d-d89c1cb92995\",\n          \"type\": \"spacer\",\n          \"height\": 1\n        },\n        {\n          \"id\": \"acce4af3-1043-4678-aa37-5ef18f35e669\",\n          \"type\": \"h3\",\n          \"text\": \"Re: Outstanding Invoice {{invoiceNumber}}\",\n          \"align\": \"left\"\n        },\n        {\n          \"id\": \"ee95da49-6161-459b-8dc6-d2365e108bbe\",\n          \"type\": \"text\",\n          \"text\": \"Dear {{customerName}},\"\n        },\n        {\n          \"id\": \"2e7d822e-7494-4a2b-b683-d8be82274f05\",\n          \"type\": \"text\",\n          \"text\": \"We are writing to remind you that the following invoice remains unpaid and is now **{{daysOverdue}} days past due**. We kindly ask you to arrange payment at your earliest convenience.\"\n        },\n        {\n          \"id\": \"cdb9f391-be34-4f0e-92e4-0cb4ff9ade99\",\n          \"type\": \"table\",\n          \"headers\": [\n            \"Detail\",\n            \"Value\"\n          ],\n          \"rows\": [\n            [\n              \"Invoice Number\",\n              \"{{invoiceNumber}}\"\n            ],\n            [\n              \"Amount Due\",\n              \"$ {{amountDue}}\"\n            ],\n            [\n              \"Original Due Date\",\n              \"{{dueDate}}\"\n            ],\n            [\n              \"Days Overdue\",\n              \"{{daysOverdue}}\"\n            ]\n          ]\n        },\n        {\n          \"id\": \"5ebb7457-cfc6-4e01-9e52-1bcbc47961a1\",\n          \"type\": \"text\",\n          \"text\": \"If you have already made this payment, please disregard this notice. Otherwise, we would appreciate receiving your payment within the next **7 business days**.\"\n        },\n        {\n          \"id\": \"7adfaded-fd43-40a6-bab8-60cff9658f8d\",\n          \"type\": \"text\",\n          \"text\": \"For questions or payment arrangements, please contact our accounting department at **user@example.com** or call **+1234567890**.\"\n        },\n        {\n          \"id\": \"c3cd3caa-8a8e-4833-b150-5ea2cdf0dbaf\",\n          \"type\": \"spacer\",\n          \"height\": 1.5\n        },\n        {\n          \"id\": \"5f5aa06a-913c-4a7e-afe4-597db81ba37a\",\n          \"type\": \"text\",\n          \"text\": \"Kind regards,\"\n        },\n        {\n          \"id\": \"a34431e0-558f-4228-8c2e-74c6c5bc3f83\",\n          \"type\": \"spacer\",\n          \"height\": 0.5\n        },\n        {\n          \"id\": \"5407e705-3393-4457-9dca-36f4b23b20a7\",\n          \"type\": \"text\",\n          \"text\": \"**ACME Corp.**\"\n        },\n        {\n          \"id\": \"55ec3ddf-6c06-4b58-89c4-abbfccebb53e\",\n          \"type\": \"text2\",\n          \"text\": \"Accounting Department\"\n        },\n        {\n          \"id\": \"096415ff-cda2-4b26-83c6-f9b17bbd512a\",\n          \"type\": \"text2\",\n          \"text\": \"This is an automatically generated document. Invoice reference: {{invoiceNumber}}. Generated on {{date/DD.MM.YYYY}}.\"\n        }\n      ]\n    }\n  ]\n}","description":"Payment reminder letter template with variable placeholders for bulk generation via n8n."}},"credentials":{"autypeApi":{"id":"credential-id","name":"Autype account"}},"typeVersion":1},{"id":"19aa75b8-5b33-4c86-9d3a-67d900846bc2","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[1904,672],"parameters":{"width":484,"height":872,"content":"## Bulk Generate Payment Reminder PDFs from NocoDB\n\nThis workflow reads overdue invoices from a **NocoDB table**, generates a **personalized payment reminder PDF** for each record using the Autype Bulk Render API, and emails the resulting **ZIP archive** via SMTP — ideal for print-by-email services or internal distribution.\n\n### Variable Types Used\n- **String** — customer name, address, invoice number, company name, due date\n- **Number** — amount due (USD), days overdue (auto-calculated)\n\n### How it works\n1. **Weekly Schedule** — Triggers every Monday (configurable).\n2. **Get Overdue Invoices** — Reads all NocoDB rows where .\n3. **Build Bulk Items** — Transforms rows into variable sets. Calculates days overdue automatically.\n4. **Bulk Render** — Sends all items to Autype in a single batch. Downloads the ZIP.\n5. **Send ZIP via Email** — Attaches the ZIP to an email sent via SMTP.\n\n### One-time Setup\nUse the orange setup flow above to create the project and template document via API, then copy the document ID into the **Build Bulk Items** code node.\n\n### Requirements\n- **n8n-nodes-autype** community node (self-hosted n8n)\n- Autype API key from [app.autype.com](https://app.autype.com)\n- NocoDB instance with an \"Overdue Invoices or Cutomers\" table\n- SMTP credentials for email delivery"},"typeVersion":1},{"id":"8edda517-e409-4f43-9e0e-05b363dd51ba","name":"Sticky Note Setup","type":"n8n-nodes-base.stickyNote","position":[2896,688],"parameters":{"color":6,"width":708,"height":296,"content":"### One-time Setup\nRun once to create the Autype project and payment reminder template document. Copy the returned document ID into the Build Bulk Items node. Then disable these nodes."},"typeVersion":1},{"id":"8896fde8-7fc4-4e25-a306-ffc9d3f991e1","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[2624,1104],"parameters":{"color":7,"width":248,"height":444,"content":"### 1. Get Overdue Invoices\nReads all rows from NocoDB where . Columns: \n- customer_name (text)\n- customer_address (text)\n- invoice_number (Number)\n- amount_due (Number)\n- due_date (date YYYY-MM-DD)\n- company_name (text)"},"typeVersion":1},{"id":"3dffd950-396c-4cd5-917f-8c5579df2b95","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[2896,1232],"parameters":{"color":7,"width":200,"height":312,"content":"### 2. Build Bulk Items\nMaps NocoDB rows to Autype variable sets. Calculates  from  vs. today. Sets the document ID."},"typeVersion":1},{"id":"67588e30-a21c-4e9d-a9e9-9bac1ac04d4b","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[3120,1232],"parameters":{"color":7,"width":216,"height":312,"content":"### 3. Bulk Render\nSends all variable sets in one request. Downloads the output as a ZIP archive containing one PDF per invoice."},"typeVersion":1},{"id":"f9cd7ce9-10f8-4523-98a2-c9dcb1ecf0d1","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[3360,1232],"parameters":{"color":7,"width":248,"height":312,"content":"### 4. Send ZIP via Email\nEmails the ZIP to a printer service, accounting team, or archive mailbox via SMTP."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","executionOrder":"v1"},"versionId":"a5-v3","connections":{"Create Project":{"main":[[{"node":"Create Document","type":"main","index":0}]]},"Run Setup Once":{"main":[[{"node":"Create Project","type":"main","index":0}]]},"Weekly Schedule":{"main":[[{"node":"Get Overdue Invoices","type":"main","index":0}]]},"Build Bulk Items":{"main":[[{"node":"Bulk Render Payment Reminders","type":"main","index":0}]]},"Get Overdue Invoices":{"main":[[{"node":"Build Bulk Items","type":"main","index":0}]]},"Bulk Render Payment Reminders":{"main":[[{"node":"Send ZIP via Email","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":14,"nodeTypes":{"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.nocoDb":{"count":1},"n8n-nodes-autype.autype":{"count":3},"n8n-nodes-base.emailSend":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"8Automator","username":"kesim0","bio":"Software Developer with 6+ years of experience based in Bavaria, Germany. I specialize in building business automation solutions, integrations, and tools with n8n to streamline workflows and improve efficiency.","verified":true,"links":[""],"avatar":"https://gravatar.com/avatar/752654f7c39695b04e1c549d8ec67c3cd526e8a97843ec25601baab4a707541e?r=pg&d=retro&size=200"},"nodes":[{"id":11,"icon":"fa:envelope","name":"n8n-nodes-base.emailSend","codex":{"data":{"alias":["SMTP","email","human","form","wait","hitl","approval"],"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/sendemail/"}]},"categories":["Communication","HITL","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Send Email","color":"#00bb88"},"iconData":{"icon":"envelope","type":"icon"},"displayName":"Send Email","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":9,"name":"Core Nodes"},{"id":28,"name":"HITL"}]},{"id":510,"icon":"file:nocodb.svg","name":"n8n-nodes-base.nocoDb","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.nocodb/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/nocodb/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"NocoDB"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJub25lIj48cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iIzNENDNENSIgcng9IjI1Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTM4IDkzLjkwNyAyOS43NiAyOS4wMDZ2NDUuOTJIMzh6bTEyNS02MS42NjV2MTI1LjQxN2MwIDguMDc4LTQuNDk4IDExLjM0MS0xMS43NDIgMTEuMzQxLTEuMzMzIDAtMy43MjUtLjUwMS01Ljc5My0yLjUwMkwzOCA2NS4zMjhWNDIuODRDMzggMzQuNzYzIDQxLjM2MyAzMS41IDQ5LjcyMyAzMS41YzEuMzMzIDAgNC4wMS41MiA2LjA2IDIuNTAybDc3LjQzOCA3MS45MjNWMzIuMjQyeiIvPjwvc3ZnPg=="},"displayName":"NocoDB","typeVersion":3,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"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"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":34,"name":"Invoice Processing"},{"id":51,"name":"Multimodal AI"}],"image":[{"id":4680,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Screenshot_2026_03_01_at_21_00_55_11a71e8d12.png"}]}}