8
n8n 한국어amn8n.com

자동화된 오류 보고: GitHub Issues → AI 분석 → Jira 작업, Slack과 Discord 알림 포함

고급

이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 22개의 노드를 포함합니다.주로 If, Code, Jira, Slack, Github 등의 노드를 사용하며. GitHub에서 Jira로 오류 동기화, GPT-4o 분석 및 팀 알림 포함

사전 요구사항
  • Slack Bot Token 또는 Webhook URL
  • GitHub Personal Access Token
  • Discord Bot Token 또는 Webhook
  • HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
  • OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "name": "Automate Bug Reports: GitHub Issues → AI Analysis → Jira Tickets with Slack & Discord Alerts",
  "tags": [],
  "nodes": [
    {
      "id": "sticky-overview",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        250,
        300
      ],
      "parameters": {
        "width": 400,
        "height": 380,
        "content": "## 🔄 AUTOMATED BUG WORKFLOW\n\n### Flow: Webhook → Filter → Extract → AI → Parse → Jira → Notify → Respond\n\n### Benefits\n✅ Instant AI triage\n✅ Auto-assignment\n✅ Zero manual work\n✅ Saves 15-20 min/bug\n✅ $685/month ROI\n\n### Setup Requirements\n- GitHub repo access\n- OpenAI API key (GPT-4o)\n- Jira credentials\n- Slack workspace (optional)\n- Discord server (optional)"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-webhook",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        250,
        750
      ],
      "parameters": {
        "width": 280,
        "height": 300,
        "content": "## 📥 STEP 1: WEBHOOK\n\n**Setup:**\n1. Activate workflow\n2. Copy webhook URL from this node\n3. GitHub → Settings → Webhooks → Add webhook\n4. Paste URL\n5. Content-type: application/json\n6. Events: Select \"Issues\"\n7. Save\n\n**Test:** Create a new issue in GitHub"
      },
      "typeVersion": 1
    },
    {
      "id": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d",
      "name": "GitHub Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        400,
        1100
      ],
      "webhookId": "",
      "parameters": {
        "path": "github-issue-webhook",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-filter",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        750
      ],
      "parameters": {
        "width": 280,
        "height": 280,
        "content": "## 🔍 STEP 2: FILTER\n\n**Purpose:** Only process NEW issues\n\n**Checks:** action = \"opened\"\n- TRUE: Continue\n- FALSE: Stop\n\n**Why:** Prevents duplicate Jira tickets from issue edits, labels, or comments"
      },
      "typeVersion": 1
    },
    {
      "id": "b2c3d4e5-f6a7-4b5c-9d0e-1f2a3b4c5d6e",
      "name": "필터: 신규 Issues만",
      "type": "n8n-nodes-base.if",
      "position": [
        750,
        1100
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.action}}",
              "value2": "opened",
              "operation": "equals"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-extract",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        950,
        750
      ],
      "parameters": {
        "width": 280,
        "height": 300,
        "content": "## 📋 STEP 3: EXTRACT DATA\n\n**Extracts:**\n- Issue number & title\n- Description & reporter\n- Labels & URL\n- Repository info\n- Mentioned files (regex)\n\n**File Detection:**\nFinds: .js, .py, .ts, .jsx, .tsx, .java, .go, .rb, .php, .cpp, .c, .css, .html"
      },
      "typeVersion": 1
    },
    {
      "id": "c3d4e5f6-a7b8-4c5d-0e1f-2a3b4c5d6e7f",
      "name": "Issue 컨텍스트 추출",
      "type": "n8n-nodes-base.code",
      "position": [
        1100,
        1100
      ],
      "parameters": {
        "jsCode": "const issue = $input.item.json.issue;\nconst repo = $input.item.json.repository;\n\nconst fileRegex = /`([^`]*\\.(js|py|ts|jsx|tsx|java|go|rb|php|cpp|c|css|html))`/g;\nconst mentionedFiles = [];\nlet match;\n\nif (issue.body) {\n  while ((match = fileRegex.exec(issue.body)) !== null) {\n    mentionedFiles.push(match[1]);\n  }\n}\n\nreturn {\n  issueNumber: issue.number,\n  title: issue.title,\n  description: issue.body || \"No description provided\",\n  reporter: issue.user.login,\n  reporterAvatar: issue.user.avatar_url,\n  labels: issue.labels.map(l => l.name).join(\", \") || \"none\",\n  url: issue.html_url,\n  createdAt: issue.created_at,\n  mentionedFiles: mentionedFiles.join(\", \") || \"No files mentioned\",\n  repositoryName: repo.full_name,\n  repositoryOwner: repo.owner.login,\n  repositoryRepo: repo.name\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "sticky-ai",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        750
      ],
      "parameters": {
        "width": 280,
        "height": 340,
        "content": "## 🤖 STEP 4: AI ANALYSIS\n\n**GPT-4o analyzes:**\n- Bug severity (Critical/High/Medium/Low)\n- Category (Backend/Frontend/DB/API/UI/etc)\n- Reproduction steps\n- Potential root cause\n- Priority (P0-P3)\n- Complexity & time estimate\n- Recommended developer\n\n**Setup:** Add OpenAI credentials\n\n**Cost:** ~$0.01-0.03 per issue"
      },
      "typeVersion": 1
    },
    {
      "id": "d4e5f6a7-b8c9-4d5e-1f2a-3b4c5d6e7f8a",
      "name": "GPT-4o 버그 분석",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1450,
        1100
      ],
      "parameters": {
        "text": "=Analyze this GitHub issue and provide a structured response in valid JSON format:\n\n**Issue Title:** {{$json.title}}\n**Description:** {{$json.description}}\n**Labels:** {{$json.labels}}\n**Mentioned Files:** {{$json.mentionedFiles}}\n**Repository:** {{$json.repositoryName}}\n\nProvide your analysis in this exact JSON structure:\n{\n  \"bugSeverity\": \"Critical|High|Medium|Low\",\n  \"category\": \"Backend|Frontend|Database|API|UI|Performance|Security|Infrastructure\",\n  \"reproductionSteps\": \"Clear numbered steps to reproduce\",\n  \"potentialRootCause\": \"Brief technical analysis\",\n  \"suggestedPriority\": \"P0|P1|P2|P3\",\n  \"estimatedComplexity\": \"Simple|Medium|Complex\",\n  \"recommendedDeveloper\": \"backend-dev|frontend-dev|fullstack-dev|devops\",\n  \"estimatedHours\": \"number between 1-40\"\n}\n\nRespond with ONLY the JSON object, no additional text.",
        "model": "gpt-4o",
        "options": {
          "maxTokens": 1000,
          "temperature": 0.3
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "sticky-parse",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1650,
        750
      ],
      "parameters": {
        "width": 300,
        "height": 340,
        "content": "## 🔧 STEP 5: PARSE & MAP\n\n**Functions:**\n- Parse AI JSON response (with error handling)\n- Map developer types to emails\n- Convert priorities (P0→Highest)\n- Prepare Jira labels array\n\n**⚠️ CUSTOMIZE THIS:**\nUpdate email addresses in the code:\n```\n\"backend-dev\": \"backend@company.com\"\n\"frontend-dev\": \"frontend@company.com\"\n\"fullstack-dev\": \"fullstack@company.com\"\n\"devops\": \"devops@company.com\"\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "e5f6a7b8-c9d0-4e5f-2a3b-4c5d6e7f8a9b",
      "name": "GPT 응답 파싱 및 데이터 매핑",
      "type": "n8n-nodes-base.code",
      "position": [
        1800,
        1100
      ],
      "parameters": {
        "jsCode": "const issueData = $('Extract Issue Context').item.json;\nconst gptResponse = $input.item.json.text;\n\nlet analysis;\ntry {\n  analysis = JSON.parse(gptResponse);\n} catch (error) {\n  analysis = {\n    bugSeverity: \"Medium\",\n    category: \"General\",\n    reproductionSteps: \"See original issue\",\n    potentialRootCause: \"Requires investigation\",\n    suggestedPriority: \"P2\",\n    estimatedComplexity: \"Medium\",\n    recommendedDeveloper: \"fullstack-dev\",\n    estimatedHours: 8\n  };\n}\n\nconst developerMapping = {\n  \"backend-dev\": \"backend.dev@company.com\",\n  \"frontend-dev\": \"frontend.dev@company.com\",\n  \"fullstack-dev\": \"fullstack.dev@company.com\",\n  \"devops\": \"devops@company.com\"\n};\n\nconst priorityMapping = {\n  \"P0\": \"Highest\",\n  \"P1\": \"High\",\n  \"P2\": \"Medium\",\n  \"P3\": \"Low\"\n};\n\nreturn {\n  ...issueData,\n  bugSeverity: analysis.bugSeverity,\n  category: analysis.category,\n  reproductionSteps: analysis.reproductionSteps,\n  potentialRootCause: analysis.potentialRootCause,\n  suggestedPriority: analysis.suggestedPriority,\n  estimatedComplexity: analysis.estimatedComplexity,\n  estimatedHours: analysis.estimatedHours,\n  recommendedDeveloper: analysis.recommendedDeveloper,\n  assignedDeveloper: developerMapping[analysis.recommendedDeveloper] || \"triage@company.com\",\n  jiraLabels: [analysis.category, analysis.bugSeverity],\n  jiraPriority: priorityMapping[analysis.suggestedPriority] || \"Medium\"\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "sticky-jira",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2000,
        750
      ],
      "parameters": {
        "width": 300,
        "height": 340,
        "content": "## 🎫 STEP 6: CREATE JIRA\n\n**Setup:**\n1. Add Jira Software Cloud credentials\n2. Update YOUR_JIRA_PROJECT_KEY\n3. Replace your-company.atlassian.net URLs\n\n**Ticket includes:**\n- GitHub issue link\n- Original description\n- Complete AI analysis\n- Auto-assigned developer\n- Priority & labels set\n\n**Get API Token:**\nJira → Profile → Security → API Tokens → Create"
      },
      "typeVersion": 1
    },
    {
      "id": "f6a7b8c9-d0e1-4f5a-3b4c-5d6e7f8a9b0c",
      "name": "Jira 티켓 생성",
      "type": "n8n-nodes-base.jira",
      "position": [
        2150,
        1100
      ],
      "parameters": {
        "project": "YOUR_JIRA_PROJECT_KEY",
        "summary": "=[GitHub #{{$json.issueNumber}}] {{$json.title}}",
        "resource": "issue",
        "issueType": "Bug",
        "operation": "create",
        "description": "=*Reported by:* {{$json.reporter}}\n*GitHub Issue:* {{$json.url}}\n*Repository:* {{$json.repositoryName}}\n\n---\n\n*Original Description:*\n{{$json.description}}\n\n---\n\n*AI Analysis Summary:*\n\n*Severity:* {{$json.bugSeverity}}\n*Category:* {{$json.category}}\n*Estimated Complexity:* {{$json.estimatedComplexity}}\n*Estimated Hours:* {{$json.estimatedHours}}\n*Mentioned Files:* {{$json.mentionedFiles}}\n\n*Reproduction Steps:*\n{{$json.reproductionSteps}}\n\n*Potential Root Cause:*\n{{$json.potentialRootCause}}",
        "additionalFields": {
          "labels": "={{$json.jiraLabels}}",
          "assignee": "={{$json.assignedDeveloper}}",
          "priority": "={{$json.jiraPriority}}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-notify",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2350,
        750
      ],
      "parameters": {
        "width": 360,
        "height": 340,
        "content": "## 🔔 STEP 7: NOTIFICATIONS\n\n**3 Parallel Branches:**\n\n1️⃣ **GitHub Comment**\n- Posts on original issue\n- Links to Jira ticket\n- Shows AI analysis summary\n\n2️⃣ **Slack Alert**\n- Rich formatted message\n- All bug details\n- Action buttons\n\n3️⃣ **Discord Alert**\n- Markdown formatted\n- Links to both platforms\n\nAll execute simultaneously!"
      },
      "typeVersion": 1
    },
    {
      "id": "a7b8c9d0-e1f2-4a5b-4c5d-6e7f8a9b0c1d",
      "name": "GitHub Issue 업데이트",
      "type": "n8n-nodes-base.github",
      "position": [
        2550,
        950
      ],
      "parameters": {
        "body": "=🤖 **Automated Bug Report Created**\n\n📋 **Jira Ticket:** [{{$json.key}}](https://your-company.atlassian.net/browse/{{$json.key}})\n\n**AI Analysis:**\n- **Severity:** {{$('Parse GPT Response & Map Data').item.json.bugSeverity}}\n- **Category:** {{$('Parse GPT Response & Map Data').item.json.category}}\n- **Priority:** {{$('Parse GPT Response & Map Data').item.json.suggestedPriority}}\n- **Assigned to:** {{$('Parse GPT Response & Map Data').item.json.assignedDeveloper}}\n- **Estimated Time:** {{$('Parse GPT Response & Map Data').item.json.estimatedHours}} hours\n\nThis issue has been automatically triaged and assigned. A developer will review soon.",
        "owner": "={{$('Parse GPT Response & Map Data').item.json.repositoryOwner}}",
        "resource": "issue",
        "operation": "createComment",
        "repository": "={{$('Parse GPT Response & Map Data').item.json.repositoryRepo}}",
        "issueNumber": "={{$('Parse GPT Response & Map Data').item.json.issueNumber}}",
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "b8c9d0e1-f2a3-4b5c-5d6e-7f8a9b0c1d2e",
      "name": "Slack 알림 전송",
      "type": "n8n-nodes-base.slack",
      "position": [
        2550,
        1100
      ],
      "parameters": {
        "text": "=New Bug Report",
        "channel": "dev-alerts",
        "blocksUi": {
          "blocksValues": [
            {
              "type": "header",
              "textUi": {
                "text": "=🐛 New Bug: GitHub #{{$('Extract Issue Context').item.json.issueNumber}}"
              }
            },
            {
              "type": "section",
              "fieldsUi": {
                "fieldsValues": [
                  {
                    "text": "=*Title:*\\n{{$('Extract Issue Context').item.json.title}}"
                  },
                  {
                    "text": "=*Severity:*\\n{{$('Parse GPT Response & Map Data').item.json.bugSeverity}}"
                  },
                  {
                    "text": "=*Category:*\\n{{$('Parse GPT Response & Map Data').item.json.category}}"
                  },
                  {
                    "text": "=*Priority:*\\n{{$('Parse GPT Response & Map Data').item.json.suggestedPriority}}"
                  },
                  {
                    "text": "=*Assigned:*\\n{{$('Parse GPT Response & Map Data').item.json.assignedDeveloper}}"
                  },
                  {
                    "text": "=*Est. Hours:*\\n{{$('Parse GPT Response & Map Data').item.json.estimatedHours}}h"
                  }
                ]
              }
            },
            {
              "type": "section",
              "textUi": {
                "text": "=*Potential Cause:*\\n{{$('Parse GPT Response & Map Data').item.json.potentialRootCause}}"
              }
            },
            {
              "type": "actions",
              "elementsUi": {
                "elementsValues": [
                  {
                    "url": "={{$('Extract Issue Context').item.json.url}}",
                    "type": "button",
                    "textUi": {
                      "text": "View in GitHub"
                    }
                  },
                  {
                    "url": "=https://your-company.atlassian.net/browse/{{$json.key}}",
                    "type": "button",
                    "textUi": {
                      "text": "View in Jira"
                    }
                  }
                ]
              }
            }
          ]
        },
        "resource": "message",
        "operation": "post"
      },
      "typeVersion": 2.1
    },
    {
      "id": "c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f",
      "name": "Discord 알림 전송",
      "type": "n8n-nodes-base.discord",
      "position": [
        2550,
        1250
      ],
      "parameters": {
        "url": "YOUR_DISCORD_WEBHOOK_URL",
        "content": "=🐛 **New Bug Report - {{$('Parse GPT Response & Map Data').item.json.bugSeverity}} Priority**\\n\\n**GitHub Issue:** #{{$('Extract Issue Context').item.json.issueNumber}} - {{$('Extract Issue Context').item.json.title}}\\n**Jira Ticket:** {{$json.key}}\\n**Severity:** {{$('Parse GPT Response & Map Data').item.json.bugSeverity}}\\n**Category:** {{$('Parse GPT Response & Map Data').item.json.category}}\\n**Assigned:** {{$('Parse GPT Response & Map Data').item.json.assignedDeveloper}}\\n**Estimated:** {{$('Parse GPT Response & Map Data').item.json.estimatedHours}} hours\\n\\n**Potential Cause:**\\n{{$('Parse GPT Response & Map Data').item.json.potentialRootCause}}\\n\\n🔗 [GitHub]({{$('Extract Issue Context').item.json.url}}) | [Jira](https://your-company.atlassian.net/browse/{{$json.key}})",
        "options": {}
      },
      "typeVersion": 2
    },
    {
      "id": "sticky-response",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2750,
        750
      ],
      "parameters": {
        "width": 300,
        "height": 340,
        "content": "## ✅ STEP 8: RESPOND\n\n**Returns JSON to GitHub:**\n```\n{\n  \"status\": \"success\",\n  \"message\": \"Bug processed\",\n  \"jiraTicket\": \"ENG-123\"\n}\n```\n\n**Why important:**\n- Confirms processing succeeded\n- Prevents GitHub retries\n- Shows success in webhook log\n\n**Monitor:**\nGitHub → Settings → Webhooks → Recent Deliveries"
      },
      "typeVersion": 1
    },
    {
      "id": "d0e1f2a3-b4c5-4d5e-7f8a-9b0c1d2e3f4a",
      "name": "Webhook 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2900,
        1100
      ],
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ { \"status\": \"success\", \"message\": \"Bug report processed\", \"jiraTicket\": $json.key } }}"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-troubleshoot",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        250,
        1450
      ],
      "parameters": {
        "width": 420,
        "height": 540,
        "content": "# 🔧 TROUBLESHOOTING\n\n**Webhook not triggering?**\n✅ Activate workflow first\n✅ Check webhook URL copied correctly\n✅ Verify \"Issues\" event selected in GitHub\n✅ Test with curl or create test issue\n\n**AI analysis fails?**\n✅ Add OpenAI credentials in n8n\n✅ Verify API key is valid\n✅ Check GPT-4o access on account\n✅ Review OpenAI API status\n\n**Jira ticket creation fails?**\n✅ Add Jira credentials (email + API token)\n✅ Update YOUR_JIRA_PROJECT_KEY\n✅ Verify \"Bug\" issue type exists\n✅ Check assignee emails are valid\n\n**Slack notification fails?**\n✅ Re-authenticate Slack OAuth\n✅ Verify channel name (use \"dev-alerts\" not \"#dev-alerts\")\n✅ Check bot has permission to post\n✅ Invite bot to private channels\n\n**Discord notification fails?**\n✅ Verify webhook URL is complete\n✅ Test webhook with curl\n✅ Check webhook not deleted in Discord\n\n**GitHub comment fails?**\n✅ Use GitHub OAuth2 authentication\n✅ Verify repo permissions\n✅ Check owner/repo names are correct"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-roi",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        710,
        1450
      ],
      "parameters": {
        "width": 420,
        "height": 540,
        "content": "# 📊 ROI CALCULATOR\n\n**Manual Process per Bug:**\n- Read & assess: 5 min\n- Determine category: 2 min\n- Create Jira ticket: 5 min\n- Assign developer: 2 min\n- Notify team: 2 min\n- Update GitHub: 1 min\n**Total: 17 minutes**\n\n**Automated Process:**\n**6-8 seconds** ⚡\n\n**Monthly Savings (50 bugs):**\n- Time saved: 825 min (13.75 hrs)\n- Labor value: $687.50 (@$50/hr)\n- OpenAI cost: ~$2\n- **Net savings: $685/month**\n\n**Annual ROI:**\n**$8,220 saved per year** 💰\n\n**Additional Benefits:**\n✅ Consistent quality\n✅ Zero human error\n✅ 24/7 availability\n✅ Instant response\n✅ Better developer morale"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-customize",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1170,
        1450
      ],
      "parameters": {
        "width": 420,
        "height": 540,
        "content": "# 🎨 CUSTOMIZATION IDEAS\n\n**1. Add more developer types:**\nEdit Parse GPT Response node:\n```javascript\nconst developerMapping = {\n  \"backend-dev\": \"backend@company.com\",\n  \"frontend-dev\": \"frontend@company.com\",\n  \"mobile-dev\": \"mobile@company.com\",\n  \"qa-engineer\": \"qa@company.com\",\n  \"devops\": \"devops@company.com\"\n};\n```\n\n**2. Filter by severity:**\nAdd IF node after Parse:\n- Only process Critical/High bugs\n- Route low-priority to separate flow\n\n**3. Route by channel based on severity:**\n```javascript\nconst channel = severity === 'Critical' \n  ? 'critical-alerts' \n  : 'dev-alerts';\n```\n\n**4. Add email notifications:**\nInsert Send Email node after Jira\n- Email assigned developer\n- Include all bug details\n\n**5. Custom Jira labels:**\n```javascript\njiraLabels: [\n  category,\n  severity,\n  'auto-triaged',\n  `repo-${repositoryName}`\n]\n```\n\n**6. Multi-repository support:**\nAdd Switch node after Filter:\n- Route different repos to different Jira projects\n- Assign to different teams\n- Use custom AI prompts per repo"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d": {
      "main": [
        [
          {
            "node": "b2c3d4e5-f6a7-4b5c-9d0e-1f2a3b4c5d6e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6a7b8c9-d0e1-4f5a-3b4c-5d6e7f8a9b0c": {
      "main": [
        [
          {
            "node": "a7b8c9d0-e1f2-4a5b-4c5d-6e7f8a9b0c1d",
            "type": "main",
            "index": 0
          },
          {
            "node": "b8c9d0e1-f2a3-4b5c-5d6e-7f8a9b0c1d2e",
            "type": "main",
            "index": 0
          },
          {
            "node": "c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d4e5f6a7-b8c9-4d5e-1f2a-3b4c5d6e7f8a": {
      "main": [
        [
          {
            "node": "e5f6a7b8-c9d0-4e5f-2a3b-4c5d6e7f8a9b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a7b8c9d0-e1f2-4a5b-4c5d-6e7f8a9b0c1d": {
      "main": [
        [
          {
            "node": "d0e1f2a3-b4c5-4d5e-7f8a-9b0c1d2e3f4a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c3d4e5f6-a7b8-4c5d-0e1f-2a3b4c5d6e7f": {
      "main": [
        [
          {
            "node": "d4e5f6a7-b8c9-4d5e-1f2a-3b4c5d6e7f8a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b2c3d4e5-f6a7-4b5c-9d0e-1f2a3b4c5d6e": {
      "main": [
        [
          {
            "node": "c3d4e5f6-a7b8-4c5d-0e1f-2a3b4c5d6e7f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e5f6a7b8-c9d0-4e5f-2a3b-4c5d6e7f8a9b": {
      "main": [
        [
          {
            "node": "f6a7b8c9-d0e1-4f5a-3b4c-5d6e7f8a9b0c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

고급 - 콘텐츠 제작, 멀티모달 AI

유료인가요?

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

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

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

저자
Shelly-Ann Davy

Shelly-Ann Davy

@SheCodesFlow

Founder of The Workflow Muse & @SheCodesFlow. I craft elegant, task-focused automations for creators, founders, and soft-tech enthusiasts. “Automate with grace. Scale with power.”

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34