8
n8n 한국어amn8n.com

Jotform과 QuickBooks를 사용하여 고객에게 발행서를 생성하고 알림을 보내기

고급

이것은자동화 워크플로우로, 48개의 노드를 포함합니다.주로 If, Set, Code, Switch, Webhook 등의 노드를 사용하며. Jotform과 QuickBooks를 사용하여 인보이스 생성并发송 AI 요약 알림

사전 요구사항
  • HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
  • OpenAI API Key

카테고리

-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "KQbawPw1ywuc0eGO",
  "meta": {
    "instanceId": "3549451ca835035557d5dc1c3d9e6ba924e7314534a74c901f66b91f9ef6023e",
    "templateCredsSetupCompleted": true
  },
  "name": "Generate Invoices and Send Reminders for Customers with Jotform and QuickBooks",
  "tags": [],
  "nodes": [
    {
      "id": "0ee2cee9-681e-45c7-9216-dec123742bc2",
      "name": "양식 제출 수신",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -464,
        0
      ],
      "webhookId": "fdbfa94e-4df0-4fe4-86b9-41f20ba83079",
      "parameters": {
        "path": "requests",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "92a0d734-7408-42ec-942a-5f63ec5f64bb",
      "name": "조건문",
      "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": "17d10f15-2a8a-4186-9a72-34d3770331bb",
      "name": "제품 정보 가져오기",
      "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": "cbd7276e-0569-4062-ae59-680d3236e8f6",
      "name": "송장 생성",
      "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": "6b28414b-72b8-4e26-adea-402c9e59163d",
      "name": "송장 발송",
      "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": "470f1239-6ac7-4d01-bf20-1537618d65dc",
      "name": "고객 존재 여부 확인",
      "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": "acc16aeb-cf5c-4d02-9cd6-c8d847b94fa0",
      "name": "메모",
      "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": "89deb6f7-daed-472f-bd2e-d8ac900d9d67",
      "name": "메모1",
      "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": "5b37fa39-fd2f-4059-b588-d381b10b0f93",
      "name": "메모2",
      "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": "0cd6a217-c27c-4eb8-80c7-6f2c8042f592",
      "name": "고객 생성",
      "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": "3af11658-34ae-46db-b0ef-591842598676",
      "name": "고객 정보 업데이트",
      "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": "0240fabc-19b9-4fac-a4f8-39ca7eca10ed",
      "name": "메모3",
      "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": "55057374-89e8-4d09-99ef-03e6431b12e5",
      "name": "메모4",
      "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": "a9f1d66c-3a73-47a3-8c47-2aed6585a29b",
      "name": "메모5",
      "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": "d676861e-120a-458b-839e-2c1add976bec",
      "name": "메모6",
      "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": "77305ded-214f-4d16-8993-70f6fda69f8e",
      "name": "메모7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1664,
        -416
      ],
      "parameters": {
        "width": 1072,
        "height": 1280,
        "content": "## Generate Invoices and Send Reminders 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, emailing it — all triggered by a form submission (via **Jotform**), and sending invoice reminders.\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### 6- Store The Invoice In DB\n* Stores the needed invoice details in the DB.\n\n### 7- Send Reminders\n* Every day at 8 AM, the automation checks each invoice to decide whether to:\n    * send a reminder email,\n    * skip and send it later, or\n    * delete the invoice from the DB (if it's paid or all reminders have been sent).\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)\n- Email setup, update email nodes (`Send reminder email` & `Send reminders sent summary`)\n- Create data table with the following columns:\n    * invoiceId (string)\n    * remainingAmount (number)\n    * currency (string)\n    * remindersSent (number)\n    * lastSentAt (date time)\n- Update `Add reminders config` node so update the data table id and intervals in days (default is after 2 days, then after 3 days and finally after 5 days )\n- LLM model credentials"
      },
      "typeVersion": 1
    },
    {
      "id": "48bc6ee7-aff6-4197-840c-ddaea49b6336",
      "name": "메모8",
      "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": "d1f516d0-bed4-4946-80aa-701809317d07",
      "name": "데이터 형식 지정",
      "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": "91b01b8d-8a27-4867-8f45-1739c0ada19d",
      "name": "메모9",
      "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": "7ef2bbb3-5ae0-4859-8b0b-d27c4cf1db40",
      "name": "고객 ID 추가",
      "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": "798cc352-8cb1-44b8-9a4d-eb6f861578de",
      "name": "메모10",
      "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": "fb80d92a-9bb5-4090-8c6a-e2cc7aa47ca8",
      "name": "항목 ID 추가",
      "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
    },
    {
      "id": "01b200fe-27ae-482d-977c-c786c3c890b8",
      "name": "알림 설정 추가",
      "type": "n8n-nodes-base.set",
      "position": [
        960,
        704
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"dataTableId\": \"\",\n  \"reminderIntervalsInDays\": [2, 3, 5],\n  isInvoiceTrigger: {{ $json[\"Day of week\"] ? false : true }}\n}\n "
      },
      "typeVersion": 3.4
    },
    {
      "id": "82442769-b159-4420-907e-5b84da107365",
      "name": "알림 이메일 발송",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        2928,
        1072
      ],
      "webhookId": "8f9ba8d7-7a97-4926-b640-8dc93c30eed8",
      "parameters": {
        "html": "=<!DOCTYPE html>\n<html>\n<head>\n  <style>\n    body {\n      font-family: Arial, sans-serif;\n      color: #333;\n      line-height: 1.6;\n    }\n    .container {\n      width: 100%;\n      max-width: 600px;\n      margin: 0 auto;\n      padding: 20px;\n      border: 1px solid #f1f1f1;\n      border-radius: 5px;\n      background-color: #f9f9f9;\n    }\n    .header {\n      text-align: center;\n      background-color: #007bff;\n      color: white;\n      padding: 10px;\n      border-radius: 5px;\n    }\n    .footer {\n      text-align: center;\n      color: #777;\n      font-size: 0.8em;\n      margin-top: 20px;\n    }\n    .button {\n      background-color: #28a745;\n      color: white;\n      text-decoration: none;\n      padding: 10px 20px;\n      border-radius: 5px;\n      display: inline-block;\n      margin-top: 20px;\n    }\n  </style>\n</head>\n<body>\n  <div class=\"container\">\n    <div class=\"header\">\n      <h2>Invoice Reminder: {{ $json.DocNumber }}</h2>\n    </div>\n    \n    <p>Dear,</p>\n    \n    <p>This is a friendly reminder that your invoice with us is due soon. We kindly ask you to review and complete the payment as soon as possible to avoid any delays.</p>\n    \n    <p><strong>Invoice Number:</strong> {{ $json.DocNumber }}</p>\n    <p><strong>Due Date:</strong> {{ $json.DueDate }}</p>\n    \n    <p>Please click the button below to view and pay your invoice:</p>\n    \n    <a href=\"{{ $json.InvoiceLink }}\" class=\"button\">View & Pay Invoice</a>\n    \n    <p>Thank you for your prompt attention to this matter. If you have any questions or need assistance, feel free to contact us.</p>\n    \n    <p>Best regards, <br>\n    [Your Company Name] <br>\n    [Your Contact Information]</p>\n    \n    <div class=\"footer\">\n      <p>&copy; {{ $now.year }} [Your Company Name]. All rights reserved.</p>\n    </div>\n  </div>\n</body>\n</html>\n",
        "options": {},
        "subject": "=Friendly Reminder: Your Invoice is Due Soon – {{ $json.DocNumber }}",
        "toEmail": "={{ $json.BillEmail.Address }}",
        "fromEmail": "reminders@example.com"
      },
      "credentials": {
        "smtp": {
          "id": "awV8UBK3MYzosMxe",
          "name": "Mailtrap SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e3ae7c0a-234e-453b-848e-e767ff3e9782",
      "name": "DB에 송장 ID 삽입",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1664,
        512
      ],
      "parameters": {
        "columns": {
          "value": {
            "currency": "={{ $('Send the invoice').item.json.CurrencyRef.value }}",
            "invoiceId": "={{ $('Send the invoice').item.json.Id }}",
            "remindersSent": 0,
            "remainingAmount": "={{ $('Send the invoice').item.json.Balance }}"
          },
          "schema": [
            {
              "id": "invoiceId",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "invoiceId",
              "defaultMatch": false
            },
            {
              "id": "remainingAmount",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "remainingAmount",
              "defaultMatch": false
            },
            {
              "id": "currency",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "currency",
              "defaultMatch": false
            },
            {
              "id": "remindersSent",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "remindersSent",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "optimizeBulk": false
        },
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Add reminders config').item.json.dataTableId }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9e0665a6-4f7a-44b6-9869-96dd33bec396",
      "name": "송장 목록 가져오기",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1664,
        880
      ],
      "parameters": {
        "operation": "get",
        "returnAll": true,
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Add reminders config').item.json.dataTableId }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2a9f0ce2-e79a-4fb6-8a0f-3a1215b7261e",
      "name": "송장 정보 가져오기",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        2368,
        1104
      ],
      "parameters": {
        "resource": "invoice",
        "invoiceId": "={{ $json.invoiceId }}"
      },
      "credentials": {
        "quickBooksOAuth2Api": {
          "id": "E1S8XZZk9iMCPDSN",
          "name": "QuickBooks Online account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "732054e0-e0ce-4c90-a519-21f0e56c94ce",
      "name": "조건문2",
      "type": "n8n-nodes-base.if",
      "position": [
        1312,
        704
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "82853a4e-d488-49cd-8e36-ba1a737c519b",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.isInvoiceTrigger }}",
              "rightValue": "0"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2d070d34-2b5a-4126-82c3-18ea4ddfd308",
      "name": "AI 에이전트",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2736,
        544
      ],
      "parameters": {
        "text": "={{ $('Get today's sent reminders').all() }}",
        "options": {
          "systemMessage": "=You are an AI assistant that generates a daily reminder summary for invoices. You will receive a list of invoice data and your task is to summarize how many reminders have been sent for each invoice today.\n\nInput Data:\nThe input data is a list of invoices with the following fields:\n- remainingAmount: The remaining amount the customer still needs to pay.\n- currency: The currency of the remaining amount (e.g., USD, EUR).\n- remindersSent: The total number of reminders that have been sent for this invoice.\n\nGoal:\n1- Summarize the reminders sent today:\n- Count how many reminders have been sent for all invoices provided in the input.\n\n2- Generate a professional HTML email summary:\n- Use the information from the invoices to create a summary in HTML format.\n- Include a greeting for the team (e.g., \"Sales Team\", \"Finance Team\").\n- Display a total count of reminders sent today.\n- Include invoice-level details such as invoiceId, remainingAmount, currency, and remindersSent.\n\nFormatting Guidelines:\n1- The summary should always be structured as an HTML email.\n2- The summary should be clear, readable, and professional.\n3- You may choose the layout that feels most appropriate, but always include:\n  - A greeting (e.g., \"Dear Team,\").\n  - A total number of reminders sent today.\n  - A list of invoices with invoiceId, remainingAmount, currency, and remindersSent.\n4- Closing with generic sign-off.\n\nExample input:\n[\n  {\n    \"id\": 70,\n    \"createdAt\": \"2025-10-10T16:50:54.851Z\",\n    \"updatedAt\": \"2025-10-15T16:50:54.851Z\",\n    \"invoiceId\": \"158\",\n    \"remainingAmount\": 10,\n    \"currency\": \"USD\",\n    \"remindersSent\": 5\n  },\n  {\n    \"id\": 80,\n    \"createdAt\": \"2025-10-12T17:50:54.851Z\",\n    \"updatedAt\": \"2025-10-15T16:50:54.851Z\",\n    \"invoiceId\": \"160\",\n    \"remainingAmount\": 30,\n    \"currency\": \"EUR\",\n    \"remindersSent\": 3\n  }\n]\n\nExample of Expected Output:\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  <title>Reminder Summary for Today</title>\n  <style>\n    body { font-family: Arial, sans-serif; color: #333; line-height: 1.6; }\n    .table { width: 100%; margin-top: 20px; border-collapse: collapse; }\n    .table th, .table td { border: 1px solid #ddd; padding: 8px; text-align: left; }\n    .table th { background-color: #f2f2f2; }\n    .summary { font-size: 16px; margin-top: 20px; }\n  </style>\n</head>\n<body>\n  <div class=\"content\">\n    <p>Dear Sales Team,</p>\n    \n    <p>Here is a summary of the reminders sent today:</p>\n    \n    <div class=\"summary\">\n      <strong>Total reminders sent today: 2</strong>\n    </div>\n\n    <table class=\"table\">\n      <thead>\n        <tr>\n          <th>Invoice ID</th>\n          <th>Remaining Amount</th>\n          <th>Currency</th>\n          <th>Total Reminders Sent</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>158</td>\n          <td>$10.00</td>\n          <td>USD</td>\n          <td>5</td>\n        </tr>\n        <tr>\n          <td>160</td>\n          <td>€30.00</td>\n          <td>EUR</td>\n          <td>3</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <p>If you need further details, feel free to reach out!</p>\n\n    <p>Best regards,<br>AI Assistant</p>\n  </div>\n</body>\n</html>"
        },
        "promptType": "define"
      },
      "executeOnce": true,
      "typeVersion": 2.2
    },
    {
      "id": "7937ae1d-7795-43e6-8a46-7683e8c9b887",
      "name": "OpenAI 채팅 모델",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2736,
        752
      ],
      "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": "d85b60a1-eee2-4264-9872-3ba1aa080fd6",
      "name": "발송된 알림 요약 전송",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        3008,
        544
      ],
      "webhookId": "8f9ba8d7-7a97-4926-b640-8dc93c30eed8",
      "parameters": {
        "html": "={{ $json.output }}",
        "options": {},
        "subject": "=Summary of today's reminders sent",
        "toEmail": "=sales@example.com",
        "fromEmail": "reminders@example.com"
      },
      "credentials": {
        "smtp": {
          "id": "awV8UBK3MYzosMxe",
          "name": "Mailtrap SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2adb26b7-138d-47ac-9994-f41734a08bb1",
      "name": "스위치",
      "type": "n8n-nodes-base.switch",
      "position": [
        2672,
        1120
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "send now",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "df179cc3-60b8-4b49-9fb7-0adabcc3e394",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.Balance > 0 && DateTime.fromISO($('Loop over invoices').item.json.updatedAt).plus($('Add reminders config').item.json.reminderIntervalsInDays[$('Loop over invoices').item.json.remindersSent], 'days').format('yyyy-MM-dd') == $now.format('yyyy-MM-dd') }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "already paid ",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "cf03d75d-6560-42ed-8293-3d5e9399b9e3",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.Balance == 0 }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "send later",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "81cb838e-79c8-4c92-964f-f7f5cd44a498",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": true,
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.3
    },
    {
      "id": "1e7f2060-d40c-4286-8dcc-8ba10e7e305a",
      "name": "알림 일정 트리거",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        608,
        704
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2a099299-21f0-4cab-be4d-9681b3b2275c",
      "name": "메모11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        576
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 320,
        "content": "## Schedule Trigger\nSchedules reminders trigger daily at 8 AM"
      },
      "typeVersion": 1
    },
    {
      "id": "e0a1ff93-c702-4d33-9f4e-0ddd7f1100c9",
      "name": "메모12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        528
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 368,
        "content": "## Add Reminders Config\nAdds reminders config details like `intervals in days` so first reminder will be sent after 2 days, second one after 3 days and final one after 5 days"
      },
      "typeVersion": 1
    },
    {
      "id": "b9bd6ddb-e0c3-4854-8c8b-4a22b38bdd2b",
      "name": "메모13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        528
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 368,
        "content": "## Check Trigger\nChecks if the previous node has been executed by the above workflow or by the schedule trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "77cb167f-0c90-4aa4-b020-c77b835a26d1",
      "name": "메모14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1568,
        352
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 336,
        "content": "## Insert Invoice To DB\nInserts newly created invoice needed details to DB so customer will be notified later on about the invoice"
      },
      "typeVersion": 1
    },
    {
      "id": "d31000ab-9d9d-4227-9a93-01036c923d9a",
      "name": "메모15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1568,
        736
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 336,
        "content": "## Get All Invoices\nGets all the invoices from DB"
      },
      "typeVersion": 1
    },
    {
      "id": "56b19a69-6d11-4076-9e61-6356bd2adfa2",
      "name": "메모16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1920,
        752
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 320,
        "content": "## Loop Over Invoices\nLoops over invoices one by one"
      },
      "typeVersion": 1
    },
    {
      "id": "e91fe671-1908-49b9-8b62-e84cd4fe74c5",
      "name": "송장 목록 반복 처리",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2016,
        880
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7084224a-1b22-4104-bf1b-063591afc78f",
      "name": "메모17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2272,
        544
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 352,
        "content": "## Get Sent Reminders\nGets today's sent reminders from DB"
      },
      "typeVersion": 1
    },
    {
      "id": "c81a0b9a-e704-4887-8510-cb8809ee3039",
      "name": "메모18",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2272,
        944
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 368,
        "content": "## Get Invoice Details\nGets the invoice details from QBO so we know whether or not any changes have been made or not"
      },
      "typeVersion": 1
    },
    {
      "id": "ce3e2b9c-f7b7-4d45-a92d-df893eec233f",
      "name": "오늘 발송된 알림 가져오기",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        2368,
        688
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "lastSentAt",
              "keyValue": "={{ $now.startOf('day').toUTC().toString() }}",
              "condition": "gte"
            }
          ]
        },
        "matchType": "allConditions",
        "operation": "get",
        "returnAll": true,
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Add reminders config').item.json.dataTableId }}"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "f2327c4c-3e7d-4c77-89ac-a3a8ec26c10e",
      "name": "메모19",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2624,
        416
      ],
      "parameters": {
        "color": 7,
        "width": 592,
        "height": 480,
        "content": "## Summarize Sent Reminders & Send An Email\nSummarizes today's sent reminders using AI and send a summery email to the team like sales team or finance team"
      },
      "typeVersion": 1
    },
    {
      "id": "793fa0f1-ac9e-47f0-bc79-898740e607c0",
      "name": "발송된 알림 횟수 증가",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        3136,
        1072
      ],
      "parameters": {
        "columns": {
          "value": {
            "lastSentAt": "={{ $now.toISO() }}",
            "remindersSent": "={{ $('Loop over invoices').item.json.remindersSent + 1 }} "
          },
          "schema": [
            {
              "id": "invoiceId",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "invoiceId",
              "defaultMatch": false
            },
            {
              "id": "remainingAmount",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "remainingAmount",
              "defaultMatch": false
            },
            {
              "id": "currency",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "currency",
              "defaultMatch": false
            },
            {
              "id": "remindersSent",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "remindersSent",
              "defaultMatch": false
            },
            {
              "id": "lastSentAt",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "lastSentAt",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "filters": {
          "conditions": [
            {
              "keyName": "invoiceId",
              "keyValue": "={{ $('Loop over invoices').item.json.invoiceId }}"
            }
          ]
        },
        "options": {},
        "matchType": "allConditions",
        "operation": "update",
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Add reminders config').item.json.dataTableId }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "756cbd66-5cba-409e-9fda-b502389e549f",
      "name": "송장 삭제",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        3616,
        1232
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyValue": "={{ $('Loop over invoices').item.json.id }}"
            }
          ]
        },
        "options": {},
        "matchType": "allConditions",
        "operation": "deleteRows",
        "dataTableId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Add reminders config').item.json.dataTableId }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8595b67d-afc5-432b-a71e-2129ec1086b5",
      "name": "조건문3",
      "type": "n8n-nodes-base.if",
      "position": [
        3344,
        1072
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f7c9422b-bfd2-4006-9d81-d2332e95532a",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.remindersSent >= $('Add reminders config').item.json.reminderIntervalsInDays.length }}",
              "rightValue": 0
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "36acca5c-6e26-4694-bf3a-f32e5a2393a2",
      "name": "메모20",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2624,
        944
      ],
      "parameters": {
        "color": 7,
        "width": 1184,
        "height": 480,
        "content": "## Send Reminders Logic\nThe logic that decides whether or not to send a reminder email now, skip it and send it later or delete the invoice/s from DB (because all the reminders have been sent or the invoice has been paid)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "Receive form submission": [
      {
        "json": {
          "body": {
            "name": "Adrian Mathews",
            "email": "gexupariq@mailinator.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>"
          },
          "query": {},
          "params": {},
          "headers": {
            "host": "d1e9c8896723.ngrok-free.app",
            "accept": "*/*",
            "referer": "https://submit.jotform.com",
            "newrelic": "eyJ2IjpbMCwxXSwiZCI6eyJ0eSI6IkFwcCIsImFjIjoiNjkxNjIwIiwiYXAiOiIyMzAwNjE1MDQiLCJpZCI6IjA4ZDNjNWMxYzllOTFjOTUiLCJ0ciI6ImJlYjVkMjFhZGM5NDg0YzQiLCJ0eCI6ImJlYjVkMjFhZGM5NDg0YzQiLCJwciI6MS4zODg2NCwic2EiOnRydWUsInRpIjoxNzYwNTI5MDQ3NjY5fX0=",
            "tracestate": "691620@nr=0-0-691620-230061504-08d3c5c1c9e91c95-beb5d21adc9484c4-1-1.388638-1760529047669",
            "user-agent": "Mozilla/5.0 (api.jotform.com; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13",
            "traceparent": "00-0000000000000000beb5d21adc9484c4-08d3c5c1c9e91c95-01",
            "content-type": "application/json",
            "content-length": "517",
            "accept-encoding": "deflate, gzip, br, zstd",
            "x-forwarded-for": "35.222.57.81",
            "x-forwarded-host": "d1e9c8896723.ngrok-free.app",
            "x-forwarded-proto": "https",
            "jf-trace-parent-id": "bd412a79ce24cd1e"
          },
          "webhookUrl": "http://localhost:5678/webhook-test/requests",
          "executionMode": "test"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "104104d2-9b18-4249-a5af-1a103ab2ec15",
  "connections": {
    "92a0d734-7408-42ec-942a-5f63ec5f64bb": {
      "main": [
        [
          {
            "node": "3af11658-34ae-46db-b0ef-591842598676",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "0cd6a217-c27c-4eb8-80c7-6f2c8042f592",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "732054e0-e0ce-4c90-a519-21f0e56c94ce": {
      "main": [
        [
          {
            "node": "e3ae7c0a-234e-453b-848e-e767ff3e9782",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "9e0665a6-4f7a-44b6-9869-96dd33bec396",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8595b67d-afc5-432b-a71e-2129ec1086b5": {
      "main": [
        [
          {
            "node": "756cbd66-5cba-409e-9fda-b502389e549f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "e91fe671-1908-49b9-8b62-e84cd4fe74c5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2adb26b7-138d-47ac-9994-f41734a08bb1": {
      "main": [
        [
          {
            "node": "82442769-b159-4420-907e-5b84da107365",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "756cbd66-5cba-409e-9fda-b502389e549f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "e91fe671-1908-49b9-8b62-e84cd4fe74c5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2d070d34-2b5a-4126-82c3-18ea4ddfd308": {
      "main": [
        [
          {
            "node": "d85b60a1-eee2-4264-9872-3ba1aa080fd6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fb80d92a-9bb5-4090-8c6a-e2cc7aa47ca8": {
      "main": [
        [
          {
            "node": "cbd7276e-0569-4062-ae59-680d3236e8f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d1f516d0-bed4-4946-80aa-701809317d07": {
      "main": [
        [
          {
            "node": "470f1239-6ac7-4d01-bf20-1537618d65dc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e0665a6-4f7a-44b6-9869-96dd33bec396": {
      "main": [
        [
          {
            "node": "e91fe671-1908-49b9-8b62-e84cd4fe74c5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "756cbd66-5cba-409e-9fda-b502389e549f": {
      "main": [
        [
          {
            "node": "e91fe671-1908-49b9-8b62-e84cd4fe74c5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7ef2bbb3-5ae0-4859-8b0b-d27c4cf1db40": {
      "main": [
        [
          {
            "node": "17d10f15-2a8a-4186-9a72-34d3770331bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2a9f0ce2-e79a-4fb6-8a0f-3a1215b7261e": {
      "main": [
        [
          {
            "node": "2adb26b7-138d-47ac-9994-f41734a08bb1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "17d10f15-2a8a-4186-9a72-34d3770331bb": {
      "main": [
        [
          {
            "node": "fb80d92a-9bb5-4090-8c6a-e2cc7aa47ca8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6b28414b-72b8-4e26-adea-402c9e59163d": {
      "main": [
        [
          {
            "node": "01b200fe-27ae-482d-977c-c786c3c890b8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7937ae1d-7795-43e6-8a46-7683e8c9b887": {
      "ai_languageModel": [
        [
          {
            "node": "2d070d34-2b5a-4126-82c3-18ea4ddfd308",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "cbd7276e-0569-4062-ae59-680d3236e8f6": {
      "main": [
        [
          {
            "node": "6b28414b-72b8-4e26-adea-402c9e59163d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e91fe671-1908-49b9-8b62-e84cd4fe74c5": {
      "main": [
        [
          {
            "node": "ce3e2b9c-f7b7-4d45-a92d-df893eec233f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "2a9f0ce2-e79a-4fb6-8a0f-3a1215b7261e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0cd6a217-c27c-4eb8-80c7-6f2c8042f592": {
      "main": [
        [
          {
            "node": "7ef2bbb3-5ae0-4859-8b0b-d27c4cf1db40",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "82442769-b159-4420-907e-5b84da107365": {
      "main": [
        [
          {
            "node": "793fa0f1-ac9e-47f0-bc79-898740e607c0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3af11658-34ae-46db-b0ef-591842598676": {
      "main": [
        [
          {
            "node": "7ef2bbb3-5ae0-4859-8b0b-d27c4cf1db40",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01b200fe-27ae-482d-977c-c786c3c890b8": {
      "main": [
        [
          {
            "node": "732054e0-e0ce-4c90-a519-21f0e56c94ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "793fa0f1-ac9e-47f0-bc79-898740e607c0": {
      "main": [
        [
          {
            "node": "8595b67d-afc5-432b-a71e-2129ec1086b5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e3ae7c0a-234e-453b-848e-e767ff3e9782": {
      "main": [
        []
      ]
    },
    "0ee2cee9-681e-45c7-9216-dec123742bc2": {
      "main": [
        [
          {
            "node": "d1f516d0-bed4-4946-80aa-701809317d07",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ce3e2b9c-f7b7-4d45-a92d-df893eec233f": {
      "main": [
        [
          {
            "node": "2d070d34-2b5a-4126-82c3-18ea4ddfd308",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1e7f2060-d40c-4286-8dcc-8ba10e7e305a": {
      "main": [
        [
          {
            "node": "01b200fe-27ae-482d-977c-c786c3c890b8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "470f1239-6ac7-4d01-bf20-1537618d65dc": {
      "main": [
        [
          {
            "node": "92a0d734-7408-42ec-942a-5f63ec5f64bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수48
카테고리-
노드 유형13
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34