顧客請求詳細収集と請求書生成(GmailとQuickBooks)
中級
これはInvoice Processing分野の自動化ワークフローで、15個のノードを含みます。主にGmail, Quickbooks, FormTriggerなどのノードを使用。 Gmail と QuickBooks を使用して顧客請求詳細を集めてインボイスを生成
前提条件
- •Googleアカウント + Gmail API認証情報
使用ノード (15)
カテゴリー
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "d6e2f2f655b1125bbcac14a4cac6d2e46c7a150e927f85fc96fdca1a6dc39e0e",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "2133d58e-bd7c-4c7a-806a-71f2f10bd400",
"name": "顧客をQBOに追加",
"type": "n8n-nodes-base.quickbooks",
"onError": "continueRegularOutput",
"position": [
1280,
300
],
"parameters": {
"operation": "create",
"displayName": "={{ $json.data['Company Name'] ? $json.data['Company Name'] : $json.data['First Name'] + \" \" + $json.data['Last Name'] }}",
"additionalFields": {
"BillAddr": {
"details": {
"City": "={{ $json.data.City }}",
"Line1": "={{ $json.data['Street Address'] }}",
"PostalCode": "={{ $json.data['Zip / Postal Code'] }}",
"CountrySubDivisionCode": "={{ $json.data['State / Province'] }}"
}
},
"GivenName": "={{ $json.data['First Name'] }}",
"FamilyName": "={{ $json.data['Last Name'] }}",
"CompanyName": "={{ $json.data['Company Name'] }}",
"PrimaryPhone": "={{ $json.data['Phone Number'] }}",
"PrimaryEmailAddr": "={{ $('Enter Client Details').item.json['What is the client\\'s email?'] }}"
}
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "6ufAa1KkttZDj17m",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "20b9b6cd-1edf-47ac-89e5-bc9234f81863",
"name": "既存顧客を検索",
"type": "n8n-nodes-base.quickbooks",
"position": [
1540,
300
],
"parameters": {
"limit": 1,
"filters": {
"query": "=WHERE DisplayName = '{{ $('Ask Client for Billing Info').item.json.data['Company Name'] ? $('Ask Client for Billing Info').item.json.data['Company Name'] : $('Ask Client for Billing Info').item.json.data['First Name'] + \" \" + $('Ask Client for Billing Info').item.json.data['Last Name'] }}'"
},
"operation": "getAll"
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "6ufAa1KkttZDj17m",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "59da9e15-0c9f-4515-8913-75a6a227ee19",
"name": "付箋メモ",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"width": 660,
"height": 1520,
"content": "## Ask Client for Billing Details and Automatically Generate an Invoice in QuickBooks\n\n## What It Does\nThis workflow allows you to quickly generate and send invoices by collecting missing billing details from clients through an automated form and email sequence. It integrates Gmail and QuickBooks Online to handle the full billing flow: from request to invoice, reducing manual data entry and time wasted switching between apps.\n\nPerfect for freelancers, service providers, or teams that want to streamline invoicing without going back and forth with clients.\n\n## Prerequisites\n- Gmail OAuth2 credential \n- QuickBooks Online OAuth2 credential\n\n## How It Works\n1. **Trigger:** Manually start the workflow by filling out a form with the client’s email, invoice amount, description, and product.\n2. **Send Request Email:** A pre-written email is sent to the client asking them to provide their billing details.\n3. **Collect Info:** The client submits their billing name and address via a hosted form.\n4. **Add/Find Client in QuickBooks:** If the client doesn't exist, a new record is created; otherwise, the existing client is used.\n5. **Generate Invoice:** A QuickBooks invoice is created using the submitted info and selected product.\n6. **Send Invoice:** The invoice is automatically emailed to the client using QuickBooks' native interface.\n\n## Example Use Cases\n- Freelancers requesting billing info before sending an invoice \n- Small businesses invoicing new clients without manual QuickBooks entry \n- Sales or ops teams who want to request billing info via email with just a few clicks \n- Automating follow-up for new customer onboarding or service requests\n\n## Setup Instructions\n- Connect your Gmail and QuickBooks credentials \n- Add your products to the dropdown list in the `Enter Client Details` node \n ⚠️ Make sure the product names **exactly match** the items in QuickBooks \n- Select the tax code in the `Create A New Invoice` node\n- Customize the email message in the `Send Invoice Request` Gmail node to reflect your brand voice\n\n## How to Use\n- Copy the public URL from the `Enter Client Details` node (this way you don't have to trigger the workflow manually inside n8n) \n- Each time you need to invoice a client, open the form and fill in:\n - Client’s email \n - Product/service name \n - Invoice amount and description \n- The client receives an email prompting them to fill in their billing info \n- Once submitted, the system creates and sends a QuickBooks invoice automatically\n\n## Customization Options\n- Add support for multiple line items \n- Automatically send reminder emails if the form isn't completed within a day \n- Add internal logging (Google Sheets, Airtable, etc.) for sent/paid invoices\n\n## Why It's Useful\nThis workflow removes friction from your billing process. Instead of chasing clients for info and copying data into QuickBooks, you send one email and automation does the rest. It saves time, reduces errors, and makes invoicing feel seamless — while still keeping you in control."
},
"typeVersion": 1
},
{
"id": "5100a4f0-9357-46ce-925c-e778537d8596",
"name": "付箋メモ1",
"type": "n8n-nodes-base.stickyNote",
"position": [
700,
120
],
"parameters": {
"color": 7,
"height": 360,
"content": "## Enter Client Info\n- **Tip:** Save the production URL in this node to use it outside n8n.\n- Fill out this form to start the workflow\n\n"
},
"typeVersion": 1
},
{
"id": "d1781318-a495-4002-9a01-635826825d22",
"name": "付箋メモ2",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
120
],
"parameters": {
"color": 7,
"height": 360,
"content": "## Ask Client for Info\nSends an email from your official Gmail account, asking the client for their billing info"
},
"typeVersion": 1
},
{
"id": "50502c72-0921-468c-a483-e861d6f40b64",
"name": "付箋メモ5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1220,
120
],
"parameters": {
"color": 7,
"height": 360,
"content": "## Add Client to QBO\nTries to add a new customer to QuickBooks"
},
"typeVersion": 1
},
{
"id": "d45d96d0-848f-4d9a-8c53-ce7ba5256eee",
"name": "付箋メモ6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1480,
120
],
"parameters": {
"color": 7,
"height": 360,
"content": "## Find Existing Customer\nSearches your QuickBooks account for a customer with the same display name"
},
"typeVersion": 1
},
{
"id": "6e5fba54-007f-4010-bda6-77db06f243db",
"name": "付箋メモ7",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
500
],
"parameters": {
"color": 7,
"height": 380,
"content": "## Create A New Invoice\nBuilds a draft invoice in QBO using the client info and line item details (amount + description) from the n8n form.\n"
},
"typeVersion": 1
},
{
"id": "771d0b92-7ddd-42de-88e5-7d55518126e4",
"name": "顧客詳細を入力",
"type": "n8n-nodes-base.formTrigger",
"position": [
760,
300
],
"webhookId": "a1afa6c2-4cb4-479b-ae20-7c1039d108a9",
"parameters": {
"options": {
"appendAttribution": true
},
"formTitle": "Enter Client Details",
"formFields": {
"values": [
{
"fieldLabel": "What is the client's first name?",
"requiredField": true
},
{
"fieldLabel": "What is the client's email?",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Product",
"fieldOptions": {
"values": [
{
"option": "Item A"
},
{
"option": "Misc"
}
]
},
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Description of what is being sold",
"requiredField": true
},
{
"fieldType": "number",
"fieldLabel": "Amount (before taxes)",
"requiredField": true
},
{
"fieldType": "date",
"fieldLabel": "Invoice Due Date",
"requiredField": true
}
]
},
"formDescription": "Please enter the client's details so we can contact them for their billing info."
},
"typeVersion": 2.2
},
{
"id": "059a40f3-d1e7-49dc-bdc5-7ca694abfda9",
"name": "顧客に請求情報を依頼",
"type": "n8n-nodes-base.gmail",
"position": [
1020,
300
],
"webhookId": "1cb550a2-0c63-45a3-baa5-c04cd8d03f68",
"parameters": {
"sendTo": "={{ $json['What is the client\\'s email?'] }}",
"message": "=Hello {{ $json['First Name'] || 'Customer' }},\n\nCompany A is requesting your billing information in order to create an invoice and finalize your order.\n\n**Description:** {{ $json['Description of what is being sold'] }} \n**Amount (before tax):** ${{ $json['Amount (before taxes)'] }}\n\nPlease fill in the form below so we can complete your invoice.\n\nThanks, \nCompany A",
"options": {},
"subject": "Billing Details Required",
"operation": "sendAndWait",
"formFields": {
"values": [
{
"fieldLabel": "First Name",
"requiredField": true
},
{
"fieldLabel": "Last Name",
"requiredField": true
},
{
"fieldLabel": "Company Name"
},
{
"fieldLabel": "Street Address",
"requiredField": true
},
{
"fieldLabel": "City",
"requiredField": true
},
{
"fieldLabel": "State / Province",
"requiredField": true
},
{
"fieldLabel": "Zip / Postal Code",
"requiredField": true
},
{
"fieldLabel": "Phone Number"
}
]
},
"responseType": "customForm"
},
"credentials": {
"gmailOAuth2": {
"id": "x5LsvRUYpInxYmcG",
"name": "Rosh's Personal Email"
}
},
"typeVersion": 2.1
},
{
"id": "cb1cf1c9-451f-4569-ac4e-8b79e2553007",
"name": "付箋メモ8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1220,
500
],
"parameters": {
"color": 7,
"height": 380,
"content": "## Send Invoice to Client\nSends the Finished Invoice to the Client\n"
},
"typeVersion": 1
},
{
"id": "f3bdf106-ca87-45ce-8b39-5ba6fbd7e5e1",
"name": "選択された製品を取得",
"type": "n8n-nodes-base.quickbooks",
"position": [
740,
700
],
"parameters": {
"limit": 1,
"filters": {
"query": "=WHERE name = '{{ $('Enter Client Details').item.json.Product }}'"
},
"resource": "item",
"operation": "getAll"
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "6ufAa1KkttZDj17m",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "554069d5-19b2-4d58-9dc1-f815e9db1214",
"name": "付箋メモ9",
"type": "n8n-nodes-base.stickyNote",
"position": [
700,
500
],
"parameters": {
"color": 7,
"height": 380,
"content": "## Get Selected Product\nGets the product you selected from the form via QuickBooks\n"
},
"typeVersion": 1
},
{
"id": "1e9df5ae-6742-41ea-adad-6484d35e6186",
"name": "新規インボイスを作成",
"type": "n8n-nodes-base.quickbooks",
"position": [
1020,
700
],
"parameters": {
"Line": [
{
"Amount": "={{ $('Enter Client Details').item.json['Amount (before taxes)'] }}",
"itemId": "={{ $json.Id }}",
"DetailType": "SalesItemLineDetail",
"TaxCodeRef": "5",
"Description": "={{ $('Enter Client Details').item.json['Description of what is being sold'] }}"
}
],
"resource": "invoice",
"operation": "create",
"CustomerRef": "={{ $('Find Existing Customer').item.json.Id ? $('Find Existing Customer').item.json.Id : $('Add Client to QBO').item.json.Id }}",
"additionalFields": {
"DueDate": "={{ $('Enter Client Details').item.json['Invoice Due Date'] }}",
"BillEmail": "={{ $('Enter Client Details').item.json['What is the client\\'s email?'] }}"
}
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "6ufAa1KkttZDj17m",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "168a75d0-9fd3-486d-9676-a8a64cce394c",
"name": "インボイスを送信",
"type": "n8n-nodes-base.quickbooks",
"position": [
1280,
700
],
"parameters": {
"email": "={{ $('Enter Client Details').item.json['What is the client\\'s email?'] }}",
"resource": "invoice",
"invoiceId": "={{ $json.Id }}",
"operation": "send"
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "6ufAa1KkttZDj17m",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"2133d58e-bd7c-4c7a-806a-71f2f10bd400": {
"main": [
[
{
"node": "20b9b6cd-1edf-47ac-89e5-bc9234f81863",
"type": "main",
"index": 0
}
]
]
},
"1e9df5ae-6742-41ea-adad-6484d35e6186": {
"main": [
[
{
"node": "168a75d0-9fd3-486d-9676-a8a64cce394c",
"type": "main",
"index": 0
}
]
]
},
"771d0b92-7ddd-42de-88e5-7d55518126e4": {
"main": [
[
{
"node": "059a40f3-d1e7-49dc-bdc5-7ca694abfda9",
"type": "main",
"index": 0
}
]
]
},
"20b9b6cd-1edf-47ac-89e5-bc9234f81863": {
"main": [
[
{
"node": "f3bdf106-ca87-45ce-8b39-5ba6fbd7e5e1",
"type": "main",
"index": 0
}
]
]
},
"f3bdf106-ca87-45ce-8b39-5ba6fbd7e5e1": {
"main": [
[
{
"node": "1e9df5ae-6742-41ea-adad-6484d35e6186",
"type": "main",
"index": 0
}
]
]
},
"059a40f3-d1e7-49dc-bdc5-7ca694abfda9": {
"main": [
[
{
"node": "2133d58e-bd7c-4c7a-806a-71f2f10bd400",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 請求書処理
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
OutlookとQuickBooksを使用した顧客請求詳細の収集と請求書発行の自動化
Outlook と QuickBooks を使用した顧客請求詳細の収集および請求書作成の自動化
Quickbooks
Form Trigger
Microsoft Outlook
+
Quickbooks
Form Trigger
Microsoft Outlook
15 ノードRosh Ragel
請求書処理
Gmailのラベルを使用してGPT-4O+QuickBooksで自動のにインボイスを作成する
GmailのタグからGPT-4O + QuickBooksを使って自動のに請求書を作成
Code
Gmail
Quickbooks
+
Code
Gmail
Quickbooks
23 ノードRosh Ragel
請求書処理
GmailとQuickBooks Onlineワークフロー
GmailとQuickBooks Onlineのワークフロー
Gmail
Gmail Trigger
Schedule Trigger
+
Gmail
Gmail Trigger
Schedule Trigger
11 ノードRosh Ragel
請求書処理
Google SheetsとQuickBooks経費自動化テンプレート
Google SheetsとQuickBooks経費自動化テンプレート
If
Set
Split Out
+
If
Set
Split Out
16 ノードRosh Ragel
請求書処理
経費報告書
従業員の経費精算業務の自動化を実現:Gmail、Google Drive、AI による検証
If
Code
Gmail
+
If
Code
Gmail
19 ノードPramod Kumar Rathoure
請求書処理
Squareの日次売上レポートをGmailで自動送信
Gmail を使用して Square の毎日のセールスレポートを自動送信
If
Code
Gmail
+
If
Code
Gmail
15 ノードRosh Ragel
顧客管理