자동화된 오류 보고: 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)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
회의록 및 액션 아이템 트래커
AI 기반 회의록: GPT-4, 작업 할당 및 다중 채널 배포 활용
If
Set
Code
+
If
Set
Code
38 노드Jitesh Dugar
콘텐츠 제작
Notion에서 고객 육성 이메일 및 리뷰 수집 자동 실행
Telegram을 통해 Google 캘린더 및 Notion CRM을 사용한 자동화된 회의 일정 조정
If
Set
Code
+
If
Set
Code
19 노드Shelly-Ann Davy
지원 챗봇
뉴스 브리핑 자동화 템플릿
사용하여 Perplexity 연구, GPT 초안 작성 및 Gmail 승인 절차로 재무 뉴스 브리핑을 생성합니다.
If
Code
Gmail
+
If
Code
Gmail
27 노드Cristina
콘텐츠 제작
고객 성장 이메일과 Notion 고객 평가 수집 자동화
WhatsApp, GPT-4V, Google Sheets를 사용하여 영수증 데이터 추출 및 정리
If
Code
Notion
+
If
Code
Notion
18 노드Shelly-Ann Davy
청구서 처리
AI 기반 동영상 제작 및 Instagram, TikTok, YouTube 업로드
클라우드 드라이브 기반 AI 기반 비디오 제작 및 Instagram, TikTok, YouTube 업로드
If
Set
Code
+
If
Set
Code
53 노드DevCode Journey
콘텐츠 제작
잠재 고객 자격 평가 및 라우팅 엔진
AI 기반 잠재 고객 자격 평가 및 라우팅: OpenAI, Slack 및 Airtable 활용
If
Set
Slack
+
If
Set
Slack
17 노드Xavier Tai
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수22
카테고리2
노드 유형10
저자
Shelly-Ann Davy
@SheCodesFlowFounder 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에서 보기 →
이 워크플로우 공유