Workflow de gestion des incidents

Avancé

Ceci est unDevOpsworkflow d'automatisation du domainecontenant 23 nœuds.Utilise principalement des nœuds comme If, Set, Code, Jira, Merge. Automatiser la réponse aux incidents avec Jira, Slack, Google Sheets et Drive

Prérequis
  • Token Bot Slack ou URL Webhook
  • Informations d'identification Google Drive API
  • Informations d'identification Google Sheets API

Catégorie

Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "J93LxYXb9IHdMR7s",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "Incident Management Workflow",
  "tags": [],
  "nodes": [
    {
      "id": "70b38182-4e4c-4f33-9955-18712a2734ef",
      "name": "Lors du clic sur 'Exécuter le workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1008,
        -48
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c5e9b101-a3bb-4095-9931-10cb47abf60c",
      "name": "Note adhésive",
      "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": "Note adhésive1",
      "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": "Note adhésive2",
      "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": "Note adhésive3",
      "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": "Note adhésive4",
      "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": "Note adhésive5",
      "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": "Note adhésive6",
      "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": "Note adhésive7",
      "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": "Note adhésive8",
      "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": "Définir les Métadonnées d'Incident",
      "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": "Créer un Ticket d'Incident 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": "Combiner les Données d'Incident et Jira",
      "type": "n8n-nodes-base.merge",
      "position": [
        496,
        -32
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "203c7131-85a6-4fee-8475-8ef86e7414d4",
      "name": "Formater l'Alerte d'Incident pour 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": "Alerter l'Équipe de Garde dans 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": "Générer un Rapport de Chronologie d'Incident",
      "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": "Convertir la Chronologie en Fichier Texte",
      "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": "Enregistrer l'Incident dans la Feuille de Suivi de Statut",
      "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": "Archiver la Chronologie d'Incident dans 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": "Note adhésive9",
      "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": "Note adhésive10",
      "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": "Valider la Réussite de Création du Ticket 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": "Enregistrer les Échecs de Création Jira dans la Feuille d'Erreurs",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - DevOps

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds23
Catégorie1
Types de nœuds11
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
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.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34