Quickbook 인voi提醒
중급
이것은Invoice Processing분야의자동화 워크플로우로, 10개의 노드를 포함합니다.주로 Code, EmailSend, Quickbooks, ScheduleTrigger 등의 노드를 사용하며. 그룹화된 QuickBooks 인voice를 이메일로 발송하는 자동화된 결제 알림
사전 요구사항
- •특별한 사전 요구사항 없이 가져와 바로 사용 가능합니다
카테고리
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "1FISjXuv3wcHwVKc",
"meta": {
"instanceId": "e727f992f69a44655d3d4d5a1d4a30ca3ec1573139240bc4d84b17b8f66642c8",
"templateCredsSetupCompleted": true
},
"name": "Quickbook Invoice Reminder",
"tags": [],
"nodes": [
{
"id": "d2bb6837-055b-4eba-a34d-4e64a8fabf77",
"name": "미결제 송장 조회",
"type": "n8n-nodes-base.quickbooks",
"position": [
-192,
416
],
"parameters": {
"filters": {
"query": ""
},
"resource": "invoice",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"quickBooksOAuth2Api": {
"id": "r3A6wRAzyp859vQL",
"name": "QuickBooks Online account"
}
},
"typeVersion": 1
},
{
"id": "7748eaef-b6f5-44fb-99e0-8a1a3e71cd66",
"name": "알림 이메일 발송",
"type": "n8n-nodes-base.emailSend",
"position": [
848,
416
],
"parameters": {
"html": "={{ $json.emailBody }}",
"text": "=",
"options": {},
"subject": "=Unpaid Invoice Reminder for : {{$json.customer}}",
"toEmail": "={{ $json.invoices[0].json.BillEmail.Address }}",
"fromEmail": "placeholderEmail"
},
"credentials": {
"smtp": {
"id": "ZSjtbi8UmObTzmbO",
"name": "SMTP account"
}
},
"typeVersion": 1
},
{
"id": "ee0eefd1-3bb9-4d6e-8482-90360990b4c4",
"name": "송장 템플릿",
"type": "n8n-nodes-base.code",
"position": [
432,
416
],
"parameters": {
"jsCode": "// This code runs for each item passed to the node.\n// We assume the input is the single item containing the customer and their invoices.\nconst item = $items(\"Get Customer Wise Invoice list\")[0];\n\n// Extract the customer name and the array of invoices\nconst customerName = item.json.customer;\nconst invoices = item.json.invoices;\n\n// --- 1. Process the Invoices ---\n\nlet totalAmountDue = 0;\nlet invoiceRows = ''; // This will hold the HTML for the table rows\n\n// Loop through each invoice to build the table rows and calculate the total amount\nfor (const invoice of invoices) {\n totalAmountDue += invoice.json.TotalAmt; // Add the invoice amount to the total\n \n // Create an HTML table row for the current invoice\n invoiceRows += `\n <tr style=\"border-bottom: 1px solid #ddd;\">\n <td style=\"padding: 12px; text-align: left;\">${invoice.json.DocNumber}</td>\n <td style=\"padding: 12px; text-align: left;\">${invoice.json.TxnDate}</td>\n <td style=\"padding: 12px; text-align: left;\">${invoice.json.DueDate}</td>\n <td style=\"padding: 12px; text-align: right; font-weight: bold;\">$${invoice.json.TotalAmt.toFixed(2)}</td>\n </tr>\n `;\n}\n\n// Format the final total to 2 decimal places\nconst formattedTotal = totalAmountDue.toFixed(2);\n\n// --- 2. Build the HTML Email Template ---\n\nconst emailHtml = `\n<!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: #f4f4f4;\n }\n .email-container {\n max-width: 600px;\n margin: 20px auto;\n background-color: #ffffff;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n }\n .email-header {\n background-color: #007bff;\n color: #ffffff;\n padding: 20px;\n text-align: center;\n }\n .email-header h1 {\n margin: 0;\n font-size: 24px;\n }\n .email-body {\n padding: 30px;\n line-height: 1.6;\n color: #333333;\n }\n .email-body p {\n margin: 0 0 15px 0;\n }\n .invoice-table {\n width: 100%;\n border-collapse: collapse;\n margin: 20px 0;\n }\n .invoice-table th {\n background-color: #f2f2f2;\n padding: 12px;\n text-align: left;\n border-bottom: 2px solid #ddd;\n color: #555;\n }\n .total-row td {\n padding: 15px 12px;\n font-size: 18px;\n font-weight: bold;\n border-top: 2px solid #007bff;\n }\n .email-footer {\n text-align: center;\n padding: 20px;\n font-size: 12px;\n color: #888888;\n background-color: #f4f4f4;\n }\n .cta-button {\n display: inline-block;\n background-color: #28a745;\n color: #ffffff;\n padding: 12px 25px;\n margin-top: 20px;\n border-radius: 5px;\n text-decoration: none;\n font-weight: bold;\n }\n </style>\n</head>\n<body>\n <div class=\"email-container\">\n <div class=\"email-header\">\n <h1>Payment Reminder</h1>\n </div>\n <div class=\"email-body\">\n <p>Dear ${customerName},</p>\n <p>We're writing to kindly remind you about the outstanding balance on your account. We have listed the unpaid invoices below for your convenience.</p>\n \n <table class=\"invoice-table\">\n <thead>\n <tr>\n <th style=\"width: 25%;\">Invoice #</th>\n <th style=\"width: 25%;\">Date</th>\n <th style=\"width: 25%;\">Due Date</th>\n <th style=\"width: 25%; text-align: right;\">Amount</th>\n </tr>\n </thead>\n <tbody>\n ${invoiceRows}\n </tbody>\n </table>\n \n <table style=\"width: 100%; text-align: right;\">\n <tbody>\n <tr class=\"total-row\">\n <td>Total Amount Due: $${formattedTotal}</td>\n </tr>\n </tbody>\n </table>\n \n <p>If you have already made the payment, please disregard this email. If you have any questions about your invoices, feel free to contact us at any time.</p>\n <p>Thank you for your business!</p>\n <a href=\"https://your-payment-portal-link.com\" class=\"cta-button\">Pay Now</a>\n </div>\n <div class=\"email-footer\">\n <p>Your Company Name | 123 Business Rd, Business City, 12345</p>\n </div>\n </div>\n</body>\n</html>\n`;\n\n// --- 3. Return the HTML for the next node ---\n// The generated HTML is placed in the 'emailBody' property\n// This can be easily used in the 'HTML' field of a 'Send Email' node with an expression like: {{$json.emailBody}}\nitem.json.emailBody = emailHtml;\n\nreturn item;"
},
"typeVersion": 2
},
{
"id": "f7ffa78f-3f3a-413a-a2b9-89ab743dfd65",
"name": "고객별 송장 목록 조회",
"type": "n8n-nodes-base.code",
"position": [
176,
416
],
"parameters": {
"jsCode": "const getInvoices = $items(\"Get Unpaid Invoices\");\n\nconst invoices = []\nconst customerId = getInvoices[0].json.CustomerRef.value;\nconst customerName = getInvoices[0].json.CustomerRef.name;\n\nfor (const item of getInvoices) {\n // Access the invoices array from the JSON property of the current item\n \n if(customerId == item.json.CustomerRef.value && item.json.Balance > 0) {\n invoices.push(item)\n }\n \n}\n\n\nreturn {\n \"customer\": customerName,\n \"customerId\": customerId,\n \"invoices\": invoices\n };"
},
"typeVersion": 2
},
{
"id": "3cc14603-de0a-42e1-a495-f4790ff14d4d",
"name": "스케줄러",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-592,
416
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1
},
{
"id": "a6f70c2e-c4f4-416d-9b38-8c741a51dd94",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1920,
-352
],
"parameters": {
"color": 6,
"width": 1104,
"height": 1648,
"content": "# Automated QuickBooks Payment Reminders with Dynamic Invoice Tables\n\nThis workflow provides a powerful solution for businesses using QuickBooks Online to automate their payment reminder process. It solves the time-consuming and manual task of chasing late payments by creating a fully automated system that ensures every customer with an outstanding balance receives a timely, professional, and consolidated reminder email.\n\nThe workflow periodically fetches all unpaid invoices from your QuickBooks account. Its core strength lies in its ability to group multiple outstanding invoices for a single customer into one email, presenting them in a clean, easy-to-read table. This improves clarity for your customers, reduces email clutter, and significantly increases the likelihood of prompt payment.\n\nThis template was crafted with care by the team at **Prompt-Wizards** to help you streamline your finances and build stronger customer relationships through smart automation.\n\n## How the Workflow Operates\n\n1. **Scheduler:** The workflow initiates on a customizable schedule (e.g., every day at 9 AM).\n2. **Get Unpaid Invoices:** It fetches all invoices from your QuickBooks account that have an outstanding balance greater than zero and were created within a specified date range.\n3. **Get Customer Wise Invoice list:** This Code node intelligently processes the list of invoices and groups them by customer name, preparing the data for email generation.\n4. **Invoice Template:** This Code node dynamically generates a beautiful, responsive HTML email for each customer, complete with a personalized greeting, an invoice table, and the total amount due.\n5. **Send Reminder Email:** The final node sends the uniquely crafted email to the customer's billing address on file.\n\n## Prerequisites\n\nBefore you begin, please ensure you have the following:\n* An active n8n instance.\n* A QuickBooks Online account with API access.\n* An email service (e.g., SMTP, Gmail, Outlook) connected to n8n as credentials.\n\n## Step-by-Step Setup Guide\n\nFollow these instructions carefully to configure the workflow for your business in under 5 minutes.\n\n### 1. Connect Your QuickBooks Account\nYou must authenticate your QuickBooks account to allow n8n to fetch invoice data.\n\n* Select the **`Get Unpaid Invoices`** node.\n* In the **Credentials** section on the right, either select your existing QuickBooks account from the dropdown or click **Create New** to connect your account.\n* *(Optional)*: In the **Options** section of this node, you can adjust the `TxnDate` filter. It is pre-set to look at invoices from the last 90 days. You can change this date range to suit your needs.\n\n### 2. Personalize the Email Template\nPersonalize the email to match your brand and include your payment information.\n\n1. Open the **`Invoice Template`** node.\n2. Inside the code editor, find and replace these two placeholder values:\n * **Your Payment Link:** On **line 115**, find `href=\"https://your-payment-portal-link.com\"` and replace the placeholder URL with a link to your actual payment portal or website.\n * **Your Company Details:** On **line 120**, find `<p>Your Company Name | ...` and replace the placeholder text with your real company name and address in the email footer.\n\n### 3. Configure Your Email Account\nYou must connect the email account you want to send reminders from.\n\n* Select the **`Send Reminder Email`** node.\n* In the **Credentials** section, select your email account (e.g., Gmail, Outlook) or create a new connection.\n* The `To Address`, `Subject`, and `HTML` fields are already configured with expressions to work automatically. **No changes are needed here!**\n\n### 4. Activate the Workflow\n1. Open the **`Scheduler`** node to set the schedule for how often you want the workflow to run.\n2. **Save** the workflow using the button at the top.\n3. Click the **Active** toggle at the top right of the screen.\n\nYour automated payment reminder system is now live!!!\n\nFor questions or to explore more custom solutions, visit us at [Elegant Biztech](https://www.elegantbiztech.com/) or contact us at [sales@elegantbiztech.com](mailto:sales@elegantbiztech.com)."
},
"typeVersion": 1
},
{
"id": "b1d5e894-1873-49da-9249-a837264b133a",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
256
],
"parameters": {
"color": 4,
"width": 288,
"height": 304,
"content": "### 1. Set Your Schedule\n\nConfigure how often you want to check for overdue invoices. We recommend setting this to run **once a day** or **once a week**."
},
"typeVersion": 1
},
{
"id": "8345f2e0-1628-4e87-83c2-3aa555fa7887",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
176
],
"parameters": {
"color": 4,
"width": 304,
"height": 400,
"content": "### 2. Connect Your QuickBooks Account\n\n1. **Credentials**: Select or create your QuickBooks account.\n2. **Filters (Optional)**: You can adjust the `TxnDate` filter in the **Options** to change the date range for the invoices you want to check."
},
"typeVersion": 1
},
{
"id": "6a8ffc03-290d-4940-8f5c-cd792af6d5f7",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
192
],
"parameters": {
"color": 4,
"width": 304,
"height": 368,
"content": "### 3. Personalize Your Email Template\n\nThis code creates the email. You only need to edit two things inside the code editor:\n- **Line 115**: Update the `href` with your company's payment link.\n- **Line 120**: Change `Your Company Name` and address in the email footer."
},
"typeVersion": 1
},
{
"id": "b16553f5-200c-40ee-b106-4c474273b45c",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
192
],
"parameters": {
"color": 4,
"width": 304,
"height": 368,
"content": "### 4. Configure & Activate\n\n1. **Credentials**: Select the email account you want to send from.\n2. **To Address & HTML**: These are set automatically. No changes are needed.\n3. **Activate Workflow**: After configuring, don't forget to **Save** and then toggle the workflow to **Active**."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f9793645-ce80-4bfb-9f7b-3e2dbe6a59ec",
"connections": {
"3cc14603-de0a-42e1-a495-f4790ff14d4d": {
"main": [
[
{
"node": "d2bb6837-055b-4eba-a34d-4e64a8fabf77",
"type": "main",
"index": 0
}
]
]
},
"ee0eefd1-3bb9-4d6e-8482-90360990b4c4": {
"main": [
[
{
"node": "7748eaef-b6f5-44fb-99e0-8a1a3e71cd66",
"type": "main",
"index": 0
}
]
]
},
"d2bb6837-055b-4eba-a34d-4e64a8fabf77": {
"main": [
[
{
"node": "f7ffa78f-3f3a-413a-a2b9-89ab743dfd65",
"type": "main",
"index": 0
}
]
]
},
"f7ffa78f-3f3a-413a-a2b9-89ab743dfd65": {
"main": [
[
{
"node": "ee0eefd1-3bb9-4d6e-8482-90360990b4c4",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 청구서 처리
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
자동화된 QuickBooks 발행서 및 사용자 정의 PDF 및 이메일
Gotenberg를 사용하여 사용자 정의 브랜드 QuickBooks 인보이스를 PDF로 변환하고 이메일로 전송
Code
Html
Merge
+
Code
Html
Merge
19 노드Elegant Biztech
청구서 처리
자동화 QuickBooks 판매 이상 감지기 (전문 이메일 알림 포함) (검토 중)
전문 이메일 알림이 포함된 자동화된 QuickBooks 판매 이상 감지기
If
Set
Code
+
If
Set
Code
26 노드Elegant Biztech
고객관계관리
재무 및 회계를 위한 AI 기반 송장 알림 및 결제 추적기
재무 및 회계를 위해 설계된 AI 기반 송장 알림 및 결제 추적기
If
Set
Code
+
If
Set
Code
35 노드Oneclick AI Squad
청구서 처리
Gmail 레이블에서 GPT-4O + QuickBooks를 사용하여 자동으로 청구서 생성
Gmail 레이블에서 GPT-4O + QuickBooks를 사용하여 자동으로 청구서 생성
Code
Gmail
Quickbooks
+
Code
Gmail
Quickbooks
23 노드Rosh Ragel
청구서 처리
PDF 벡터, Google Drive 및 데이터베이스를 사용하여发票 데이터를 추출하고 저장
PDF 벡터, Google Drive, 데이터베이스를 사용하여 청구서 데이터를 추출하고 저장합니다.
If
Code
Slack
+
If
Code
Slack
26 노드PDF Vector
청구서 처리
고객 성장 이메일과 Notion 고객 평가 수집 자동화
WhatsApp, GPT-4V, Google Sheets를 사용하여 영수증 데이터 추출 및 정리
If
Code
Notion
+
If
Code
Notion
18 노드Shelly-Ann Davy
청구서 처리