Erstellung von Rechnungen für Kunden mit Jotform und QuickBooks
Experte
Dies ist ein Automatisierungsworkflow mit 22 Nodes. Hauptsächlich werden If, Code, Webhook, Quickbooks und andere Nodes verwendet. Rechnungen für Kunden mit Jotform und QuickBooks erstellen
Voraussetzungen
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
Verwendete Nodes (22)
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": "9JbuwG2cZQVIvUHn",
"meta": {
"instanceId": "3549451ca835035557d5dc1c3d9e6ba924e7314534a74c901f66b91f9ef6023e",
"templateCredsSetupCompleted": true
},
"name": "Generate Invoices for Customers with Jotform and QuickBooks",
"tags": [],
"nodes": [
{
"id": "4f6366d5-b755-4bec-83eb-482efdba74a3",
"name": "Formularübermittlung empfangen",
"type": "n8n-nodes-base.webhook",
"position": [
-464,
0
],
"webhookId": "d65e73cf-179b-4021-82d0-4ebeccb4cd10",
"parameters": {
"path": "requests",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "6d770cb0-0b36-484c-9c58-46afe7a4bb8a",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
320,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bfa24559-7702-4ebf-909d-c5c2a60ad817",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json }}",
"rightValue": 0
},
{
"id": "b4301cfe-a22a-490f-a72b-50d266bc1c5e",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.Id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4391d022-ce12-41ab-ab4b-c35143f6ac38",
"name": "Produkt abrufen",
"type": "n8n-nodes-base.quickbooks",
"position": [
1248,
0
],
"parameters": {
"limit": 1,
"filters": {
"query": "=WHERE name = '{{ $json.item.name }}'"
},
"resource": "item",
"operation": "getAll"
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "E1S8XZZk9iMCPDSN",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "b13d423b-9fe9-44d2-ac74-93b193a5de1b",
"name": "Rechnung erstellen",
"type": "n8n-nodes-base.quickbooks",
"position": [
1856,
0
],
"parameters": {
"Line": [
{
"Amount": 1,
"itemId": "={{ $json.item.id }}",
"DetailType": "SalesItemLineDetail",
"Description": "Jotform submission"
}
],
"resource": "invoice",
"operation": "create",
"CustomerRef": "={{ $json.customer.id }}",
"additionalFields": {}
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "E1S8XZZk9iMCPDSN",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "08437c34-4454-4690-a752-d011945caf5a",
"name": "Rechnung senden",
"type": "n8n-nodes-base.quickbooks",
"position": [
2160,
0
],
"parameters": {
"email": "={{ $('Add item id').item.json.customer.email }}",
"resource": "invoice",
"invoiceId": "={{ $json.Id }}",
"operation": "send"
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "E1S8XZZk9iMCPDSN",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "b0b10282-e6a3-459b-ae3d-23a4aeec885b",
"name": "Prüfen ob Kunde existiert",
"type": "n8n-nodes-base.quickbooks",
"position": [
112,
0
],
"parameters": {
"limit": 1,
"filters": {
"query": "=Where PrimaryEmailAddr = '{{ $json.customer.email }}'"
},
"operation": "getAll"
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "E1S8XZZk9iMCPDSN",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "db4fa3c0-89fd-48b6-b2f4-c5e1e188e622",
"name": "Notiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-544,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Receive Submission\nReceives the product/service form submission from Jotform"
},
"typeVersion": 1
},
{
"id": "6b756b11-0a93-4df7-b8fb-82c65057c6c6",
"name": "Notiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
-112
],
"parameters": {
"color": 7,
"width": 400,
"height": 320,
"content": "## Check If Customer exists \nChecks if the customer exists in QBO or not"
},
"typeVersion": 1
},
{
"id": "c7e5987a-8bf2-4651-becb-70bf5b039b14",
"name": "Notiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
512,
-336
],
"parameters": {
"color": 7,
"width": 304,
"height": 336,
"content": "## Customer Exists\nNow since the customer exists we will update the customer details like updating the billing details with the new one"
},
"typeVersion": 1
},
{
"id": "8f1d632d-cf26-4bb2-80e9-c019cde28bdb",
"name": "Kunde anlegen",
"type": "n8n-nodes-base.quickbooks",
"position": [
608,
176
],
"parameters": {
"operation": "create",
"displayName": "=",
"additionalFields": {
"BillAddr": {
"details": {
"City": "={{ $('Format data').item.json.address.city }}",
"Line1": "={{ $('Format data').item.json.address.line1 }}",
"PostalCode": "={{ $('Format data').item.json.address.postalZipCode }}"
}
},
"GivenName": "={{ $('Format data').item.json.customer.name }}",
"PrimaryPhone": "={{ $('Format data').item.json.customer.phone }}",
"PrimaryEmailAddr": "={{ $('Format data').item.json.customer.email }}"
}
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "E1S8XZZk9iMCPDSN",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "d3f307c0-6e27-4212-bd2c-ab585a6ac095",
"name": "Kunde aktualisieren",
"type": "n8n-nodes-base.quickbooks",
"position": [
608,
-192
],
"parameters": {
"operation": "update",
"customerId": "={{ $json.Id }}",
"updateFields": {
"BillAddr": {
"details": {
"City": "={{ $('Format data').item.json.address.city }}",
"Line1": "={{ $('Format data').item.json.address.line1 }}",
"PostalCode": "={{ $('Format data').item.json.address.postalZipCode }}"
}
},
"GivenName": "={{ $('Format data').item.json.customer.name }}",
"PrimaryPhone": "={{ $('Format data').item.json.customer.phone }}"
}
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "E1S8XZZk9iMCPDSN",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "74f2a7f2-35bf-43e0-979b-6032cca27c40",
"name": "Notiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
512,
48
],
"parameters": {
"color": 7,
"width": 304,
"height": 320,
"content": "## Customer Doesn't Exist\nNow since the customer doesn't exist we will create new customer"
},
"typeVersion": 1
},
{
"id": "b8ea9c7a-f469-4a6d-99c5-3b4b952368b6",
"name": "Notiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1168,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Get The Item\nGets the selected product/service from QBO"
},
"typeVersion": 1
},
{
"id": "b1744ed2-7b32-4858-ad4d-1156594d54cd",
"name": "Notiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1776,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Create The Invoice\nCreates a new invoice for that customer"
},
"typeVersion": 1
},
{
"id": "0cb2eea2-6239-47fb-9ec3-41ffd9bf3c41",
"name": "Notiz6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2080,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Send The Invoice\nSends the newly created invoice for that customer(via email)"
},
"typeVersion": 1
},
{
"id": "b20793cf-e29a-4fe4-a7b9-72c8d8311820",
"name": "Notiz7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1328,
-416
],
"parameters": {
"width": 736,
"height": 880,
"content": "## Generate Invoices for Customers with Jotform and QuickBooks \nThis workflow automates the entire process of receiving a product/service order, checking or creating a customer in **QuickBooks Online (QBO)**, generating an invoice, and emailing it — all triggered by a form submission (via **Jotform**).\n\n## How It Works\n### 1- Receive Submission\n* Triggered when a user submits a form.\n* Collects data like customer details, selected product/service, etc.\n\n### 2- Check If Customer Exists\n* Searches QBO to determine if the customer already exists.\n* ✅ **If Customer Exists:** **Update** customer details (e.g., billing address).\n* ❌ **If Customer Doesn’t Exist:** **Create** a new customer in QBO.\n\n### 3- Get The Item\n* Retrieves the selected product or service from QBO.\n\n### 4- Create The Invoice\n* Generates a new invoice for the customer using the item selected.\n\n### 5. Send The Invoice\n* Automatically sends the invoice via email to the customer.\n\n## Who Can Benefit from This Workflow?\n* **Freelancers**\n* **Service Providers**\n* **Consultants & Coaches**\n* **Small Businesses**\n* **E-commerce or Custom Product Sellers**\n\n## Requirements\n- Jotform webhook setup, more info [here](https://www.jotform.com/help/245-how-to-setup-a-webhook-with-jotform/)\n- QuickBooks Online credentials, more info [here](https://developer.intuit.com/app/developer/qbo/docs/get-started/get-client-id-and-client-secret)"
},
"typeVersion": 1
},
{
"id": "c35659b4-98f2-4b24-882b-7820329962f3",
"name": "Notiz8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Format Data\nFormats the data thus making it easier to be used in other nodes"
},
"typeVersion": 1
},
{
"id": "777c7f53-c2c7-486f-8b39-3a545dc15838",
"name": "Daten formatieren",
"type": "n8n-nodes-base.code",
"position": [
-160,
0
],
"parameters": {
"jsCode": "function extractAddressData(text) {\n const regex = /Street Address:\\s*([^<]+)<br>Street Address Line 2:\\s*([^<]+)<br>City:\\s*([^<]+)<br>State \\/ Province:\\s*([^<]+)<br>Postal \\/ Zip Code:\\s*([^<]+)<br>Country:\\s*([^<]+)<br>/;\n const matches = text.match(regex);\n \n if (matches) {\n return {\n line1: matches[1].trim(),\n line2: matches[2].trim(),\n city: matches[3].trim(),\n stateProvince: matches[4].trim(),\n postalZipCode: matches[5].trim(),\n country: matches[6].trim()\n };\n }\n \n return {\n line1: null,\n line2: null,\n city: null,\n stateProvince: null,\n postalZipCode: null,\n country: null\n }\n}\n\nreturn {\n address: extractAddressData($input.first().json.body.billingAddress),\n customer: {\n name: $input.first().json.body.name,\n email: $input.first().json.body.email,\n phone: $input.first().json.body.phone\n },\n item: {\n name: $input.first().json.body.itemName\n }\n}"
},
"typeVersion": 2
},
{
"id": "b7e7db5f-40e5-4d88-a7fe-508dbe49619f",
"name": "Notiz9",
"type": "n8n-nodes-base.stickyNote",
"position": [
864,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Add Customer Id\nAdds customer id to the data"
},
"typeVersion": 1
},
{
"id": "ab0a3406-5106-4c82-b4b9-3972a7ac630d",
"name": "Kunden-ID hinzufügen",
"type": "n8n-nodes-base.code",
"position": [
944,
0
],
"parameters": {
"jsCode": "return {\n ...$('Format data').first().json,\n customer: {\n ...$('Format data').first().json.customer,\n id: $input.first().json.Id\n }\n}"
},
"typeVersion": 2
},
{
"id": "7167d106-716c-4d5c-bfdc-3d7905523644",
"name": "Notiz10",
"type": "n8n-nodes-base.stickyNote",
"position": [
1472,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Add Item Id\nAdds item (service/product) id to the data"
},
"typeVersion": 1
},
{
"id": "a7aff86c-425b-424c-ac2e-135176e43a40",
"name": "Artikel-ID hinzufügen",
"type": "n8n-nodes-base.code",
"position": [
1552,
0
],
"parameters": {
"jsCode": "return {\n ...$('Add customer id').first().json,\n item: {\n ...$('Add customer id').first().json.item,\n id: $input.first().json.Id\n }\n}"
},
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "471906c5-a3fb-4975-8a45-800eab74c62f",
"connections": {
"6d770cb0-0b36-484c-9c58-46afe7a4bb8a": {
"main": [
[
{
"node": "d3f307c0-6e27-4212-bd2c-ab585a6ac095",
"type": "main",
"index": 0
}
],
[
{
"node": "8f1d632d-cf26-4bb2-80e9-c019cde28bdb",
"type": "main",
"index": 0
}
]
]
},
"a7aff86c-425b-424c-ac2e-135176e43a40": {
"main": [
[
{
"node": "b13d423b-9fe9-44d2-ac74-93b193a5de1b",
"type": "main",
"index": 0
}
]
]
},
"777c7f53-c2c7-486f-8b39-3a545dc15838": {
"main": [
[
{
"node": "b0b10282-e6a3-459b-ae3d-23a4aeec885b",
"type": "main",
"index": 0
}
]
]
},
"ab0a3406-5106-4c82-b4b9-3972a7ac630d": {
"main": [
[
{
"node": "4391d022-ce12-41ab-ab4b-c35143f6ac38",
"type": "main",
"index": 0
}
]
]
},
"4391d022-ce12-41ab-ab4b-c35143f6ac38": {
"main": [
[
{
"node": "a7aff86c-425b-424c-ac2e-135176e43a40",
"type": "main",
"index": 0
}
]
]
},
"b13d423b-9fe9-44d2-ac74-93b193a5de1b": {
"main": [
[
{
"node": "08437c34-4454-4690-a752-d011945caf5a",
"type": "main",
"index": 0
}
]
]
},
"8f1d632d-cf26-4bb2-80e9-c019cde28bdb": {
"main": [
[
{
"node": "ab0a3406-5106-4c82-b4b9-3972a7ac630d",
"type": "main",
"index": 0
}
]
]
},
"d3f307c0-6e27-4212-bd2c-ab585a6ac095": {
"main": [
[
{
"node": "ab0a3406-5106-4c82-b4b9-3972a7ac630d",
"type": "main",
"index": 0
}
]
]
},
"4f6366d5-b755-4bec-83eb-482efdba74a3": {
"main": [
[
{
"node": "777c7f53-c2c7-486f-8b39-3a545dc15838",
"type": "main",
"index": 0
}
]
]
},
"b0b10282-e6a3-459b-ae3d-23a4aeec885b": {
"main": [
[
{
"node": "6d770cb0-0b36-484c-9c58-46afe7a4bb8a",
"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
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
Rechnungen erstellen und Kundenbenachrichtigungen mit Jotform, QuickBooks und Outlook senden
Automatisierung von Erstellung von Rechnungen und intelligenten Erinnerungen mit Jotform, QuickBooks und Outlook AI
If
Set
Code
+
If
Set
Code
48 NodesAppUnits AI
Erstelle Rechnungen für Kunden und sende Erinnerungen
Automatische Erstellung von Rechnungen und Zahlungserinnerungen mit QuickBooks, Jotform und GPT-4o
If
Set
Code
+
If
Set
Code
48 NodesAppUnits AI
Erstellung und Sendung von Rechnungen mit Erinnerungen an Kunden mit Jotform und QuickBooks
Rechnungen mit Jotform und QuickBooks erstellen und KI-Zusammenfassungs-Erinnerungen senden
If
Set
Code
+
If
Set
Code
48 NodesAppUnits AI
Rechnungserstellung für Kunden mit Jotform, Xero und Slack
Automatisierte Erstellung von Rechnungen und E-Mail-Versand mit Jotform, Xero und GPT-4o-mini
If
Code
Xero
+
If
Code
Xero
20 NodesAppUnits AI
Automatisierte Erstellung von Rechnungen und Teambenachrichtigungen mit Jotform, Xero, Outlook und Telegram
Automatische Erstellung von Rechnungen und Kundenkommunikation mit Jotform, Xero, Outlook und Telegram
If
Code
Wait
+
If
Code
Wait
27 NodesAppUnits AI
Erstellung und Sendung von Rechnungen mit Erinnerungen an Kunden mit Jotform und Xero
Rechnungen mit Jotform und Xero erstellen und KI-gesteuerte Erinnerungen senden
If
Set
Code
+
If
Set
Code
39 NodesAppUnits AI
Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes22
Kategorie-
Node-Typen5
Autor
AppUnits AI
@appunitsaiExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen