고객 계정 상세 정보 수집 및 인보이스 생성 (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
청구서 처리
구글 시트와 퀵북스 비용 자동화 템플릿
구글 시트와 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
청구서 처리
Gmail을 통해 Square 일일 판매 보고서 자동 발송
Gmail을 통해 Square 일일 판매 보고서 자동 발송
If
Code
Gmail
+
If
Code
Gmail
15 노드Rosh Ragel
고객관계관리