Reporte automatizado de errores: GitHub Issues → Análisis de IA → Tickets de Jira, con notificaciones en Slack y Discord

Avanzado

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 22 nodos.Utiliza principalmente nodos como If, Code, Jira, Slack, Github. Sincronización de errores de GitHub a Jira, con análisis y recordatorios para el equipo mediante GPT-4o

Requisitos previos
  • Bot Token de Slack o URL de Webhook
  • Personal Access Token de GitHub
  • Bot Token de Discord o Webhook
  • Punto final de HTTP Webhook (n8n generará automáticamente)
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "name": "Automate Bug Reports: GitHub Issues → AI Analysis → Jira Tickets with Slack & Discord Alerts",
  "tags": [],
  "nodes": [
    {
      "id": "sticky-overview",
      "name": "Nota Adhesiva",
      "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": "Nota Adhesiva",
      "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": "Nota Adhesiva",
      "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": "Filtro: Solo Issues Nuevos",
      "type": "n8n-nodes-base.if",
      "position": [
        750,
        1100
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.action}}",
              "value2": "opened",
              "operation": "equals"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-extract",
      "name": "Nota Adhesiva",
      "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": "Extraer Contexto del 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": "Nota Adhesiva",
      "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": "Análisis de Bugs con 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": "Nota Adhesiva",
      "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": "Analizar Respuesta de GPT y Mapear Datos",
      "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": "Nota Adhesiva",
      "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": "Crear Ticket en 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": "Nota Adhesiva",
      "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": "Actualizar Issue en GitHub",
      "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": "Enviar Alerta a 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": "Enviar Alerta a 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": "Nota Adhesiva",
      "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": "Respuesta de 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": "Nota Adhesiva",
      "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": "Nota Adhesiva",
      "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": "Nota Adhesiva",
      "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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Creación de contenido, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos22
Categoría2
Tipos de nodos10
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
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.”

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34