재무 및 회계를 위한 AI 기반 송장 알림 및 결제 추적기
이것은Invoice Processing, Multimodal AI분야의자동화 워크플로우로, 35개의 노드를 포함합니다.주로 If, Set, Code, Webhook, Postgres 등의 노드를 사용하며. 재무 및 회계를 위해 설계된 AI 기반 송장 알림 및 결제 추적기
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •PostgreSQL 데이터베이스 연결 정보
- •OpenAI API Key
사용된 노드 (35)
{
"id": "uOMGyPBvAP5ytb64",
"meta": {
"instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
"templateCredsSetupCompleted": true
},
"name": "AI-Powered Invoice Reminder & Payment Tracker for Finance & Accounting",
"tags": [],
"nodes": [
{
"id": "5e70b579-3fec-471f-8788-2205c066e21f",
"name": "일일 확인 예약",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Runs every day at 9 AM",
"position": [
0,
-304
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 9 * * *"
}
]
}
},
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "75c19552-8451-4c27-978c-54d6ea422b84",
"name": "미결제 송장 가져오기",
"type": "n8n-nodes-base.postgres",
"notes": "Query database for unpaid/overdue invoices",
"position": [
224,
-304
],
"parameters": {
"query": "SELECT \n invoice_id,\n client_name,\n client_email,\n invoice_number,\n invoice_amount,\n currency,\n issue_date,\n due_date,\n payment_status,\n days_overdue,\n last_reminder_sent\nFROM invoices \nWHERE payment_status != 'paid' \nAND due_date <= CURRENT_DATE + INTERVAL '7 days'\nORDER BY due_date ASC;",
"options": {},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"id": "4Y4qEFGqF2krfRHZ",
"name": "Postgres-test"
}
},
"notesInFlow": true,
"typeVersion": 2.4
},
{
"id": "3bf276a9-2041-4f5c-995c-ca3ffb4f0cd0",
"name": "연체 송장 필터링",
"type": "n8n-nodes-base.if",
"notes": "Separate overdue from upcoming",
"position": [
448,
-304
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition-1",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.payment_status }}",
"rightValue": "unpaid"
},
{
"id": "condition-2",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.days_overdue }}",
"rightValue": 0
}
]
}
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "000ea7a3-3db4-409d-bdea-b416590933e4",
"name": "알림 로직 계산",
"type": "n8n-nodes-base.code",
"notes": "Smart logic for reminder timing",
"position": [
672,
-304
],
"parameters": {
"jsCode": "const invoices = $input.all();\nconst today = new Date();\nconst results = [];\n\nfor (const invoice of invoices) {\n const dueDate = new Date(invoice.json.due_date);\n const issueDate = new Date(invoice.json.issue_date);\n const lastReminder = invoice.json.last_reminder_sent ? new Date(invoice.json.last_reminder_sent) : null;\n \n // Calculate days overdue\n const daysOverdue = Math.floor((today - dueDate) / (1000 * 60 * 60 * 24));\n \n // Calculate days since last reminder\n const daysSinceReminder = lastReminder ? Math.floor((today - lastReminder) / (1000 * 60 * 60 * 24)) : 999;\n \n // Determine reminder type and urgency\n let reminderType = '';\n let urgencyLevel = '';\n let shouldSendReminder = false;\n \n if (daysOverdue > 30 && daysSinceReminder >= 3) {\n reminderType = 'final_notice';\n urgencyLevel = 'critical';\n shouldSendReminder = true;\n } else if (daysOverdue > 14 && daysSinceReminder >= 5) {\n reminderType = 'second_reminder';\n urgencyLevel = 'high';\n shouldSendReminder = true;\n } else if (daysOverdue > 0 && daysSinceReminder >= 7) {\n reminderType = 'first_reminder';\n urgencyLevel = 'medium';\n shouldSendReminder = true;\n } else if (daysOverdue === 0) {\n reminderType = 'due_today';\n urgencyLevel = 'medium';\n shouldSendReminder = true;\n } else if (daysOverdue < 0 && daysOverdue >= -3 && !lastReminder) {\n reminderType = 'upcoming_reminder';\n urgencyLevel = 'low';\n shouldSendReminder = true;\n }\n \n if (shouldSendReminder) {\n results.push({\n json: {\n ...invoice.json,\n daysOverdue,\n daysSinceReminder,\n reminderType,\n urgencyLevel,\n shouldSendReminder\n }\n });\n }\n}\n\nreturn results;"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "2879e970-5943-4a87-b74c-dd92e9c83662",
"name": "AI 프롬프트 준비",
"type": "n8n-nodes-base.set",
"position": [
896,
-304
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ai-prompt",
"name": "aiPrompt",
"type": "string",
"value": "=Generate a professional and friendly payment reminder email for the following invoice:\n\nClient Name: {{ $json.client_name }}\nInvoice Number: {{ $json.invoice_number }}\nAmount: {{ $json.currency }} {{ $json.invoice_amount }}\nIssue Date: {{ $json.issue_date }}\nDue Date: {{ $json.due_date }}\nDays Overdue: {{ $json.daysOverdue }}\nReminder Type: {{ $json.reminderType }}\nUrgency: {{ $json.urgencyLevel }}\n\nThe email should:\n- Be courteous and professional\n- Clearly state the outstanding amount and invoice details\n- Mention the due date and overdue status if applicable\n- Include a polite call-to-action for payment\n- Provide payment instructions or link\n- Be appropriately urgent based on the reminder type\n- End with a professional signature\n\nFormat the response as a complete email with subject line."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5e61c6ea-62df-4c69-95d8-5b5dd7a0eb66",
"name": "이메일 형식 지정",
"type": "n8n-nodes-base.code",
"notes": "Format email with HTML styling",
"position": [
1472,
-304
],
"parameters": {
"jsCode": "const items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n const aiResponse = item.json.message?.content || item.json.response || '';\n \n // Extract subject and body from AI response\n const subjectMatch = aiResponse.match(/Subject:(.+?)\\n/i);\n const subject = subjectMatch ? subjectMatch[1].trim() : `Payment Reminder - Invoice ${item.json.invoice_number}`;\n \n // Remove subject line from body\n let body = aiResponse.replace(/Subject:(.+?)\\n/i, '').trim();\n \n // Add invoice details table\n const invoiceTable = `\n <div style=\"background-color: #f5f5f5; padding: 20px; border-radius: 8px; margin: 20px 0;\">\n <h3 style=\"color: #333; margin-top: 0;\">Invoice Details</h3>\n <table style=\"width: 100%; border-collapse: collapse;\">\n <tr>\n <td style=\"padding: 8px; font-weight: bold;\">Invoice Number:</td>\n <td style=\"padding: 8px;\">${item.json.invoice_number}</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; font-weight: bold;\">Amount:</td>\n <td style=\"padding: 8px;\">${item.json.currency} ${item.json.invoice_amount}</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; font-weight: bold;\">Due Date:</td>\n <td style=\"padding: 8px;\">${item.json.due_date}</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; font-weight: bold;\">Status:</td>\n <td style=\"padding: 8px; color: ${item.json.daysOverdue > 0 ? '#d32f2f' : '#f57c00'};\">\n ${item.json.daysOverdue > 0 ? `Overdue by ${item.json.daysOverdue} days` : 'Due Soon'}\n </td>\n </tr>\n </table>\n </div>\n `;\n \n // Convert body to HTML format\n body = body.replace(/\\n/g, '<br>').replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>');\n \n // Combine into HTML email\n const htmlBody = `\n <html>\n <body style=\"font-family: Arial, sans-serif; line-height: 1.6; color: #333;\">\n ${body.split('<br>')[0]}\n ${invoiceTable}\n ${body.split('<br>').slice(1).join('<br>')}\n <div style=\"margin-top: 30px; padding-top: 20px; border-top: 1px solid #ddd; font-size: 12px; color: #666;\">\n <p>This is an automated reminder. If you have already made the payment, please disregard this email.</p>\n </div>\n </body>\n </html>\n `;\n \n results.push({\n json: {\n ...item.json,\n emailSubject: subject,\n emailBody: htmlBody,\n emailBodyPlain: body.replace(/<[^>]*>/g, '')\n }\n });\n}\n\nreturn results;"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "49d9b854-ffda-4125-b07f-9997b799d5aa",
"name": "이메일 알림 전송",
"type": "n8n-nodes-base.emailSend",
"notes": "Send the reminder email",
"position": [
1696,
-304
],
"webhookId": "b74f682a-e6cc-452f-b8ba-2d4390c6e61a",
"parameters": {
"options": {
"appendAttribution": false,
"allowUnauthorizedCerts": false
},
"subject": "={{ $json.emailSubject }}",
"toEmail": "abc@gmail.com",
"fromEmail": "xyz@gmail.com"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"notesInFlow": true,
"typeVersion": 2.1
},
{
"id": "6f307b3e-9222-4df7-a92b-9c7dbcea6d79",
"name": "알림 상태 업데이트",
"type": "n8n-nodes-base.postgres",
"notes": "Log reminder sent in database",
"position": [
1920,
-304
],
"parameters": {
"query": "=UPDATE invoices \nSET \n last_reminder_sent = CURRENT_TIMESTAMP,\n reminder_count = reminder_count + 1,\n last_reminder_type = '{{ $json.reminderType }}'\nWHERE invoice_id = '{{ $json.invoice_id }}';",
"options": {},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"id": "4Y4qEFGqF2krfRHZ",
"name": "Postgres-test"
}
},
"notesInFlow": true,
"typeVersion": 2.4
},
{
"id": "07f23377-e924-49b1-b803-88aedd3de5bd",
"name": "활동 로그 생성",
"type": "n8n-nodes-base.set",
"position": [
2144,
-304
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "log-entry",
"name": "logEntry",
"type": "object",
"value": "={\n \"timestamp\": \"{{ $now.toISO() }}\",\n \"invoice_id\": \"{{ $json.invoice_id }}\",\n \"invoice_number\": \"{{ $json.invoice_number }}\",\n \"client_name\": \"{{ $json.client_name }}\",\n \"client_email\": \"{{ $json.client_email }}\",\n \"amount\": \"{{ $json.invoice_amount }}\",\n \"reminder_type\": \"{{ $json.reminderType }}\",\n \"urgency_level\": \"{{ $json.urgencyLevel }}\",\n \"days_overdue\": {{ $json.daysOverdue }},\n \"status\": \"reminder_sent\"\n}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5884f963-de92-4613-ab16-5fc5bff620cd",
"name": "활동 로그에 저장",
"type": "n8n-nodes-base.postgres",
"position": [
2368,
-304
],
"parameters": {
"table": {
"__rl": true,
"mode": "list",
"value": "invoice_activity_log"
},
"schema": {
"__rl": true,
"mode": "list",
"value": "public"
},
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": []
},
"options": {}
},
"credentials": {
"postgres": {
"id": "4Y4qEFGqF2krfRHZ",
"name": "Postgres-test"
}
},
"typeVersion": 2.4
},
{
"id": "473efd7a-44f7-4724-a638-731e337e21e2",
"name": "일일 요약 생성",
"type": "n8n-nodes-base.code",
"notes": "Create summary report",
"position": [
2592,
-304
],
"parameters": {
"jsCode": "const allItems = $input.all();\nconst summary = {\n totalReminders: allItems.length,\n byUrgency: {},\n byType: {},\n totalAmountOutstanding: 0,\n clients: []\n};\n\nfor (const item of allItems) {\n // Count by urgency\n summary.byUrgency[item.json.urgencyLevel] = (summary.byUrgency[item.json.urgencyLevel] || 0) + 1;\n \n // Count by type\n summary.byType[item.json.reminderType] = (summary.byType[item.json.reminderType] || 0) + 1;\n \n // Sum outstanding amounts\n summary.totalAmountOutstanding += parseFloat(item.json.invoice_amount);\n \n // Collect client info\n summary.clients.push({\n name: item.json.client_name,\n invoice: item.json.invoice_number,\n amount: item.json.invoice_amount,\n daysOverdue: item.json.daysOverdue,\n urgency: item.json.urgencyLevel\n });\n}\n\nreturn [{ json: summary }];"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "6a8c062f-093c-40cd-869f-e459ea3b0eac",
"name": "재무팀에 요약 전송",
"type": "n8n-nodes-base.emailSend",
"position": [
2816,
-304
],
"webhookId": "ed662db6-84a8-4c6c-bef4-2ac72009a056",
"parameters": {
"options": {},
"subject": "=Daily Invoice Reminder Report - {{ $now.toFormat('yyyy-MM-dd') }}",
"toEmail": "abc@gmail.com",
"fromEmail": "xyz@gmail.com"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"typeVersion": 2.1
},
{
"id": "29cc7161-00b3-4ad6-8df4-e582296fc2ed",
"name": "Webhook: 결제 수신",
"type": "n8n-nodes-base.webhook",
"notes": "Trigger when payment is received",
"position": [
-48,
368
],
"webhookId": "invoice-payment-webhook",
"parameters": {
"path": "invoice-paid",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "7338b886-106f-4aad-86b7-dd4cb743d8d1",
"name": "결제 상태 업데이트",
"type": "n8n-nodes-base.postgres",
"position": [
208,
368
],
"parameters": {
"query": "=UPDATE invoices \nSET \n payment_status = 'paid',\n payment_date = CURRENT_TIMESTAMP,\n payment_amount = {{ $json.body.amount }},\n payment_method = '{{ $json.body.payment_method }}'\nWHERE invoice_number = '{{ $json.body.invoice_number }}'\nRETURNING *;",
"options": {},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"id": "4Y4qEFGqF2krfRHZ",
"name": "Postgres-test"
}
},
"typeVersion": 2.4
},
{
"id": "f1699fe0-c7fe-48f7-9e39-62e983a7b063",
"name": "Webhook 응답",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
464,
144
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={\n \"success\": true,\n \"message\": \"Payment recorded successfully\",\n \"invoice_number\": \"{{ $json.invoice_number }}\",\n \"amount_paid\": {{ $json.payment_amount }},\n \"status\": \"{{ $json.payment_status }}\"\n}"
},
"typeVersion": 1.1
},
{
"id": "5554a9a8-1fc3-4743-9f98-896ae8a2b146",
"name": "결제 확인 전송",
"type": "n8n-nodes-base.emailSend",
"position": [
480,
576
],
"webhookId": "11ecce72-7466-43e6-8c05-d5f181c5ced7",
"parameters": {
"options": {},
"subject": "=Payment Confirmation - Invoice {{ $json.invoice_number }}",
"toEmail": "abc@gmail.com",
"fromEmail": "xyz@gmail.com"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"typeVersion": 2.1
},
{
"id": "8a45b060-fd84-4e2f-a880-5bb2db6e5cb4",
"name": "이메일 생성",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"notes": "Use AI to generate personalized email",
"position": [
1200,
-80
],
"parameters": {
"model": "=gpt-4o-mini",
"options": {
"maxTokens": 500,
"temperature": 0.7
}
},
"credentials": {
"openAiApi": {
"id": "CDQ16eImh6D4tY15",
"name": "OpenAi account 2 - test"
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "51c1516e-e53b-4435-ab0f-a8c147b3478a",
"name": "이메일 콘텐츠 생성용 AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1120,
-304
],
"parameters": {
"options": {}
},
"typeVersion": 2.2
},
{
"id": "278e2272-baa8-4c0e-81db-836db7204219",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Starts the workflow automatically each morning."
},
"typeVersion": 1
},
{
"id": "77598975-6120-472e-b9a1-d1b23c64f651",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Decides when and how to send reminders.\n"
},
"typeVersion": 1
},
{
"id": "98bbe714-19b0-4be2-8610-95074be891e8",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Keeps only overdue invoices.\n"
},
"typeVersion": 1
},
{
"id": "d4b28ef6-da2a-4d6a-8486-5cb60c272115",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Gets unpaid invoices from the database.\n"
},
"typeVersion": 1
},
{
"id": "7789557b-f95a-4336-ae2a-2247b215cc6e",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
864,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Creates a personalized AI prompt for each client.\n"
},
"typeVersion": 1
},
{
"id": "9e5d7552-ab77-48bd-9f64-78a82f9676b1",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2096,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Records reminder activity for audit.\n"
},
"typeVersion": 1
},
{
"id": "63b897b8-e59e-42c4-9d3f-194c52c850e6",
"name": "스티키 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1872,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Marks reminder as sent in the database.\n"
},
"typeVersion": 1
},
{
"id": "9ea47eb5-9b59-47df-873f-1f1060ae9bf5",
"name": "스티키 노트7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1648,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Sends the email via Gmail or SMTP.\n"
},
"typeVersion": 1
},
{
"id": "9e881563-1895-40a0-8b1b-9f8fe886e284",
"name": "스티키 노트8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1424,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Converts AI text to a professional HTML email.\n"
},
"typeVersion": 1
},
{
"id": "1b036318-bfc1-4bef-bde8-06c3523c5ccf",
"name": "스티키 노트9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
-416
],
"parameters": {
"width": 272,
"height": 288,
"content": "Uses AI to draft reminder emails.\n"
},
"typeVersion": 1
},
{
"id": "b570ef63-5ee6-4605-b461-429f1d817b8b",
"name": "스티키 노트10",
"type": "n8n-nodes-base.stickyNote",
"position": [
2544,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Prepares a report of reminders sent.\n"
},
"typeVersion": 1
},
{
"id": "10b172aa-f4bb-4ccc-a102-2593e0d78ff8",
"name": "스티키 노트11",
"type": "n8n-nodes-base.stickyNote",
"position": [
2768,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Emails summary to the finance team.\n"
},
"typeVersion": 1
},
{
"id": "a0c95551-0747-4c97-9cf7-d61ff9c12fd8",
"name": "스티키 노트12",
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
-416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Stores raw workflow data for review.\n"
},
"typeVersion": 1
},
{
"id": "4e422ead-f833-4de8-8f86-3b78116b2eab",
"name": "스티키 노트13",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
0
],
"parameters": {
"width": 192,
"height": 288,
"content": "Generates thank-you massage via AI.\n"
},
"typeVersion": 1
},
{
"id": "0816a7b8-03bd-4416-aa58-a30f1e3af0f5",
"name": "스티키 노트14",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
240
],
"parameters": {
"width": 192,
"height": 288,
"content": "Captures payment notifications.\n"
},
"typeVersion": 1
},
{
"id": "0f6e79b9-107d-4ddb-bbaa-421a07d47078",
"name": "스티키 노트15",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
240
],
"parameters": {
"width": 192,
"height": 288,
"content": "Updates invoice as “paid.”\n"
},
"typeVersion": 1
},
{
"id": "ce1221dd-7976-47d1-9cc9-81389efc72fe",
"name": "스티키 노트16",
"type": "n8n-nodes-base.stickyNote",
"position": [
448,
416
],
"parameters": {
"width": 192,
"height": 288,
"content": "Sends payment receipt to client."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "cb6d5397-a382-40d3-92c0-69022ceec1a5",
"connections": {
"5e61c6ea-62df-4c69-95d8-5b5dd7a0eb66": {
"main": [
[
{
"node": "49d9b854-ffda-4125-b07f-9997b799d5aa",
"type": "main",
"index": 0
}
]
]
},
"8a45b060-fd84-4e2f-a880-5bb2db6e5cb4": {
"ai_languageModel": [
[
{
"node": "51c1516e-e53b-4435-ab0f-a8c147b3478a",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"2879e970-5943-4a87-b74c-dd92e9c83662": {
"main": [
[
{
"node": "51c1516e-e53b-4435-ab0f-a8c147b3478a",
"type": "main",
"index": 0
}
]
]
},
"07f23377-e924-49b1-b803-88aedd3de5bd": {
"main": [
[
{
"node": "5884f963-de92-4613-ab16-5fc5bff620cd",
"type": "main",
"index": 0
}
]
]
},
"49d9b854-ffda-4125-b07f-9997b799d5aa": {
"main": [
[
{
"node": "6f307b3e-9222-4df7-a92b-9c7dbcea6d79",
"type": "main",
"index": 0
}
]
]
},
"5884f963-de92-4613-ab16-5fc5bff620cd": {
"main": [
[
{
"node": "473efd7a-44f7-4724-a638-731e337e21e2",
"type": "main",
"index": 0
}
]
]
},
"5e70b579-3fec-471f-8788-2205c066e21f": {
"main": [
[
{
"node": "75c19552-8451-4c27-978c-54d6ea422b84",
"type": "main",
"index": 0
}
]
]
},
"7338b886-106f-4aad-86b7-dd4cb743d8d1": {
"main": [
[
{
"node": "f1699fe0-c7fe-48f7-9e39-62e983a7b063",
"type": "main",
"index": 0
},
{
"node": "5554a9a8-1fc3-4743-9f98-896ae8a2b146",
"type": "main",
"index": 0
}
]
]
},
"75c19552-8451-4c27-978c-54d6ea422b84": {
"main": [
[
{
"node": "3bf276a9-2041-4f5c-995c-ca3ffb4f0cd0",
"type": "main",
"index": 0
}
]
]
},
"473efd7a-44f7-4724-a638-731e337e21e2": {
"main": [
[
{
"node": "6a8c062f-093c-40cd-869f-e459ea3b0eac",
"type": "main",
"index": 0
}
]
]
},
"6f307b3e-9222-4df7-a92b-9c7dbcea6d79": {
"main": [
[
{
"node": "07f23377-e924-49b1-b803-88aedd3de5bd",
"type": "main",
"index": 0
}
]
]
},
"3bf276a9-2041-4f5c-995c-ca3ffb4f0cd0": {
"main": [
[
{
"node": "000ea7a3-3db4-409d-bdea-b416590933e4",
"type": "main",
"index": 0
}
]
]
},
"000ea7a3-3db4-409d-bdea-b416590933e4": {
"main": [
[
{
"node": "2879e970-5943-4a87-b74c-dd92e9c83662",
"type": "main",
"index": 0
}
]
]
},
"29cc7161-00b3-4ad6-8df4-e582296fc2ed": {
"main": [
[
{
"node": "7338b886-106f-4aad-86b7-dd4cb743d8d1",
"type": "main",
"index": 0
}
]
]
},
"51c1516e-e53b-4435-ab0f-a8c147b3478a": {
"main": [
[
{
"node": "5e61c6ea-62df-4c69-95d8-5b5dd7a0eb66",
"type": "main",
"index": 0
}
]
]
}
}
}이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 청구서 처리, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Oneclick AI Squad
@oneclick-aiThe AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.
이 워크플로우 공유