Erstellung von Rechnungen für Kunden mit Jotform, Xero und Gmail
Fortgeschritten
Dies ist ein Automatisierungsworkflow mit 13 Nodes. Hauptsächlich werden Code, Xero, Gmail, Webhook, Agent und andere Nodes verwendet. Professionelle Rechnungen mit Jotform, Xero und GPT-gesteuerten E-Mails generieren
Voraussetzungen
- •Google-Konto + Gmail API-Anmeldedaten
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •OpenAI API Key
Verwendete Nodes (13)
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": "UVDQqxGZJ1zaxyNj",
"meta": {
"instanceId": "3549451ca835035557d5dc1c3d9e6ba924e7314534a74c901f66b91f9ef6023e",
"templateCredsSetupCompleted": true
},
"name": "Generate Invoices for Customers with Jotform, Xero and Gmail",
"tags": [],
"nodes": [
{
"id": "065aeee4-b7de-4e08-a95e-1c4846861411",
"name": "Formularübermittlung empfangen",
"type": "n8n-nodes-base.webhook",
"position": [
-464,
0
],
"webhookId": "bf87ee72-aecf-44e5-a466-3d0144da2221",
"parameters": {
"path": "bf87ee72-aecf-44e5-a466-3d0144da2221",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "4b4284d5-10b9-439e-99f0-08f9c48fc683",
"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": "33e3c8d0-02d4-4887-973a-106988ebe9d4",
"name": "Notiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
-112
],
"parameters": {
"color": 7,
"width": 288,
"height": 320,
"content": "## Create/Update Contact\nCreates or updates the contact"
},
"typeVersion": 1
},
{
"id": "dc1c4f42-d6c8-455b-9c2b-4004a990eb21",
"name": "Notiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-112
],
"parameters": {
"color": 7,
"width": 256,
"height": 320,
"content": "## Create The Invoice\nCreates a new invoice for that contact"
},
"typeVersion": 1
},
{
"id": "aaf471ff-be4d-4bc7-9132-c45a01bdd5d1",
"name": "Notiz7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1328,
-400
],
"parameters": {
"width": 736,
"height": 832,
"content": "## Generate Invoices for Customers with Jotform, Xero and Gmail\nThis workflow automates the entire process of receiving a product/service order, checking or creating a customer in **Xero**, 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- Create/Update The Customer\n* Creates/Updates the customer.\n\n### 3- Create The Invoice\n* Generates a new invoice for the customer using the item selected.\n\n### 4- 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- Xero credentials, more info [here](https://docs.n8n.io/integrations/builtin/credentials/xero)\n- Make sure that products/services values in Jotform are exactly the same as your item `Code` in your Xero account\n- Email setup, update email node (`Send email`), more info about Gmail setup [here](https://docs.n8n.io/integrations/builtin/credentials/google)\n- LLM model credentials"
},
"typeVersion": 1
},
{
"id": "c391a307-3bef-45c9-8310-8110e7058a37",
"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": "7fac0a20-8cf3-4dfc-b65d-9b59444f1c61",
"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": "28d16066-551a-4205-b24d-4759d02d881e",
"name": "Kontakt erstellen/aktualisieren",
"type": "n8n-nodes-base.xero",
"position": [
160,
0
],
"parameters": {
"name": "={{ $json.customer.name }}",
"resource": "contact",
"organizationId": "bc9a44a6-eb14-4f81-b24c-ca676c506446",
"additionalFields": {
"phonesUi": {
"phonesValues": [
{
"phoneType": "MOBILE",
"phoneNumber": "={{ $json.customer.phone }}"
}
]
},
"addressesUi": {
"addressesValues": [
{
"city": "={{ $json.address.city }}",
"type": "STREET",
"line1": "={{ $json.address.line1 }}",
"line2": "={{ $json.address.line2 }}",
"region": "={{ $json.address.stateProvince }}",
"country": "={{ $json.address.country }}",
"postalCode": "={{ $json.address.postalZipCode }}"
}
]
},
"emailAddress": "={{ $json.customer.email }}"
}
},
"credentials": {
"xeroOAuth2Api": {
"id": "HZnbTfrr5leqrLUQ",
"name": "Xero account"
}
},
"typeVersion": 1
},
{
"id": "46594f4d-9682-4298-a366-40bcb54c9ccb",
"name": "Rechnung erstellen",
"type": "n8n-nodes-base.xero",
"position": [
480,
0
],
"parameters": {
"type": "ACCREC",
"contactId": "={{ $json.ContactID }}",
"lineItemsUi": {
"lineItemsValues": [
{
"taxType": "INPUT",
"itemCode": "={{ $('Format data').item.json.item.name }}",
"unitAmount": "10",
"accountCode": "200"
}
]
},
"organizationId": "bc9a44a6-eb14-4f81-b24c-ca676c506446",
"additionalFields": {}
},
"credentials": {
"xeroOAuth2Api": {
"id": "HZnbTfrr5leqrLUQ",
"name": "Xero account"
}
},
"typeVersion": 1
},
{
"id": "3b291d2e-a98a-474e-aaf2-8edd4bd734f1",
"name": "KI-Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
816,
-64
],
"parameters": {
"text": "={{ $json }}",
"options": {
"systemMessage": "=You are an AI assistant that generates a professional invoice email that you get from an Xero response (newly created invoice), so you will recive an Xero invoice response and thus your job is to create a professional html email content because this html email content will be sent to the customer."
},
"promptType": "define"
},
"executeOnce": false,
"typeVersion": 2.2
},
{
"id": "d770459b-7a80-4abb-8609-aece00840acb",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
816,
144
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "ns8LVe1zpSS3Kw9p",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "ce21e6a5-1657-49ec-979e-d14c7f578364",
"name": "Notiz19",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
-192
],
"parameters": {
"color": 7,
"width": 592,
"height": 480,
"content": "## Send The Invoice\nSends the newly created invoice for that customer(via email)"
},
"typeVersion": 1
},
{
"id": "d661fc32-c68c-463d-b815-2f342a3ac011",
"name": "E-Mail senden",
"type": "n8n-nodes-base.gmail",
"position": [
1088,
-64
],
"webhookId": "34d9e2cd-ada9-43de-b476-36ae61b9ff32",
"parameters": {
"sendTo": "={{ $('Create the invoice').item.json.Contact.EmailAddress }}",
"message": "={{ $json.output }}",
"options": {},
"subject": "New Invoice"
},
"typeVersion": 2.1
}
],
"active": false,
"pinData": {
"Receive form submission": [
{
"json": {
"body": {
"name": "Adrian Mathews",
"email": "yoled82772@elygifts.com",
"phone": "(116) 777-9916",
"itemName": "Design",
"billingAddress": "Street Address: Nulla quia debitis est quam facilis amet enim cupidatat officia autem consequatur qui quis dolorem<br>Street Address Line 2: Possimus perferendis ad veritatis quia animi<br>City: Voluptatibus eveniet harum unde dolor doloremque cumque dol<br>State / Province: Reprehenderit rerum voluptas magni ut minim ad deleniti eni<br>Postal / Zip Code: 17167<br>Country: Seychelles<br>"
}
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "d514ba5d-30a5-4cfb-b09f-b1a611151c1f",
"connections": {
"3b291d2e-a98a-474e-aaf2-8edd4bd734f1": {
"main": [
[
{
"node": "d661fc32-c68c-463d-b815-2f342a3ac011",
"type": "main",
"index": 0
}
]
]
},
"7fac0a20-8cf3-4dfc-b65d-9b59444f1c61": {
"main": [
[
{
"node": "28d16066-551a-4205-b24d-4759d02d881e",
"type": "main",
"index": 0
}
]
]
},
"d770459b-7a80-4abb-8609-aece00840acb": {
"ai_languageModel": [
[
{
"node": "3b291d2e-a98a-474e-aaf2-8edd4bd734f1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"46594f4d-9682-4298-a366-40bcb54c9ccb": {
"main": [
[
{
"node": "3b291d2e-a98a-474e-aaf2-8edd4bd734f1",
"type": "main",
"index": 0
}
]
]
},
"065aeee4-b7de-4e08-a95e-1c4846861411": {
"main": [
[
{
"node": "7fac0a20-8cf3-4dfc-b65d-9b59444f1c61",
"type": "main",
"index": 0
}
]
]
},
"28d16066-551a-4205-b24d-4759d02d881e": {
"main": [
[
{
"node": "46594f4d-9682-4298-a366-40bcb54c9ccb",
"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?
Fortgeschritten
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
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
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 Xero
Rechnungen mit Jotform und Xero erstellen und KI-gesteuerte Erinnerungen senden
If
Set
Code
+
If
Set
Code
39 NodesAppUnits AI
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
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
Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes13
Kategorie-
Node-Typen7
Autor
AppUnits AI
@appunitsaiExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen