자동화 재고 관리
중급
이것은Document Extraction분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 Code, Airtable, SendInBlue, ScheduleTrigger 등의 노드를 사용하며. Airtable 구매 오더 생성 및 공급업체 이메일을 사용한 재고 자동 관리
사전 요구사항
- •Airtable API Key
카테고리
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "b6731f6e46273cffeac6b5188a5b3bcb0840c00108e73b48ae2b799ac6e8e081",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "fe401179-5a8b-4232-b148-9bf4d96ceb9b",
"name": "재고 부족 제품 조회",
"type": "n8n-nodes-base.airtable",
"position": [
-2340,
-540
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apprZl1I4LgjwhSVf",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf",
"cachedResultName": "Products Tables"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblLQxA3XuieqUIja",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf/tblLQxA3XuieqUIja",
"cachedResultName": "Products Table"
},
"options": {},
"operation": "search",
"filterByFormula": "{stock_level} <= {reorder_threshold}"
},
"credentials": {
"airtableTokenApi": {
"id": "j2v4SdOKrSSYQlXT",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "46bfdc76-b244-41a9-a686-09c8eb140968",
"name": "재고 부족 제품의 공급업체 세부 정보 조회",
"type": "n8n-nodes-base.airtable",
"position": [
-2120,
-540
],
"parameters": {
"id": "={{ $json.supplier_id }}",
"base": {
"__rl": true,
"mode": "list",
"value": "apprZl1I4LgjwhSVf",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf",
"cachedResultName": "Products Tables"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbl7LUCS0MYq0Fjq6",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf/tbl7LUCS0MYq0Fjq6",
"cachedResultName": "Supplier"
},
"options": {}
},
"credentials": {
"airtableTokenApi": {
"id": "j2v4SdOKrSSYQlXT",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "836a5efb-0cad-4508-8703-911241f0b847",
"name": "동적 재주문 수량 계산",
"type": "n8n-nodes-base.code",
"position": [
-1900,
-540
],
"parameters": {
"jsCode": "const safetyMargin = 1.2;\n// Process all input items\nconst outputItems = [];\nfor (const item of $input.all()) {\n const avgDaily = item.json.average_daily_sales || 1;\n const leadTime = item.json.lead_time_days || 7;\n \n // Updated logic: 2x lead time for better production inventory management\n // First lead time: stock to last until delivery arrives\n // Second lead time: buffer stock for next reorder cycle\n const reorderQty = Math.ceil(avgDaily * (leadTime * 1.5) * safetyMargin);\n \n outputItems.push({\n json: {\n ...item.json,\n reorder_qty: reorderQty\n }\n });\n}\nreturn outputItems;"
},
"typeVersion": 2
},
{
"id": "7d04d71d-3d40-4575-b567-6e6bb8712e3a",
"name": "매일 자정 실행",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-2520,
-540
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 0 * * *"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "50c4223b-83d7-4204-a2ad-75b390b9298b",
"name": "테이블에 구매 기록 생성",
"type": "n8n-nodes-base.airtable",
"position": [
-2160,
-280
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apprZl1I4LgjwhSVf",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf",
"cachedResultName": "Products Tables"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbloIflYm8aNOy10m",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf/tbloIflYm8aNOy10m",
"cachedResultName": "Purchase Orders"
},
"columns": {
"value": {
"status": "Pending",
"quantity": "={{ $json.reorder_qty }}",
"product_id": "={{ $json.product_id }}",
"supplier_id": "={{ $json.supplier_id }}",
"Product Name": "={{ $json.product_name }}",
"Supplier Email": "={{ $json.supplier_email }}"
},
"schema": [
{
"id": "po_number",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "po_number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "quantity",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "quantity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "supplier_id",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "supplier_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Supplier Email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Supplier Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "options",
"display": true,
"options": [
{
"name": "Pending",
"value": "Pending"
},
{
"name": "Sent",
"value": "Sent"
},
{
"name": "Delivered",
"value": "Delivered"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "dateTime",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "product_id",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "product_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Product Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Product Name",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"id": "j2v4SdOKrSSYQlXT",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "87965ea3-6e2a-495d-a040-fcf15ba8bb2a",
"name": "기록 검색",
"type": "n8n-nodes-base.airtable",
"position": [
-2500,
-280
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apprZl1I4LgjwhSVf",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf",
"cachedResultName": "Products Tables"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbloIflYm8aNOy10m",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf/tbloIflYm8aNOy10m",
"cachedResultName": "Purchase Orders"
},
"options": {},
"operation": "search",
"filterByFormula": "=AND({product_id} = '{{ $('Get Products with low stock').item.json.product_id }}', OR({status} = 'Pending', {status} = 'Sent'))"
},
"credentials": {
"airtableTokenApi": {
"id": "j2v4SdOKrSSYQlXT",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1,
"alwaysOutputData": true
},
{
"id": "18390f14-6622-4f6c-8c24-ec123c4a807e",
"name": "중복 제품 주문 제거",
"type": "n8n-nodes-base.code",
"position": [
-2340,
-280
],
"parameters": {
"jsCode": "// Step 1: Get all low stock products with complete data\nconst lowStockProducts = $('Get Products with low stock').all();\nconst allProductIds = lowStockProducts.map(p => p.json.product_id);\n\n// Step 2: Get calculated reorder quantities from the first code node\nconst reorderData = $('Calculate Dynamic Re-order Quantity').all();\n\n// Step 3: Get supplier details (this should have the actual supplier info)\nconst supplierDetails = $('Get supplier Details for those low stock products').all();\n\n// Step 4: Get existing purchase orders from input\nconst existingPOs = $input.all();\nconst existingProductIds = existingPOs.map(po => po.json.product_id);\n\n// Step 5: Filter out products that already have active POs\nconst newProductIds = allProductIds.filter(pid => !existingProductIds.includes(pid));\n\n// Step 6: Build complete result with all required fields\nconst result = newProductIds.map(productId => {\n // Find the original product data\n const originalProduct = lowStockProducts.find(p => p.json.product_id === productId);\n \n // Find the calculated reorder quantity and supplier info from the first code node\n let reorderQty = 0;\n let supplierId = '';\n const reorderInfo = reorderData.find(r => r.json.product_id === productId);\n if (reorderInfo) {\n reorderQty = reorderInfo.json.reorder_qty;\n supplierId = reorderInfo.json.supplier_id;\n } else {\n // Fallback: try to match by index if product_id isn't available in reorder data\n const productIndex = lowStockProducts.findIndex(p => p.json.product_id === productId);\n if (productIndex >= 0 && reorderData[productIndex]) {\n reorderQty = reorderData[productIndex].json.reorder_qty;\n supplierId = reorderData[productIndex].json.supplier_id;\n }\n }\n \n // For supplier details, we need to match by supplier_id from the reorder data\n // The supplier_id might be an array (linked record) or a string\n const supplierRecordId = Array.isArray(supplierId) ? supplierId[0] : supplierId;\n \n // Find supplier details by matching the record ID or by product_id\n // Try multiple ways to match supplier data\n const supplierData = supplierDetails.find(s => \n s.json.id === supplierRecordId || \n s.json.supplier_id === supplierRecordId ||\n s.json.product_id === productId\n );\n \n return {\n json: {\n product_id: productId,\n product_name: originalProduct?.json?.product_name || '',\n reorder_qty: reorderQty,\n supplier_id: supplierRecordId || '',\n supplier_email: supplierData?.json?.email || \n supplierData?.json?.supplier_email || \n supplierData?.json?.contact_email ||\n supplierData?.json?.Email || ''\n }\n };\n});\n\nreturn result;"
},
"typeVersion": 2
},
{
"id": "cc7b13bc-d8f8-4c26-b503-5d9a8fcfd010",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2600,
-980
],
"parameters": {
"width": 940,
"height": 920,
"content": "### 📦 **Automated Purchase Order Creation – n8n Workflow**\n\nThis n8n automation checks products with low stock every night, calculates smart reorder quantities, avoids duplicate POs, and creates fresh purchase orders automatically.\n\n**✅ Steps:**\n\n1. **Run Every Midnight** – Scheduled daily trigger.\n2. **Get Products with Low Stock** – Fetch products below reorder threshold from Airtable.\n3. **Get Supplier Details** – Fetch related supplier info.\n4. **Calculate Dynamic Reorder Quantity** – Uses average daily sales × lead time × safety margin.\n5. **Search Existing POs** – Checks if there are active pending/sent orders.\n6. **Remove Duplicate Product Orders** – Filters out products already covered by existing POs.\n7. **Create Purchase Records** – Generates new purchase order records in Airtable with supplier email, product name, reorder quantity, etc.\n\n⚙ **Fully automated daily process** — keeps your stock healthy and your suppliers notified."
},
"typeVersion": 1
},
{
"id": "790b9e2e-63fb-4d15-b0e9-47d1ab6dfdd2",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1360,
-520
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 1 * * *"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "93b3ea8a-5b0a-41b6-863c-1c78bc6ec59d",
"name": "대기 중인 구매 오더 조회",
"type": "n8n-nodes-base.airtable",
"position": [
-1120,
-520
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apprZl1I4LgjwhSVf",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf",
"cachedResultName": "Products Tables"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbloIflYm8aNOy10m",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf/tbloIflYm8aNOy10m",
"cachedResultName": "Purchase Orders"
},
"options": {},
"operation": "search",
"filterByFormula": "={status} = 'Pending'"
},
"credentials": {
"airtableTokenApi": {
"id": "j2v4SdOKrSSYQlXT",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "4ba6d12d-cbe6-418e-a9bb-102f54451b03",
"name": "공급업체별 제품 그룹화",
"type": "n8n-nodes-base.code",
"position": [
-900,
-520
],
"parameters": {
"jsCode": "// Group purchase orders by supplier\nconst groupedOrders = {};\n\nfor (const item of $input.all()) {\n const supplierId = item.json.supplier_id;\n const supplierEmail = item.json[\"Supplier Email\"];\n const airtableRecordId = item.json.id; // capture Airtable record ID\n\n if (!groupedOrders[supplierId]) {\n groupedOrders[supplierId] = {\n supplier_id: supplierId,\n supplier_email: supplierEmail,\n orders: [],\n total_items: 0,\n po_summary: [],\n record_ids: [] // store PO record IDs to update later\n };\n }\n\n const productName = item.json.product_name || item.json[\"Product Name\"] || item.json.product_id || \"Unknown Product\";\n\n groupedOrders[supplierId].orders.push({\n product_name: productName,\n quantity: item.json.quantity,\n product_id: item.json.product_id,\n airtable_record_id: airtableRecordId\n });\n\n groupedOrders[supplierId].record_ids.push(airtableRecordId);\n groupedOrders[supplierId].total_items += item.json.quantity;\n groupedOrders[supplierId].po_summary.push(`${productName} (Qty: ${item.json.quantity})`);\n}\n\n// Helper function to create single-line HTML email body\nconst createHTMLBody = (supplier) => {\n const tableRows = supplier.orders.map(order =>\n `<tr><td style=\"padding:8px;border-bottom:1px solid #ddd;\">${order.product_name}</td><td style=\"padding:8px;border-bottom:1px solid #ddd;text-align:center;\">${order.product_id}</td><td style=\"padding:8px;border-bottom:1px solid #ddd;text-align:center;\">${order.quantity}</td></tr>`\n ).join('');\n\n return `<html><body style=\"font-family:Arial,sans-serif;line-height:1.6;color:#333;\"><div style=\"max-width:600px;margin:0 auto;padding:20px;\"><h2 style=\"color:#2c3e50;border-bottom:2px solid #3498db;padding-bottom:10px;\">Purchase Order Request</h2><p>Dear Supplier,</p><p>We hope this email finds you well. Please prepare the following items for delivery:</p><table style=\"width:100%;border-collapse:collapse;margin:20px 0;box-shadow:0 2px 4px rgba(0,0,0,0.1);\"><thead><tr style=\"background-color:#3498db;color:white;\"><th style=\"padding:12px;text-align:left;\">Product Name</th><th style=\"padding:12px;text-align:center;\">Product ID</th><th style=\"padding:12px;text-align:center;\">Quantity</th></tr></thead><tbody>${tableRows}</tbody></table><div style=\"background-color:#f8f9fa;padding:15px;border-radius:5px;margin:20px 0;\"><p style=\"margin:5px 0;\"><strong>📦 Total Products:</strong> ${supplier.orders.length}</p><p style=\"margin:5px 0;\"><strong>📊 Total Quantity:</strong> ${supplier.total_items}</p><p style=\"margin:5px 0;\"><strong>🏷️ Supplier ID:</strong> ${supplier.supplier_id}</p></div><p>Please confirm receipt of this order and provide an estimated delivery date.</p><p style=\"margin-top:30px;\">Thank you for your prompt attention to this order.<br><strong>Inventory Management Team</strong></p><hr style=\"border:none;border-top:1px solid #ddd;margin:30px 0;\"><p style=\"font-size:12px;color:#666;text-align:center;\">This is an automated message. Please do not reply to this email.</p></div></body></html>`;\n};\n\nreturn Object.values(groupedOrders).map(supplier => ({\n json: {\n supplier_id: supplier.supplier_id,\n supplier_email: supplier.supplier_email,\n total_products: supplier.orders.length,\n total_quantity: supplier.total_items,\n order_details: supplier.orders,\n po_summary: supplier.po_summary,\n record_ids: supplier.record_ids, // include record IDs for updating status later\n email_subject: `🛒 Purchase Order - ${supplier.orders.length} Product${supplier.orders.length > 1 ? 's' : ''} (${supplier.total_items} items) - ${supplier.supplier_id}`,\n email_body_html: createHTMLBody(supplier),\n email_body_text: `Dear Supplier,\\n\\nPlease prepare the following items:\\n\\n${supplier.po_summary.join('\\n')}\\n\\nTotal Products: ${supplier.orders.length}\\nTotal Items: ${supplier.total_items}\\nSupplier ID: ${supplier.supplier_id}\\n\\nThank you!\\n\\nInventory Management Team`\n }\n}));\n"
},
"typeVersion": 2
},
{
"id": "ce853473-aa77-4215-a7e2-4b584f6b5986",
"name": "PO의 기록 ID 조회",
"type": "n8n-nodes-base.code",
"position": [
-720,
-400
],
"parameters": {
"jsCode": "const items = $input.all();\nconst updates = [];\n\nfor (const item of items) {\n const recordIds = item.json.record_ids || [];\n for (const id of recordIds) {\n updates.push({\n json: {\n id,\n status: 'Sent'\n }\n });\n }\n}\n\nreturn updates;\n"
},
"typeVersion": 2
},
{
"id": "275e3674-127b-4acf-92cd-c554b61239f9",
"name": "PO 상태를 '전송됨'으로 업데이트",
"type": "n8n-nodes-base.airtable",
"position": [
-500,
-540
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apprZl1I4LgjwhSVf",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf",
"cachedResultName": "Products Tables"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbloIflYm8aNOy10m",
"cachedResultUrl": "https://airtable.com/apprZl1I4LgjwhSVf/tbloIflYm8aNOy10m",
"cachedResultName": "Purchase Orders"
},
"columns": {
"value": {
"id": "={{ $json.id }}",
"status": "Sent"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "po_number",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "po_number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "quantity",
"type": "number",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "quantity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "supplier_id",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "supplier_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Supplier Email",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Supplier Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "options",
"display": true,
"options": [
{
"name": "Pending",
"value": "Pending"
},
{
"name": "Sent",
"value": "Sent"
},
{
"name": "Delivered",
"value": "Delivered"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "dateTime",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "product_id",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "product_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Product Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Product Name",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "upsert"
},
"credentials": {
"airtableTokenApi": {
"id": "j2v4SdOKrSSYQlXT",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "fd03a9df-1892-465b-9dc5-6c13cb2c1f16",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1420,
-980
],
"parameters": {
"width": 1140,
"height": 920,
"content": "## 📦 n8n Automation: Daily PO Email & Status Sync\n\n- **Runs at:** 01:00 AM every day (`0 1 * * *`)\n- **Step 1:** Fetches all `Pending` purchase orders from Airtable\n- **Step 2:** Groups orders by supplier, builds HTML emails summarizing products and quantities\n- **Step 3:** Sends emails to suppliers via Brevo (SendInBlue)\n- **Step 4:** Updates each purchase order’s status to `Sent` in Airtable\n\nKeeps your suppliers updated daily and automates your purchase order workflow.\n"
},
"typeVersion": 1
},
{
"id": "e725f7f0-85a1-4cec-af79-fee429ff2667",
"name": "이메일로 공급업체에 PO 전송",
"type": "n8n-nodes-base.sendInBlue",
"position": [
-700,
-700
],
"parameters": {
"sender": "abhiram.bvb@gmail.com",
"subject": "={{ $json.email_subject }}",
"sendHTML": true,
"htmlContent": "={{ $json.email_body_html }}",
"receipients": "={{ $json.supplier_email }}",
"requestOptions": {},
"additionalFields": {}
},
"credentials": {
"sendInBlueApi": {
"id": "ysEmyjdU0adBBOqN",
"name": "Brevo account"
}
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"87965ea3-6e2a-495d-a040-fcf15ba8bb2a": {
"main": [
[
{
"node": "18390f14-6622-4f6c-8c24-ec123c4a807e",
"type": "main",
"index": 0
}
]
]
},
"790b9e2e-63fb-4d15-b0e9-47d1ab6dfdd2": {
"main": [
[
{
"node": "93b3ea8a-5b0a-41b6-863c-1c78bc6ec59d",
"type": "main",
"index": 0
}
]
]
},
"7d04d71d-3d40-4575-b567-6e6bb8712e3a": {
"main": [
[
{
"node": "fe401179-5a8b-4232-b148-9bf4d96ceb9b",
"type": "main",
"index": 0
}
]
]
},
"ce853473-aa77-4215-a7e2-4b584f6b5986": {
"main": [
[
{
"node": "275e3674-127b-4acf-92cd-c554b61239f9",
"type": "main",
"index": 0
}
]
]
},
"fe401179-5a8b-4232-b148-9bf4d96ceb9b": {
"main": [
[
{
"node": "46bfdc76-b244-41a9-a686-09c8eb140968",
"type": "main",
"index": 0
}
]
]
},
"4ba6d12d-cbe6-418e-a9bb-102f54451b03": {
"main": [
[
{
"node": "e725f7f0-85a1-4cec-af79-fee429ff2667",
"type": "main",
"index": 0
},
{
"node": "ce853473-aa77-4215-a7e2-4b584f6b5986",
"type": "main",
"index": 0
}
]
]
},
"e725f7f0-85a1-4cec-af79-fee429ff2667": {
"main": [
[]
]
},
"18390f14-6622-4f6c-8c24-ec123c4a807e": {
"main": [
[
{
"node": "50c4223b-83d7-4204-a2ad-75b390b9298b",
"type": "main",
"index": 0
}
]
]
},
"50c4223b-83d7-4204-a2ad-75b390b9298b": {
"main": [
[]
]
},
"836a5efb-0cad-4508-8703-911241f0b847": {
"main": [
[
{
"node": "87965ea3-6e2a-495d-a040-fcf15ba8bb2a",
"type": "main",
"index": 0
}
]
]
},
"93b3ea8a-5b0a-41b6-863c-1c78bc6ec59d": {
"main": [
[
{
"node": "4ba6d12d-cbe6-418e-a9bb-102f54451b03",
"type": "main",
"index": 0
}
]
]
},
"46bfdc76-b244-41a9-a686-09c8eb140968": {
"main": [
[
{
"node": "836a5efb-0cad-4508-8703-911241f0b847",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 문서 추출
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Supabase, Google 스프레드시트 및 Gmail 기반 자동 사용자 재활성화 시스템
사용Supabase、Google表格및Gmail의자동화用户重新激活系统
Set
Code
Gmail
+
Set
Code
Gmail
14 노드iamvaar
소셜 미디어
N2YO와 Telegram을 통해 실시간 국제 우주 정거장可见성 알림
N2YO와 Telegram을 통해 실시간 국제 우주 정거장可见성 알림을 가져옵니다.
If
Code
Telegram
+
If
Code
Telegram
6 노드iamvaar
콘텐츠 제작
🚀 자동화된 Stripe 결제 복구: 실패 추적 및 이메일 따라잡기
🚀 Stripe 결제 자동 복구: 실패 추적 및 이메일 패턴
Set
Switch
Send In Blue
+
Set
Switch
Send In Blue
13 노드iamvaar
청구서 처리
스마트 재고 보충 및 자동 구매 주문
OpenAI 예측과 ERP 통합을 기반으로 한 AI 기반 재고 관리
Code
Filter
Postgres
+
Code
Filter
Postgres
24 노드Oneclick AI Squad
문서 추출
Gemini AI를 사용한 버그 리포트 자동화: Jotform에서 GitHub 및 Telegram 알림 발송
Gemini AI를 사용한 버그 리포트 자동화: Jotform에서 GitHub로, Telegram 알림 전송
Code
Telegram
Github Tool
+
Code
Telegram
Github Tool
10 노드iamvaar
Jotform, Gemini AI 및 Google Sheets로 내부 불만 처리 자동화
Jotform, Gemini AI 및 Google Sheets를 통한 내부 불만 처리 자동화
If
Gmail
Google Sheets
+
If
Gmail
Google Sheets
22 노드iamvaar
티켓 관리