Automatisierung von QuickBooks-Rechnungen zu benutzerdefinierten PDFs und E-Mails
Experte
Dies ist ein Invoice Processing-Bereich Automatisierungsworkflow mit 19 Nodes. Hauptsächlich werden Code, Html, Merge, Webhook, EmailSend und andere Nodes verwendet. Benutzerdefinierte QuickBooks-Rechnungen mit Markenzeichen mit Gotenberg in PDF konvertieren und per E-Mail versenden
Voraussetzungen
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Verwendete Nodes (19)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"id": "2hX0dXVASiaWn1Vg",
"meta": {
"instanceId": "e727f992f69a44655d3d4d5a1d4a30ca3ec1573139240bc4d84b17b8f66642c8",
"templateCredsSetupCompleted": true
},
"name": "Automated QuickBooks Invoice to Custom PDF & Email",
"tags": [],
"nodes": [
{
"id": "05599a83-f5c2-46db-8864-53c9e1b45f0d",
"name": "Auf neue QuickBooks-Rechnung warten",
"type": "n8n-nodes-base.webhook",
"position": [
512,
1248
],
"webhookId": "f94d4908-7ef3-42b7-aa27-d6028475d32c",
"parameters": {
"path": "qbo-invoice-webhook",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"id": "1dc144aa-6849-4e95-a4d1-1f9c80b16b63",
"name": "Rechnungsdaten aus QuickBooks abrufen",
"type": "n8n-nodes-base.quickbooks",
"position": [
1248,
976
],
"parameters": {
"resource": "invoice",
"invoiceId": "={{ $json.body.eventNotifications[0].dataChangeEvent.entities[0].id }}"
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "r3A6wRAzyp859vQL",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "b56096d7-37cf-41b7-ab77-ebb35c176e01",
"name": "Firmenlogo-Bild abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
880,
1248
],
"parameters": {
"url": "https://www.logomyway.com/logos_new/32474/CLEARWATER-HUDSON_497267718070.png",
"options": {},
"responseFormat": "file",
"dataPropertyName": "logodata"
},
"typeVersion": 1
},
{
"id": "97f6e4f4-82c8-4bbd-bad2-a02f69ca6150",
"name": "Firmensignatur-Bild abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
880,
1600
],
"parameters": {
"url": "https://upload.wikimedia.org/wikipedia/commons/2/27/Narf_signature.png",
"options": {},
"responseFormat": "file",
"dataPropertyName": "signaturedata"
},
"typeVersion": 1
},
{
"id": "7b5653c7-4483-463c-a7e2-fab408ea1f91",
"name": "Logo in Base64 konvertieren",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1248,
1248
],
"parameters": {
"options": {},
"operation": "binaryToPropery",
"destinationKey": "logodata",
"binaryPropertyName": "logodata"
},
"typeVersion": 1
},
{
"id": "4fa1d59c-2ace-4251-a0db-49b62d18f62a",
"name": "Signatur in Base64 konvertieren",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1248,
1424
],
"parameters": {
"options": {},
"operation": "binaryToPropery",
"destinationKey": "signaturedata",
"binaryPropertyName": "signaturedata"
},
"typeVersion": 1
},
{
"id": "38d30ac3-298c-4731-a7b3-d45ac80abb25",
"name": "Rechnung, Logo & Signatur kombinieren",
"type": "n8n-nodes-base.merge",
"position": [
1472,
1232
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "8539ed24-374b-4ecb-b152-ef6d76365f0b",
"name": "Alle Daten für Vorlage aufbereiten",
"type": "n8n-nodes-base.code",
"position": [
1680,
1248
],
"parameters": {
"jsCode": "// This is the final, production-ready code. It fixes the \"PAID\" stamp logic.\n\nconst items = $items(\"Combine Invoice, Logo & Signature\"); // Ensure this is the correct name of your Merge node\n\n// Step 1: Correctly access the data\nconst invoiceData = items[0].json;\nconst logoJson = items[1].json;\nconst signatureJson = items[2].json;\n\n// Step 2: Safety check\nif (!logoJson || !logoJson.logodata || !signatureJson || !signatureJson.signaturedata) {\n throw new Error(\"Could not find 'logodata' or 'signaturedata' properties. Check the nodes providing the images.\");\n}\n\n// Step 3: Create the full, correct Data URI for the images\nconst logoSrc = `data:image/png;base64,${logoJson.logodata}`;\nconst signatureSrc = `data:image/png;base64,${signatureJson.signaturedata}`;\n\n// Step 4: Format dates professionally\nfunction formatDate(dateString) {\n if (!dateString) return 'N/A';\n const options = { year: 'numeric', month: 'long', day: 'numeric' };\n return new Date(dateString + 'T00:00:00-00:00').toLocaleDateString('en-US', options);\n}\n\n// Step 5: Build the HTML for the line items\nlet lineItemsHtml = '';\nfor (const item of invoiceData.Line) {\n if (item.DetailType === 'SalesItemLineDetail') {\n // Added a subtle grey color for the description for a more refined look\n const description = item.Description ? `<br><span style=\"color: #718096; font-size: 0.85rem;\">${item.Description}</span>` : '';\n lineItemsHtml += `\n <tr>\n <td><strong>${item.SalesItemLineDetail.ItemRef.name || 'N/A'}</strong>${description}</td>\n <td class=\"text-center\">${item.SalesItemLineDetail.Qty || 1}</td>\n <td class=\"text-right\">$${(item.SalesItemLineDetail.UnitPrice || 0).toFixed(2)}</td>\n <td class=\"text-right\">$${(item.Amount || 0).toFixed(2)}</td>\n </tr>`;\n }\n}\n\n// Step 6: THE FIX - Conditionally create the PAID stamp HTML\nlet paidStampHtml = '';\n// Only if the balance is zero or less, create the entire div. Otherwise, it's an empty string.\nif (invoiceData.Balance <= 0) {\n paidStampHtml = '<div class=\"paid-stamp\">PAID</div>';\n}\n\n// Step 7: Return the final JSON object\nreturn [{\n json: {\n customerName: invoiceData.CustomerRef.name,\n customerEmail: invoiceData.BillEmail.Address,\n invoiceNumber: invoiceData.DocNumber,\n invoiceDate: formatDate(invoiceData.TxnDate),\n dueDate: formatDate(invoiceData.DueDate),\n lineItems: lineItemsHtml,\n subtotal: (invoiceData.TotalAmt - invoiceData.TxnTaxDetail.TotalTax).toFixed(2),\n tax: (invoiceData.TxnTaxDetail.TotalTax).toFixed(2),\n balanceDue: (invoiceData.Balance).toFixed(2),\n notes: invoiceData.CustomerMemo.value,\n paymentTerms: invoiceData.SalesTermRef.name,\n logoSrc: logoSrc,\n signatureSrc: signatureSrc,\n paidStampHtml: paidStampHtml // Pass the conditional HTML to the template\n }\n}];"
},
"typeVersion": 2
},
{
"id": "2fdd3ef9-ef1f-42a5-8a29-64e439645e83",
"name": "HTML-Rechnung aus Daten erstellen",
"type": "n8n-nodes-base.html",
"position": [
1888,
1248
],
"parameters": {
"html": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>Invoice #{{$json.invoiceNumber}}</title>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap\" rel=\"stylesheet\">\n <style>\n @page {\n size: A4;\n margin: 1.5cm;\n @bottom-center {\n content: \"Page \" counter(page) \" of \" counter(pages);\n font-family: 'Inter', sans-serif;\n font-size: 9pt;\n color: #999;\n padding-top: 10px;\n border-top: 1px solid #e0e0e0;\n width: 100%;\n }\n }\n body {\n font-family: 'Inter', sans-serif;\n color: #212529;\n font-size: 9pt;\n line-height: 1.5;\n }\n .invoice-wrapper { width: 100%; }\n thead { display: table-header-group; }\n tbody { display: table-row-group; }\n tr { page-break-inside: avoid; }\n .header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 3px solid #0d2a4b;\n margin-bottom: 40px;\n }\n .company-logo { max-width: 180px; max-height: 70px; }\n .invoice-title { text-align: right; }\n .invoice-title h1 {\n margin: 0;\n font-size: 26pt;\n color: #0d2a4b;\n font-weight: 700;\n }\n .invoice-title p {\n margin: 2px 0 0 0;\n color: #5a6a7b;\n font-size: 10pt;\n }\n .meta-section {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 30px;\n margin-bottom: 40px;\n font-size: 9pt;\n }\n .meta-section strong {\n display: block;\n margin-bottom: 6px;\n color: #8898aa;\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-size: 8pt;\n }\n .meta-section span { color: #212529; }\n .line-items-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 20px;\n }\n .line-items-table th {\n padding: 8px 5px;\n background-color: #f8f9fa;\n border-bottom: 2px solid #dee2e6;\n /* text-align: left; <-- THE BUGGY LINE IS NOW REMOVED */\n font-size: 8pt;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-weight: 700;\n color: #495057;\n }\n .line-items-table td {\n padding: 8px 5px;\n border-bottom: 1px solid #edf2f7;\n vertical-align: top;\n }\n .item-description { font-size: 8.5pt; color: #6c757d; }\n .text-right { text-align: right; }\n .text-left { text-align: left; }\n .text-center { text-align: center; }\n .summary-section {\n page-break-inside: avoid !important;\n }\n .totals-section {\n display: flex;\n justify-content: flex-end;\n margin-top: 20px;\n }\n .totals-table {\n width: 100%;\n max-width: 400px;\n }\n .totals-table td {\n padding: 10px 12px;\n }\n .totals-table .label {\n color: #495057;\n text-align: right;\n }\n .totals-table .amount {\n font-weight: 700;\n text-align: right;\n font-size: 10pt;\n }\n .grand-total {\n border-top: 3px solid #0d2a4b;\n background-color: #f8f9fa;\n }\n .grand-total .label, .grand-total .amount {\n color: #0d2a4b;\n font-size: 14pt;\n font-weight: 700;\n }\n .footer {\n margin-top: 40px;\n padding-top: 20px;\n border-top: 1px solid #e0e0e0;\n font-size: 9pt;\n color: #6c757d;\n }\n .footer strong { color: #343a40; }\n .signature { max-height: 40px; margin-top: 15px; }\n </style>\n</head>\n<body>\n <div class=\"invoice-wrapper\">\n <header class=\"header\">\n <div>\n <img src=\"{{$json.logoSrc}}\" alt=\"Company Logo\" class=\"company-logo\">\n </div>\n <div class=\"invoice-title\">\n <h1>INVOICE</h1>\n <p>Invoice # {{$json.invoiceNumber}}</p>\n </div>\n </header>\n \n <section class=\"meta-section\">\n <div>\n <strong>Bill To</strong>\n <span>{{$json.customerName}}</span><br>\n <span>{{$json.customerEmail}}</span>\n </div>\n <div>\n <strong>Payable To</strong>\n <span>YOUR COMPANY NAME</span><br>\n <span>123 Your Street, Your City, State, Postal Code</span>\n </div>\n <div>\n <strong>Dates</strong>\n <span>Date of Issue: {{$json.invoiceDate}}</span><br>\n <span>Due Date: {{$json.dueDate}}</span>\n </div>\n </section>\n\n <table class=\"line-items-table\">\n <thead>\n <tr>\n <th class=\"text-left\" style=\"width: 50%;\">Item & Description</th>\n <th class=\"text-center\" style=\"width: 15%;\">Quantity</th>\n <th class=\"text-right\" style=\"width: 15%;\">Rate</th>\n <th class=\"text-right\" style=\"width: 20%;\">Amount</th>\n </tr>\n </thead>\n <tbody>\n {{$json.lineItems}}\n </tbody>\n </table>\n \n <div class=\"summary-section\">\n <section class=\"totals-section\">\n <table class=\"totals-table\">\n <tr>\n <td class=\"label\">Subtotal</td>\n <td class=\"amount\">${{$json.subtotal}}</td>\n </tr>\n <tr>\n <td class=\"label\">Tax</td>\n <td class=\"amount\">${{$json.tax}}</td>\n </tr>\n <tr class=\"grand-total\">\n <td class=\"label\">Balance Due</td>\n <td class=\"amount\">${{$json.balanceDue}}</td>\n </tr>\n </table>\n </section>\n \n <footer class=\"footer\">\n <strong>Payment Terms: {{$json.paymentTerms}}</strong>\n <p>{{$json.notes}}</p>\n <img src=\"{{$json.signatureSrc}}\" alt=\"Signature\" class=\"signature\">\n <p>Your Name, Your Title</p>\n </footer>\n </div>\n </div>\n</body>\n</html>"
},
"typeVersion": 1.2
},
{
"id": "905e1af5-3c1d-4a57-9df6-f7d0683f486a",
"name": "HTML in Binärdatei konvertieren",
"type": "n8n-nodes-base.convertToFile",
"position": [
2096,
1248
],
"parameters": {
"options": {
"encoding": "utf8",
"fileName": "index.html"
},
"operation": "toText",
"sourceProperty": "html"
},
"typeVersion": 1.1
},
{
"id": "14bf3ebc-3a0f-468c-b650-6b282fe7f572",
"name": "PDF über Gotenberg generieren",
"type": "n8n-nodes-base.httpRequest",
"position": [
2368,
1248
],
"parameters": {
"url": "http://yourGotenBergInstanceURL/forms/chromium/convert/html",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "files",
"parameterType": "formBinaryData",
"inputDataFieldName": "=data"
},
{
"name": "scale",
"value": "1"
},
{
"name": "metadata",
"value": "={\"Author\":\"IA2S\",\"Copyright\":\"IA2S\",\"CreateDate\":\"{{ $now.format('yyyy-MM-dd') }}\",\"Creator\":\"IA2S\",\"Keywords\":[],\"ModDate\":\"{{ $now.format('yyyy-MM-dd') }}\",\"PDFVersion\":1.7,\"Producer\":\"IA2S\",\"Subject\":\"PDF\",\"Title\":\"IA2S PDF\"}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Gotenberg-Output-Filename",
"value": "={{ $('Prepare All Data for Template').item.json.invoiceNumber }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "fc4105a5-f50c-4ac8-8010-a0ba82ffdf11",
"name": "PDF-Rechnung an Kunden senden",
"type": "n8n-nodes-base.emailSend",
"position": [
2704,
1248
],
"webhookId": "c88f607c-5e1e-4f9e-aa2c-2f69df6e29cc",
"parameters": {
"html": "=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <style>\n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n margin: 0;\n padding: 0;\n background-color: #f4f4f7;\n }\n .container {\n max-width: 600px;\n margin: 20px auto;\n background-color: #ffffff;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n padding: 40px;\n line-height: 1.6;\n color: #333333;\n }\n .header {\n text-align: center;\n margin-bottom: 30px;\n }\n .header h1 {\n color: #0d2a4b;\n margin: 0;\n }\n .content p {\n font-size: 16px;\n }\n .invoice-details {\n background-color: #f8f9fa;\n padding: 20px;\n border-radius: 5px;\n margin: 30px 0;\n font-size: 15px;\n }\n .invoice-details strong {\n color: #0d2a4b;\n }\n .footer {\n text-align: center;\n margin-top: 40px;\n font-size: 12px;\n color: #888888;\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"header\">\n <!-- You can optionally place your logo URL here -->\n <!-- <img src=\"URL_TO_YOUR_LOGO\" alt=\"Your Company Name\" style=\"max-width: 180px; margin-bottom: 20px;\"> -->\n <h1>New Invoice from YOUR COMPANY NAME</h1>\n </div>\n\n <div class=\"content\">\n <p>Hi {{$node[\"Prepare All Data for Template\"].json.customerName}},</p>\n \n <p>We hope you are doing well.</p>\n \n <p>A new invoice has been generated for you. You can find a detailed PDF version of the invoice attached to this email.</p>\n \n <div class=\"invoice-details\">\n <strong>Summary:</strong><br>\n Invoice Number: {{$node[\"Prepare All Data for Template\"].json.invoiceNumber}}<br>\n Balance Due: ${{$node[\"Prepare All Data for Template\"].json.balanceDue}}\n </div>\n \n <p>If you have any questions or concerns, please don't hesitate to contact us.</p>\n \n <p>Thank you for your business!</p>\n \n <p>\n Best regards,<br>\n The Team at YOUR COMPANY NAME\n </p>\n </div>\n\n <div class=\"footer\">\n <p>YOUR COMPANY NAME | Your Address | Your Phone Number</p>\n </div>\n </div>\n</body>\n</html>",
"options": {
"attachments": "=data"
},
"subject": "=Invoice {{$node[\"Prepare All Data for Template\"].json.invoiceNumber}} from YOUR COMPANY NAME",
"toEmail": "company.ebtech@gmail.com",
"fromEmail": "={{$node[\"Prepare All Data for Template\"].json.customerEmail}}"
},
"credentials": {
"smtp": {
"id": "ZSjtbi8UmObTzmbO",
"name": "SMTP account"
}
},
"typeVersion": 2.1
},
{
"id": "af2a01c1-65a8-49a5-8b34-ce853125a5bf",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1168,
416
],
"parameters": {
"color": 5,
"width": 1264,
"height": 1824,
"content": "# Automated QuickBooks Invoice to Custom PDF & Email\n\nTired of the standard, boring invoices from QuickBooks Online? This workflow completely automates the process of creating beautiful, custom-branded PDF invoices and emailing them directly to your clients, saving you time and elevating your brand's professionalism.\n\nThe moment you create an invoice in QuickBooks, this workflow triggers, fetches all the necessary data, and generates a lavish, multi-page-aware PDF invoice complete with your company logo and signature.\n\n***\n\n## Key Features\n\n* **Fully Automated:** Runs instantly when a new invoice is created in QuickBooks.\n* **Custom Branding:** Automatically fetches your company logo and signature from a URL to place on the invoice.\n* **Modern & Professional Design:** Uses a premium, multi-column HTML template that is clean, easy to read, and far superior to the default QBO templates.\n* **Multi-Page Ready:** If an invoice has many line items, the template will intelligently create multiple pages and add a \"Page X of Y\" footer automatically.\n* **Smart Layout:** The totals and summary block are designed to never break across pages, ensuring a professional look no matter the length.\n* **Automatic Emailing:** The final PDF is attached to a beautifully formatted email and sent directly to the customer's email address on file.\n\n## Prerequisites\n\nBefore you start, you will need a few things:\n\n* A running **n8n instance**.\n* A **QuickBooks Online** account with API access.\n* A running **Gotenberg** instance. This is a powerful, open-source tool for converting HTML to PDF. This workflow is designed to connect to its API. You can learn more about it [here](https://gotenberg.dev/).\n* Publicly accessible URLs for your **company logo** and **signature image** (e.g., hosted on your website or a service like Imgur).\n\n## Setup Guide\n\nFollow these steps carefully to configure the workflow for your own use. Nodes that need your attention are marked with a `[!!]` prefix.\n\n### Step 1: Configure the QuickBooks Webhook\n\nThe workflow starts with a webhook. You need to tell QuickBooks to send information to this webhook.\n\n1. Open the `[!!] Listen for New QuickBooks Invoice` node.\n2. You will see a **Webhook URL**. Copy the **Production URL**.\n3. Go to your QuickBooks Developer dashboard, select your app, and navigate to the **Webhooks** section.\n4. Paste the n8n URL into the Endpoint URL field and select the **Invoice** event to subscribe to.\n\n### Step 2: Connect Your QuickBooks Account\n\n1. Open the `[!!] Get Invoice Data from QuickBooks` node.\n2. In the \"Credentials\" field, select your existing QuickBooks Online credentials or create a new set.\n\n### Step 3: Add Your Branding\n\n1. Open the `[!!] Fetch Company Logo Image` node. In the **URL** field, replace the placeholder with the public URL of your company's logo.\n2. Open the `[!!] Fetch Company Signature Image` node. In the **URL** field, replace the placeholder with the public URL of your signature image.\n\n### Step 4: Update the PDF Generation Service\n\n1. Open the `[!!] Generate PDF via Gotenberg` node.\n2. In the **URL** field, replace the placeholder `http://yourGotenBergInstanceURL/...` with the real URL of your running Gotenberg instance.\n\n### Step 5: Configure Your Email\n\n1. Open the `[!!] Email PDF Invoice to Customer` node.\n2. In the \"Credentials\" field, select your SMTP or email service credentials.\n3. Customize the **From Email** and **Subject** fields. You can also edit the beautiful HTML email body to match your company's tone of voice.\n\n### Step 6: Activate Your Workflow\n\nYou're all set! Save the workflow and activate it using the toggle at the top-right of the screen. Now, when you create a new invoice in QuickBooks, this automation will handle the rest.\n\n***\n\n### A Note from the Creator\n\nThank you for using this workflow! I believe that professional and automated invoicing is a cornerstone of a great business. This tool was designed to save you time and help you put your best foot forward with every client interaction.\n\nIf you have any questions or need assistance, feel free to reach out.\n\n* **Website:** [https://www.elegantbiztech.com/](https://www.elegantbiztech.com/)\n* **Email:** [sales@elegantbiztech.com](mailto:sales@elegantbiztech.com)"
},
"typeVersion": 1
},
{
"id": "6edf064f-44ed-449e-a597-bd1b0d71bbe2",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
1088
],
"parameters": {
"color": 5,
"width": 256,
"height": 336,
"content": "**1. Configure Webhook**\n\nCopy this node's Production URL and paste it into your QuickBooks Online app's webhook settings. Subscribe to the \"Invoice\" event."
},
"typeVersion": 1
},
{
"id": "09597ad8-12d2-4bc6-aaf4-e4478499e5b3",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1168,
848
],
"parameters": {
"color": 5,
"width": 256,
"height": 320,
"content": "**2. Connect QuickBooks**\n\nSelect your QuickBooks Online account credentials from the dropdown list."
},
"typeVersion": 1
},
{
"id": "6fb09bca-2e1b-434f-8a13-054e96f45e18",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
1088
],
"parameters": {
"color": 5,
"width": 256,
"height": 336,
"content": "**3. Add Your Logo URL**\n\nReplace the placeholder URL below with a direct, public link to your company's logo file."
},
"typeVersion": 1
},
{
"id": "269b246b-58cc-44f3-8bf2-44c30b8a5544",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
1472
],
"parameters": {
"color": 5,
"width": 256,
"height": 320,
"content": "**4. Add Your Signature URL**\n\nReplace the placeholder URL below with a direct, public link to your signature image file."
},
"typeVersion": 1
},
{
"id": "b6cb4da6-78f6-4090-99bf-c443ee044ce3",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2288,
1120
],
"parameters": {
"color": 5,
"width": 256,
"height": 320,
"content": "**5. Set Your Gotenberg URL**\n\nReplace the placeholder URL below with the address of your running Gotenberg instance."
},
"typeVersion": 1
},
{
"id": "7b8bbac0-14a7-45ac-854c-84e43a5dd052",
"name": "Haftnotiz6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2624,
1072
],
"parameters": {
"color": 5,
"width": 256,
"height": 368,
"content": "**6. Configure Your Email**\n\n- Select your email credentials.\n- Customize the 'From' and 'Subject' fields.\n- The PDF is automatically attached."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "8fcaea2c-adec-42a6-8dc4-1eb0ab254cee",
"connections": {
"7b5653c7-4483-463c-a7e2-fab408ea1f91": {
"main": [
[
{
"node": "38d30ac3-298c-4731-a7b3-d45ac80abb25",
"type": "main",
"index": 1
}
]
]
},
"b56096d7-37cf-41b7-ab77-ebb35c176e01": {
"main": [
[
{
"node": "7b5653c7-4483-463c-a7e2-fab408ea1f91",
"type": "main",
"index": 0
}
]
]
},
"14bf3ebc-3a0f-468c-b650-6b282fe7f572": {
"main": [
[
{
"node": "fc4105a5-f50c-4ac8-8010-a0ba82ffdf11",
"type": "main",
"index": 0
}
]
]
},
"905e1af5-3c1d-4a57-9df6-f7d0683f486a": {
"main": [
[
{
"node": "14bf3ebc-3a0f-468c-b650-6b282fe7f572",
"type": "main",
"index": 0
}
]
]
},
"4fa1d59c-2ace-4251-a0db-49b62d18f62a": {
"main": [
[
{
"node": "38d30ac3-298c-4731-a7b3-d45ac80abb25",
"type": "main",
"index": 2
}
]
]
},
"2fdd3ef9-ef1f-42a5-8a29-64e439645e83": {
"main": [
[
{
"node": "905e1af5-3c1d-4a57-9df6-f7d0683f486a",
"type": "main",
"index": 0
}
]
]
},
"97f6e4f4-82c8-4bbd-bad2-a02f69ca6150": {
"main": [
[
{
"node": "4fa1d59c-2ace-4251-a0db-49b62d18f62a",
"type": "main",
"index": 0
}
]
]
},
"8539ed24-374b-4ecb-b152-ef6d76365f0b": {
"main": [
[
{
"node": "2fdd3ef9-ef1f-42a5-8a29-64e439645e83",
"type": "main",
"index": 0
}
]
]
},
"1dc144aa-6849-4e95-a4d1-1f9c80b16b63": {
"main": [
[
{
"node": "38d30ac3-298c-4731-a7b3-d45ac80abb25",
"type": "main",
"index": 0
}
]
]
},
"38d30ac3-298c-4731-a7b3-d45ac80abb25": {
"main": [
[
{
"node": "8539ed24-374b-4ecb-b152-ef6d76365f0b",
"type": "main",
"index": 0
}
]
]
},
"05599a83-f5c2-46db-8864-53c9e1b45f0d": {
"main": [
[
{
"node": "1dc144aa-6849-4e95-a4d1-1f9c80b16b63",
"type": "main",
"index": 0
},
{
"node": "b56096d7-37cf-41b7-ab77-ebb35c176e01",
"type": "main",
"index": 0
},
{
"node": "97f6e4f4-82c8-4bbd-bad2-a02f69ca6150",
"type": "main",
"index": 0
}
]
]
}
}
}Häufig gestellte Fragen
Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Rechnungsverarbeitung
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Automatisierter QuickBooks-Verkaufsabweichungsdetektor (mit professioneller E-Mail-Erinnerung) (In Prüfung)
Automatisierter QuickBooks-Verkäufe-Anomalie-Detektor mit professionellen E-Mail-Erinnerungen
If
Set
Code
+
If
Set
Code
26 NodesElegant Biztech
Kundenbeziehungsmanagement
Transkriptions-Evaluator
Analyse und Visualisierung von Audiogesprächen mit DeepGram und GPT-4o
Set
Code
Html
+
Set
Code
Html
54 NodesRealSimple Solutions
Künstliche Intelligenz
QuickBooks-Rechnungserinnerungen
Automatisierte Zahlungs-Erinnerungen für gruppierte QuickBooks-Rechnungen per E-Mail
Code
Email Send
Quickbooks
+
Code
Email Send
Quickbooks
10 NodesElegant Biztech
Rechnungsverarbeitung
n8n-Knoten in der visuellen Referenzbibliothek erkunden
Erkundung von n8n-Knoten in der visuellen Referenzbibliothek
If
Ftp
Set
+
If
Ftp
Set
113 NodesI versus AI
Sonstiges
Transkriptionsbewertung V2
🔊 Audio-Transkription und AI-Analyse von Browser-Aufnahmen (mit Deepgram und GPT-4o)
Set
Code
Html
+
Set
Code
Html
54 NodesRealSimple Solutions
Künstliche Intelligenz
Erzeugung von SEO-Inhalten aus Trendtabellen in den Speicher (SharePoint/Drive/Dropbox)
Automatisierte Erstellung von SEO-Inhalten aus Trends mit GPT-4o, FAL AI und Mehrspeicherunterstützung
If
Set
Code
+
If
Set
Code
47 Nodesplemeo
Content-Erstellung
Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes19
Kategorie1
Node-Typen10
Autor
Elegant Biztech
@ebworkflowsExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen