8
n8n 한국어amn8n.com

사건 관리 워크플로

고급

이것은DevOps분야의자동화 워크플로우로, 23개의 노드를 포함합니다.주로 If, Set, Code, Jira, Merge 등의 노드를 사용하며. Jira, Slack, Google Sheets 및 Drive를 통한 사건 대응 자동화

사전 요구사항
  • Slack Bot Token 또는 Webhook URL
  • Google Drive API 인증 정보
  • Google Sheets API 인증 정보

카테고리

워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "J93LxYXb9IHdMR7s",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "Incident Management Workflow",
  "tags": [],
  "nodes": [
    {
      "id": "70b38182-4e4c-4f33-9955-18712a2734ef",
      "name": "워크플로우 '실행' 클릭 시",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1008,
        -48
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c5e9b101-a3bb-4095-9931-10cb47abf60c",
      "name": "메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1760,
        176
      ],
      "parameters": {
        "height": 560,
        "content": "## ☁️ Archive Incident Timeline to Drive\n**Action:** Saves incident timeline report to Google Drive for permanent storage.\n\n**Description:**\n- Uploads to designated folder (rename to \"Incident Reports\" in production)\n- Filename includes timestamp for chronological organization\n- Creates audit-compliant documentation trail for compliance requirements\n- Enables easy access during postmortem reviews and RCA sessions\n- Provides shareable links for stakeholder communication\n- Ensures documentation survives even if Jira/Slack history expire"
      },
      "typeVersion": 1
    },
    {
      "id": "1701890b-1a58-4f8e-8d96-94bb3d717d1d",
      "name": "메모1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        160
      ],
      "parameters": {
        "height": 496,
        "content": "## 📄 Convert Timeline to Text File\n**Action:** Transforms incident timeline report into downloadable .txt file.\n\n**Description:**\n- Creates properly formatted text file from timeline string\n- Filename dynamically includes Jira key (e.g., \"Incident-SCRUM-123.txt\")\n- Maintains text formatting with line breaks and separators\n- Prepares document for long-term archival in Google Drive\n- Enables easy sharing with postmortem reviewers and stakeholders"
      },
      "typeVersion": 1
    },
    {
      "id": "eb3eeb1a-0b12-46d3-8272-47ae01ab3185",
      "name": "메모2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        144
      ],
      "parameters": {
        "height": 608,
        "content": "## 📋 Generate Incident Timeline Report\n**Action:** Creates comprehensive incident timeline from Slack message data.\n\n**Description:**\n- Parses Slack message blocks to extract incident details\n- Handles complex rich text formatting to find: Jira key, service, severity, clickable links\n- Generates formatted timeline report with:\n  - Incident metadata header\n  - Timestamped event log (declaration, investigation, resolution)\n  - Placeholder checkboxes for postmortem tracking\n  - Reference links to Jira and Slack\n- Outputs structured text ready for archival"
      },
      "typeVersion": 1
    },
    {
      "id": "1d0f80e7-e631-4054-9159-3c4db04f7d37",
      "name": "메모3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        -544
      ],
      "parameters": {
        "width": 256,
        "height": 464,
        "content": "## 📢 Alert On-Call Team in Slack\n**Action:** Posts incident notification to #oncall Slack channel.\n\n**Description:**\n- Delivers formatted alert to dedicated incident response channel\n- Includes: Jira key, service, severity, description, direct link\n- Notifies on-call engineers instantly without email delays\n- Creates permanent channel record for timeline reconstruction\n- Returns Slack message metadata for downstream tracking\n- Can be modified to post to different channels or DMs"
      },
      "typeVersion": 1
    },
    {
      "id": "0e077e72-3423-4e55-b44d-592152210bdc",
      "name": "메모4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        672,
        144
      ],
      "parameters": {
        "height": 544,
        "content": "## 💬 Format Incident Alert for Slack\n**Action:** Generates rich, formatted Slack message with incident details.\n\n**Description:**\n- Safely extracts data from merged incident and Jira objects\n- Builds professional alert with:\n  - Attention-grabbing emoji indicators (🚨)\n  - Bold formatting for critical fields\n  - Clickable Jira ticket link\n  - Automation attribution footer\n- Handles missing data gracefully with fallback values (\"N/A\", \"Unknown\")\n- Returns structured message ready for Slack delivery"
      },
      "typeVersion": 1
    },
    {
      "id": "1d072007-08da-468c-8588-673d4b714502",
      "name": "메모5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -640
      ],
      "parameters": {
        "height": 528,
        "content": "## 🔗 Combine Incident & Jira Data\n**Action:** Merges incident metadata with Jira ticket information.\n\n**Description:**\n- Combines two data streams:\n  1. Incident details from Define Metadata node\n  2. Jira ticket response (key, link, ID)\n- Enables downstream nodes to access both context and Jira reference\n- Critical for building comprehensive Slack notifications with clickable links\n- Uses default merge mode to preserve all fields from both sources"
      },
      "typeVersion": 1
    },
    {
      "id": "13809897-974f-4371-b18c-fcbc03a4fe4c",
      "name": "메모6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        240
      ],
      "parameters": {
        "height": 480,
        "content": "## 🎫 Create Jira Incident Ticket\n**Action:** Automatically creates Jira task in incident management project.\n\n**Description:**\n- Creates ticket with formatted summary: \"[Severity] Service - Description\"\n- Includes detailed description with service, severity, timestamp, and automation source\n- Generates unique Jira key (e.g., SCRUM-123) for tracking\n- Returns ticket metadata (key, link, ID) for downstream notifications\n- Acts as single source of truth for incident tracking"
      },
      "typeVersion": 1
    },
    {
      "id": "1585af90-5926-46c1-8682-3c3f61682271",
      "name": "메모7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -848,
        128
      ],
      "parameters": {
        "height": 480,
        "content": "## 🏷️ Define Incident Metadata\n**Action:** Structures incident data with service, severity, and description.\n\n**Description:**\n- Sets standardized attributes: Service (API/Database/Frontend), Severity (High/Medium/Low), Description\n- In production, replace with monitoring webhook data (Datadog, New Relic, PagerDuty)\n- Ensures consistent format across Jira, Slack, and tracking systems\n- Template values customizable per service catalog"
      },
      "typeVersion": 1
    },
    {
      "id": "ad55acbf-bd89-435c-b2f1-568749a416be",
      "name": "메모8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1408,
        -1024
      ],
      "parameters": {
        "height": 608,
        "content": "## 📊 Log Incident to Status Tracking Sheet\n**Action:** Records incident details to centralized Google Sheets dashboard.\n\n**Description:**\n- Appends incident record to \"status update\" sheet with:\n  - Jira Key (unique identifier)\n  - Service (affected system/component)\n  - Severity (impact classification)\n  - Status (defaults to \"Investigating\")\n  - Timestamp (incident creation time)\n- Creates real-time dashboard viewable by entire team\n- Enables historical trend analysis and MTTR calculations\n- Supports executive reporting and SLA monitoring"
      },
      "typeVersion": 1
    },
    {
      "id": "9b152b91-f8f5-472d-bb7f-115b89417238",
      "name": "이벤트 메타데이터 정의",
      "type": "n8n-nodes-base.set",
      "position": [
        -768,
        -48
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f0e9d84e-9714-4e29-bb86-7e1593284491",
              "name": "service",
              "type": "string",
              "value": "API"
            },
            {
              "id": "52c39d93-bff5-4c9f-a00d-84be94201112",
              "name": "severity",
              "type": "string",
              "value": "High"
            },
            {
              "id": "81d91f46-5028-4b28-a96c-3a595b3847e0",
              "name": "description",
              "type": "string",
              "value": "Response time above 3s"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "492cf3b1-9ad6-4521-b7f5-b5a220174c01",
      "name": "Jira 이벤트 티켓 생성",
      "type": "n8n-nodes-base.jira",
      "position": [
        -448,
        80
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "list",
          "value": "10000",
          "cachedResultName": "Resource Capacity Demo"
        },
        "summary": "=[{{ $json[\"severity\"] }}] {{ $json[\"service\"] }} - {{ $json[\"description\"] }}",
        "issueType": {
          "__rl": true,
          "mode": "list",
          "value": "10004",
          "cachedResultName": "Task"
        },
        "additionalFields": {
          "description": "=Service: {{ $json[\"service\"] }} Severity: {{ $json[\"severity\"] }} Description: {{ $json[\"description\"] }} Created by: n8n Automation Time: {{ $now }}"
        }
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "199LdjjU3PhhL8xb",
          "name": "saurabh jira"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b6953fcb-1d76-4736-96c4-ff69fc4a815b",
      "name": "이벤트 및 Jira 데이터 결합",
      "type": "n8n-nodes-base.merge",
      "position": [
        496,
        -32
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "203c7131-85a6-4fee-8475-8ef86e7414d4",
      "name": "Slack용 이벤트 알림 형식 지정",
      "type": "n8n-nodes-base.code",
      "position": [
        720,
        -32
      ],
      "parameters": {
        "jsCode": "// n8n passes input as an array of items\nconst items = $input.all();\n\n// Expecting two objects: [alertData, jiraData]\nconst alertData = items[0].json;\nconst jiraData = items[1].json;\n\n// Merge them safely\nconst jiraKey = jiraData.key || \"N/A\";\nconst jiraLink = jiraData.self || \"N/A\";\nconst service = alertData.service || \"Unknown Service\";\nconst severity = alertData.severity || \"Unknown Severity\";\nconst description = alertData.description || \"No description provided.\";\n\n// Build the Slack message\nconst message = `🚨 *New Incident Created!*\n\n*Jira Key:* ${jiraKey}\n*Service:* ${service}\n*Severity:* ${severity}\n*Description:* ${description}\n\n🔗 [View in Jira](${jiraLink})\n_Automated via n8n Incident Workflow_`;\n\nreturn [\n  {\n    json: {\n      jiraKey,\n      jiraLink,\n      service,\n      severity,\n      description,\n      message,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "9ddd6d0a-4d12-4782-bae8-a7a86c75b339",
      "name": "Slack에서 온콜 팀에 알림",
      "type": "n8n-nodes-base.slack",
      "position": [
        944,
        -32
      ],
      "webhookId": "97b0b4bb-4b13-4b4a-b0e2-f1c1aa70dad8",
      "parameters": {
        "text": "={{$json[\"message\"]}}\n",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C09LGDSC6GM",
          "cachedResultName": "oncall"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "rNqvWj9TfChPVRYY",
          "name": "Slack account vivek"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "1ddfdaca-339e-4c1c-b556-0642547e605d",
      "name": "이벤트 타임라인 보고서 생성",
      "type": "n8n-nodes-base.code",
      "position": [
        1184,
        -32
      ],
      "parameters": {
        "jsCode": "const input = $input.item.json;\n\n// Extract Slack message text\nconst messageText = input.message?.text || \"No message text found.\";\n\n// Default placeholders\nlet jiraKey = \"Unknown\";\nlet service = \"Unknown\";\nlet severity = \"Unknown\";\nlet description = \"No description provided.\";\nlet jiraLink = \"\";\n\n// Parse from blocks\nif (input.message?.blocks && Array.isArray(input.message.blocks)) {\n  const elements = input.message.blocks[0]?.elements[0]?.elements || [];\n\n  for (let i = 0; i < elements.length; i++) {\n    const el = elements[i];\n    const text = (el.text || \"\").trim();\n\n    if (text.startsWith(\"SCRUM-\")) jiraKey = text;\n    if (text === \"API\") service = text;\n    if (text === \"High\" || text === \"Medium\" || text === \"Low\") severity = text;\n    if (text.includes(\"Response time\")) description = text;\n    if (el.type === \"link\" && el.url.includes(\"atlassian.net\")) jiraLink = el.url;\n  }\n}\n\n// Create the report text\nconst report = `\n════════════════════════════════════════════════════════════════\n                    INCIDENT TIMELINE REPORT\n════════════════════════════════════════════════════════════════\n\nIncident Key: ${jiraKey}\nService: ${service}\nSeverity: ${severity}\nDescription: ${description}\nStart Time: ${new Date().toLocaleString()}\n\n------------------------------------------------------------\nTimeline:\n- [${new Date().toLocaleString()}] Incident declared in Slack\n- [ ] Root cause identified\n- [ ] Fix deployed\n- [ ] Postmortem completed\n------------------------------------------------------------\n\nJira Link: ${jiraLink}\nSlack Channel: #oncall\n\n════════════════════════════════════════════════════════════════\n`;\n\nreturn [{\n  json: { jiraKey, service, severity, description, jiraLink, report }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "a397d4ed-a764-4a5c-947c-a35846d12bf1",
      "name": "타임라인을 텍스트 파일로 변환",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1504,
        -32
      ],
      "parameters": {
        "options": {
          "fileName": "=Incident-{{$json[\"jiraKey\"]}}.txt"
        },
        "operation": "toText",
        "sourceProperty": "report"
      },
      "typeVersion": 1.1
    },
    {
      "id": "89bff2d5-0927-41bf-a959-4f65ace76fa3",
      "name": "상태 추적 시트에 이벤트 기록",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1488,
        -384
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "=\"Investigating\"",
            "Service": "={{ $json.service }}",
            "Jira Key": "={{ $json.jiraKey }}",
            "Severity": "={{ $json.severity }}",
            "Timestamp": "={{$now}}"
          },
          "schema": [
            {
              "id": "Jira Key",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Jira Key",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Service",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Service",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Severity",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Severity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1819778305,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit#gid=1819778305",
          "cachedResultName": "status update"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit?usp=drivesdk",
          "cachedResultName": "Interviewer Brief Pack "
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "kpPEOLCGn963qpoh",
          "name": "automations@techdome.ai"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "a73f4bf6-4196-472c-8351-51a19f017f2f",
      "name": "Drive에 이벤트 타임라인 아카이브",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1792,
        -32
      ],
      "parameters": {
        "name": "=Incident-Report-{{ $now.toISOString().replace(/[:]/g, \"-\") }}.txt\n",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "16lOVXsq0xkvJ8sCM7hCFAghQvDOXann7",
          "cachedResultUrl": "https://drive.google.com/drive/folders/16lOVXsq0xkvJ8sCM7hCFAghQvDOXann7",
          "cachedResultName": "resume store"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "E7nEqUL27GUx1xHa",
          "name": "Techdome Account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "744d9530-fe3e-4620-bbe1-8f38fd44a879",
      "name": "메모9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        496
      ],
      "parameters": {
        "width": 304,
        "height": 416,
        "content": "## 📊 Log Jira Creation Failures to Error Sheet\n**Action:** Records Jira ticket creation failures to error tracking spreadsheet.\n\n**Description:**\n- Appends error details to \"error log sheet\" when Jira API fails\n- Captures: authentication errors, rate limiting, invalid configs, network issues\n- Creates queryable database for troubleshooting integration problems\n- Ensures no silent failures—every creation attempt documented\n- Helps identify patterns in API reliability\n- Critical for maintaining incident response SLA"
      },
      "typeVersion": 1
    },
    {
      "id": "ab12294c-05b5-4143-939a-242f0a432fd5",
      "name": "메모10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        240
      ],
      "parameters": {
        "height": 528,
        "content": "## ✅ Validate Jira Ticket Creation Success\n**Action:** Verifies Jira ticket was created successfully before proceeding.\n\n**Description:**\n- Checks if Jira response contains valid ticket key\n- **True Path:** Routes to Merge node for Slack alerts and timeline generation\n- **False Path:** Routes to error logging when creation fails\n- Prevents downstream processing of incomplete/failed responses\n- Catches auth failures, permission issues, API rate limiting\n- Critical quality gate for workflow reliability"
      },
      "typeVersion": 1
    },
    {
      "id": "dd851020-a962-46ac-89d6-85d873479b32",
      "name": "Jira 티켓 생성 성공 검증",
      "type": "n8n-nodes-base.if",
      "position": [
        -176,
        80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b2ef1047-1b2f-4e10-bd6a-dcab015a7f99",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "=={{ $json[\"key\"] }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e48b4e31-981b-49fc-a395-fd23827aae5a",
      "name": "Jira 생성 실패를 오류 시트에 기록",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        192,
        320
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "error_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "error_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "error",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "error",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "error_id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1338537721,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit#gid=1338537721",
          "cachedResultName": "error log sheet"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Uldk_4BxWbdZTDZxFUeohIfeBmGHHqVEl9Ogb0l6R8Y/edit?usp=drivesdk",
          "cachedResultName": "Interviewer Brief Pack "
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "kpPEOLCGn963qpoh",
          "name": "automations@techdome.ai"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "4d3622bd-f789-440f-993f-4573a1734744",
  "connections": {
    "9b152b91-f8f5-472d-bb7f-115b89417238": {
      "main": [
        [
          {
            "node": "b6953fcb-1d76-4736-96c4-ff69fc4a815b",
            "type": "main",
            "index": 0
          },
          {
            "node": "492cf3b1-9ad6-4521-b7f5-b5a220174c01",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9ddd6d0a-4d12-4782-bae8-a7a86c75b339": {
      "main": [
        [
          {
            "node": "1ddfdaca-339e-4c1c-b556-0642547e605d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "492cf3b1-9ad6-4521-b7f5-b5a220174c01": {
      "main": [
        [
          {
            "node": "dd851020-a962-46ac-89d6-85d873479b32",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b6953fcb-1d76-4736-96c4-ff69fc4a815b": {
      "main": [
        [
          {
            "node": "203c7131-85a6-4fee-8475-8ef86e7414d4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a397d4ed-a764-4a5c-947c-a35846d12bf1": {
      "main": [
        [
          {
            "node": "a73f4bf6-4196-472c-8351-51a19f017f2f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "203c7131-85a6-4fee-8475-8ef86e7414d4": {
      "main": [
        [
          {
            "node": "9ddd6d0a-4d12-4782-bae8-a7a86c75b339",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1ddfdaca-339e-4c1c-b556-0642547e605d": {
      "main": [
        [
          {
            "node": "a397d4ed-a764-4a5c-947c-a35846d12bf1",
            "type": "main",
            "index": 0
          },
          {
            "node": "89bff2d5-0927-41bf-a959-4f65ace76fa3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "70b38182-4e4c-4f33-9955-18712a2734ef": {
      "main": [
        [
          {
            "node": "9b152b91-f8f5-472d-bb7f-115b89417238",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dd851020-a962-46ac-89d6-85d873479b32": {
      "main": [
        [
          {
            "node": "b6953fcb-1d76-4736-96c4-ff69fc4a815b",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "e48b4e31-981b-49fc-a395-fd23827aae5a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

고급 - 데브옵스

유료인가요?

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

워크플로우 정보
난이도
고급
노드 수23
카테고리1
노드 유형11
난이도 설명

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

저자
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34