8
n8n 한국어amn8n.com

Google 스프레드시트를 기반으로 한 재고 ABC 및 파레토 분석

고급

이것은Miscellaneous, Multimodal AI분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 If, Code, Filter, GoogleSheets, ManualTrigger 등의 노드를 사용하며. Google 스프레드시트를 기반으로 한 재고 ABC 및 파레토 분석, 공급망 최적화를 위한

사전 요구사항
  • Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "dd09796e-b4c4-43df-8401-bba895d330b3",
      "name": "워크플로 실행 시",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1056,
        -400
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5f502423-b87c-4322-aac6-10d07e685087",
      "name": "시트에서 행 가져오기",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -832,
        -400
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Input Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Data Analytics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.7
    },
    {
      "id": "15e8b11a-83d9-41cb-84e4-dbfe0ddf970f",
      "name": "매출 0 항목 필터링",
      "type": "n8n-nodes-base.filter",
      "position": [
        -608,
        -400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "39ce1523-ed7e-404a-82db-099200bcb82c",
              "operator": {
                "type": "number",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.QTY }}",
              "rightValue": "={{ 0 }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2cd9b9a0-dc4f-4d99-b4c4-43f6d165cad8",
      "name": "전치",
      "type": "n8n-nodes-base.code",
      "position": [
        -160,
        -592
      ],
      "parameters": {
        "jsCode": "const input = $input.all().map(i => i.json);\n\n// Collect store IDs\nconst stores = input.map(row => row.STORE);\n// Collect items (from keys)\nconst items = Object.keys(input[0]).filter(k => k !== \"STORE\");\n\n// Transpose\nconst result = items.map(ITEM => {\n  let row = { ITEM };\n  for (const store of stores) {\n    const storeRow = input.find(r => r.STORE === store);\n    row[store] = storeRow[ITEM];\n  }\n  return { json: row };\n});\n\nreturn result;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "7bedeb08-f47e-4809-9936-7cdc8a9236d1",
      "name": "점포별 일일 매출",
      "type": "n8n-nodes-base.code",
      "position": [
        -384,
        -304
      ],
      "parameters": {
        "jsCode": "const agg = {};\nfor (const {json} of items) {\n  const k = `${json.STORE}|${json.DAY}`;\n  if (!agg[k]) agg[k] = { STORE: json.STORE, DAY: json.DAY, QTY: 0, TO: 0 };\n  agg[k].QTY += Number(json.QTY||0);\n  agg[k].TO  += Number(json.TO||0);\n}\nreturn Object.values(agg).map(r => ({ json: r }));"
      },
      "typeVersion": 2
    },
    {
      "id": "b0134581-ef21-4485-bd75-8a5d7f865ad4",
      "name": "조건문",
      "type": "n8n-nodes-base.if",
      "position": [
        -160,
        -304
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "59bb6e5b-0765-4812-a842-19a3bc7a0357",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.STORE }}",
              "rightValue": "STORE-1"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "95a2efc7-9c7b-4263-aab4-c00bbe902714",
      "name": "점포 1 매출",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        64,
        -400
      ],
      "parameters": {
        "columns": {
          "value": {
            "TO": "={{ $json.TO }}",
            "DAY": "={{ $json.DAY }}",
            "QTY": "={{ $json.QTY }}"
          },
          "schema": [
            {
              "id": "DAY",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "DAY",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QTY",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "QTY",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TO",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "TO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 421687347,
          "cachedResultUrl": "",
          "cachedResultName": "Daily Sales Store 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Data Analytics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.7
    },
    {
      "id": "fdffd98a-36ac-425b-861c-b3f738828fe2",
      "name": "점포 2 매출",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        64,
        -208
      ],
      "parameters": {
        "columns": {
          "value": {
            "TO": "={{ $json.TO }}",
            "DAY": "={{ $json.DAY }}",
            "QTY": "={{ $json.QTY }}"
          },
          "schema": [
            {
              "id": "DAY",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "DAY",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QTY",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "QTY",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TO",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "TO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 749936247,
          "cachedResultUrl": "",
          "cachedResultName": "Daily Sales Store 2"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Data Analytics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.7
    },
    {
      "id": "8a3afe9e-d873-4a02-9fb1-45fc9c380601",
      "name": "파레토 분석",
      "type": "n8n-nodes-base.code",
      "position": [
        -160,
        -784
      ],
      "parameters": {
        "jsCode": "// Normalize + sort by turnover (TO) desc\nconst rows = items\n  .map(i => ({\n    ...i.json,\n    TO: Number(i.json.TO || 0),   // turnover = QTY x Unit Price\n    QTY: Number(i.json.QTY || 0),\n  }))\n  .sort((a, b) => b.TO - a.TO);\n\nconst n = rows.length;\nconst totalTO = rows.reduce((s, r) => s + r.TO, 0) || 1;\n\nlet cumTO = 0;\nrows.forEach((r, idx) => {\n  cumTO += r.TO;\n  r.cum_turnover = cumTO;                 // absolute cumulative TO\n  r.cum_share = +(cumTO / totalTO).toFixed(6); // 0..1\n  r.sku_rank = idx + 1;\n  r.cum_skus = +((idx + 1) / n).toFixed(6);    // 0..1\n  r.cum_skus_pct = +(r.cum_skus * 100).toFixed(2); // 0..100 for charts\n});\n\n// Return table\nreturn rows.map(r => ({ json: r }));\n\n"
      },
      "typeVersion": 2
    },
    {
      "id": "e8e1409d-b571-43b8-ae9e-bb8da228cefd",
      "name": "TO, QTY GroupBy ITEM",
      "type": "n8n-nodes-base.code",
      "position": [
        -384,
        -784
      ],
      "parameters": {
        "jsCode": "const agg = {};\nfor (const {json} of items) {\n  const ITEM = String(json.ITEM);\n  const TO = Number(json.TO);\n  const QTY = Number(json.QTY);\n  if (!agg[ITEM]) agg[ITEM] = { ITEM, TO: 0, QTY: 0 };\n  agg[ITEM].TO += TO;\n  agg[ITEM].QTY += QTY;\n}\nconst rows = Object.values(agg).sort((a,b)=> b.TO - a.TO);\nreturn rows.map(r => ({ json: r }));"
      },
      "typeVersion": 2
    },
    {
      "id": "9e02d5cb-701d-4a40-b2bf-c2fae43af8ef",
      "name": "TO GroupBy (STORE, ITEM)",
      "type": "n8n-nodes-base.code",
      "position": [
        -384,
        -592
      ],
      "parameters": {
        "jsCode": "// Build dictionaries of unique stores & skus\nconst stores = new Set();\nconst skus = new Set();\n// Append dictionnaries with values\nfor (const {json} of items) { stores.add(json.STORE); skus.add(json.ITEM); }\n// List of Unique SKU\nconst skuList = Array.from(skus).sort();\n\n// Accumulate sums\nconst mat = {}; // store_id -> sku -> sum\nfor (const {json} of items) {\n  const s = json.STORE;\n  const k = json.ITEM;\n  const v = Number(json.TO) || 0;\n  if (!mat[s]) mat[s] = {};\n  mat[s][k] = (mat[s][k] || 0) + v;\n}\n\n// Output wide rows with 0 fill\nconst rows = [];\nfor (const s of Array.from(stores).sort()) {\n  const row = { STORE: s };\n  for (const k of skuList) row[k] = mat[s][k] || 0;\n  rows.push(row);\n}\nreturn rows.map(r => ({ json: r }));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "efe6f052-ff5d-4755-ae07-4a7bc480ddbb",
      "name": "다중 점포 매출",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        64,
        -592
      ],
      "parameters": {
        "columns": {
          "value": {
            "TO": "={{ $json.TO }}",
            "DAY": "={{ $json.DAY }}",
            "QTY": "={{ $json.QTY }}"
          },
          "schema": [
            {
              "id": "DAY",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "DAY",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QTY",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "QTY",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TO",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "TO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 421687347,
          "cachedResultUrl": "",
          "cachedResultName": "Daily Sales Store 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Data Analytics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.7
    },
    {
      "id": "5bd88834-9c20-4d9e-bd31-146dc31e2c18",
      "name": "수요 변동성 x Sales %",
      "type": "n8n-nodes-base.code",
      "position": [
        -384,
        -16
      ],
      "parameters": {
        "jsCode": "// INPUT items: rows with fields ITEM, DAY, QTY (others optional)\n\nfunction mean(a){ return a.reduce((s,x)=>s + x, 0) / (a.length || 1); }\nfunction stdev_samp(a){\n  if (a.length <= 1) return 0;\n  const m = mean(a);\n  const v = a.reduce((s,x)=> s + (x - m) ** 2, 0) / (a.length - 1);\n  return Math.sqrt(v);\n}\n\n// 1) build daily series per ITEM (sum across stores)\nconst series = {};            // ITEM -> { day -> qty_sum }\nlet totalQty = 0;\n\nfor (const { json } of items) {\n  const item = String(json.ITEM);\n  const day  = String(json.DAY);\n  const qty  = Number(json.QTY || 0);\n\n  if (!series[item]) series[item] = {};\n  series[item][day] = (series[item][day] || 0) + qty;\n  totalQty += qty;\n}\n\n// 2) compute metrics per ITEM\nconst out = [];\nfor (const [item, dayMap] of Object.entries(series)) {\n  const daily = Object.values(dayMap);                 // array of daily qty\n  const qty_total = daily.reduce((s,x)=>s+x, 0);\n  const m = mean(daily);\n  const sd = stdev_samp(daily);\n  const cv = m ? sd / m : null;\n  const share_qty_pct = totalQty ? (qty_total / totalQty) * 100 : 0;\n\n  out.push({\n    ITEM: item,\n    qty_total,\n    share_qty_pct: Number(share_qty_pct.toFixed(2)),\n    mean_qty: Number(m.toFixed(3)),\n    std_qty: Number(sd.toFixed(3)),\n    cv_qty: cv == null ? null : Number(cv.toFixed(3)),\n  });\n}\n\n// Optional: sort by share desc\nout.sort((a,b) => b.share_qty_pct - a.share_qty_pct);\n\n// Return as n8n items\nreturn out.map(r => ({ json: r }));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "805e6a80-bb24-446e-ab9c-a0e0c68f555a",
      "name": "ABC XYZ 분석",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        64,
        -16
      ],
      "parameters": {
        "columns": {
          "value": {
            "ABC": "={{ $json.ABC }}",
            "ITEM": "={{ $json.ITEM }}",
            "cv_qty": "={{ $json.cv_qty }}",
            "std_qty": "={{ $json.std_qty }}",
            "mean_qty": "={{ $json.mean_qty }}",
            "cum_share": "={{ $json.cum_share }}",
            "qty_total": "={{ $json.qty_total }}",
            "share_qty_pct": "={{ $json.share_qty_pct }}"
          },
          "schema": [
            {
              "id": "ITEM",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ITEM",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "qty_total",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "qty_total",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "share_qty_pct",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "share_qty_pct",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cv_qty",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "cv_qty",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ABC",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ABC",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "mean_qty",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "mean_qty",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "std_qty",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "std_qty",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cum_share",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "cum_share",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "limit_cov",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "limit_cov",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {
          "useAppend": false
        },
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1281688243,
          "cachedResultUrl": "",
          "cachedResultName": "ABC XYZ"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Data Analytics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.7
    },
    {
      "id": "fb1b23cb-cad9-4a75-bb41-5d87209b51c5",
      "name": "파레토 시트 업데이트",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        64,
        -784
      ],
      "parameters": {
        "columns": {
          "value": {
            "TO": "={{ $json.TO }}",
            "QTY": "={{ $json.QTY }}",
            "ITEM": "={{ $json.ITEM }}",
            "cum_skus": "={{ $json.cum_skus }}",
            "sku_rank": "={{ $json.sku_rank }}",
            "cum_share": "={{ $json.cum_share }}",
            "cum_skus_pct": "={{ $json.cum_skus_pct }}",
            "cum_turnover": "={{ $json.cum_turnover }}"
          },
          "schema": [
            {
              "id": "ITEM",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ITEM",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TO",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "TO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QTY",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "QTY",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cum_turnover",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "cum_turnover",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cum_share",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "cum_share",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sku_rank",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "sku_rank",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cum_skus",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "cum_skus",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cum_skus_pct",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "cum_skus_pct",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1760689869,
          "cachedResultUrl": "",
          "cachedResultName": "Pareto"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Data Analytics"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": ""
        }
      },
      "notesInFlow": true,
      "typeVersion": 4.7
    },
    {
      "id": "82773b29-a1dc-445c-a8ea-d9c393d36eb4",
      "name": "ABC 클래스 매핑",
      "type": "n8n-nodes-base.code",
      "position": [
        -160,
        -16
      ],
      "parameters": {
        "jsCode": "// 1) Extract and sort by sales contribution\nlet rows = items.map(i => i.json);\nrows.sort((a, b) => b.share_qty_pct - a.share_qty_pct);\n\n// 2) Compute cumulative contribution\nlet cum = 0;\nfor (let r of rows) {\n  cum += r.share_qty_pct;\n\n  // 3) Assign class based on cumulative %\n  if (cum <= 5) {\n    r.ABC = 'A';   // top 5%\n  } else if (cum <= 20) {\n    r.ABC = 'B';   // next 15%\n  } else {\n    r.ABC = 'C';   // rest\n  }\n\n  r.cum_share = Number(cum.toFixed(2));\n}\n\n// 4) Return enriched rows\nreturn rows.map(r => ({ json: r }));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "21867671-78aa-4580-b51f-53c34f6a1dfa",
      "name": "스티커 노트2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1166,
        -784
      ],
      "parameters": {
        "color": 7,
        "width": 540,
        "height": 544,
        "content": "### Trigger the workflow\nThis starts by collecting the transactional sales from the spreadsheet `Input Data` from the Google Sheet.\n\n#### How to setup?\n\n- **Load records in the Google Sheet Node**:\n   1. Add your Google Sheet API credentials to access the Google Sheet file\n   2. Select the file using the list, an URL or an ID\n   3. Select the sheet `Input Data`\nination**, **distance**, **duration**, **n_steps**\n  [Learn more about the Google Sheet Node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets)\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "b0134581-ef21-4485-bd75-8a5d7f865ad4": {
      "main": [
        [
          {
            "node": "95a2efc7-9c7b-4263-aab4-c00bbe902714",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "fdffd98a-36ac-425b-861c-b3f738828fe2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2cd9b9a0-dc4f-4d99-b4c4-43f6d165cad8": {
      "main": [
        [
          {
            "node": "efe6f052-ff5d-4755-ae07-4a7bc480ddbb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8a3afe9e-d873-4a02-9fb1-45fc9c380601": {
      "main": [
        [
          {
            "node": "fb1b23cb-cad9-4a75-bb41-5d87209b51c5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "82773b29-a1dc-445c-a8ea-d9c393d36eb4": {
      "main": [
        [
          {
            "node": "805e6a80-bb24-446e-ab9c-a0e0c68f555a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5f502423-b87c-4322-aac6-10d07e685087": {
      "main": [
        [
          {
            "node": "15e8b11a-83d9-41cb-84e4-dbfe0ddf970f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e8e1409d-b571-43b8-ae9e-bb8da228cefd": {
      "main": [
        [
          {
            "node": "8a3afe9e-d873-4a02-9fb1-45fc9c380601",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7bedeb08-f47e-4809-9936-7cdc8a9236d1": {
      "main": [
        [
          {
            "node": "b0134581-ef21-4485-bd75-8a5d7f865ad4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "15e8b11a-83d9-41cb-84e4-dbfe0ddf970f": {
      "main": [
        [
          {
            "node": "5bd88834-9c20-4d9e-bd31-146dc31e2c18",
            "type": "main",
            "index": 0
          },
          {
            "node": "e8e1409d-b571-43b8-ae9e-bb8da228cefd",
            "type": "main",
            "index": 0
          },
          {
            "node": "9e02d5cb-701d-4a40-b2bf-c2fae43af8ef",
            "type": "main",
            "index": 0
          },
          {
            "node": "7bedeb08-f47e-4809-9936-7cdc8a9236d1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e02d5cb-701d-4a40-b2bf-c2fae43af8ef": {
      "main": [
        [
          {
            "node": "2cd9b9a0-dc4f-4d99-b4c4-43f6d165cad8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5bd88834-9c20-4d9e-bd31-146dc31e2c18": {
      "main": [
        [
          {
            "node": "82773b29-a1dc-445c-a8ea-d9c393d36eb4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dd09796e-b4c4-43df-8401-bba895d330b3": {
      "main": [
        [
          {
            "node": "5f502423-b87c-4322-aac6-10d07e685087",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

고급 - 기타, 멀티모달 AI

유료인가요?

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

워크플로우 정보
난이도
고급
노드 수17
카테고리2
노드 유형6
난이도 설명

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

저자
Samir Saci

Samir Saci

@samirsaci

Automation, AI and Analytics for Supply Chain & Business Optimization Helping businesses streamline operations using n8n, AI agents, and data science to enhance efficiency and sustainability. Linkedin: www.linkedin.com/in/samir-saci

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34