Automatisation assistée par IA basée sur Outlook, OpenAI et JIRA

Avancé

Ceci est unTicket Management, Multimodal AIworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme If, Jira, Gmail, Webhook, Function. Système d'automatisation assistée par IA intégrant Outlook, OpenAI et les tickets JIRA

Prérequis
  • Compte Google et informations d'identification Gmail API
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
  • Clé API OpenAI
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
{
  "meta": {
    "instanceId": "54727bff0f5eeffb7bf9295509a4e3003a61b32ef52459f329ae99e7b5243230"
  },
  "nodes": [
    {
      "id": "b28b477c-281c-4371-9bc6-e9cdff0623cb",
      "name": "Déclencheur Outlook1",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        -48,
        1344
      ],
      "webhookId": "d22fa384-f0e1-411f-bb06-867458d1a22c",
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": {
            "filters": {
              "receivedAfter": "={{ $now.minus({ minutes: 30 }).toISO() }}"
            }
          }
        },
        "operation": "getAll"
      },
      "typeVersion": 2
    },
    {
      "id": "51e582d1-d8ea-43f1-8db8-d8af869b41fe",
      "name": "Déclencheur Webhook1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -48,
        1104
      ],
      "webhookId": "f319cf3f-aad0-487d-b4a1-897ac7545efe",
      "parameters": {
        "path": "support",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1.1
    },
    {
      "id": "96a9a667-47e9-4103-b3ff-239a2fe0b888",
      "name": "Normalisation des données1",
      "type": "n8n-nodes-base.function",
      "position": [
        160,
        1232
      ],
      "parameters": {
        "functionCode": "const data = $input.all();\nconst result = [];\n\nfor (const item of data) {\n  let normalized = {\n    source: item.json.from ? 'email' : 'webhook',\n    email: item.json.from?.emailAddress?.address || item.json.email,\n    name: item.json.from?.emailAddress?.name || item.json.name,\n    subject: item.json.subject || 'Web Request',\n    message: item.json.body?.content || item.json.message,\n    timestamp: new Date().toISOString()\n  };\n  result.push({ json: normalized });\n}\n\nreturn result;"
      },
      "typeVersion": 1
    },
    {
      "id": "b6447498-d7ad-4733-bcd7-bbf0bae1cb1e",
      "name": "Suppression des doublons1",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        368,
        1232
      ],
      "parameters": {
        "options": {},
        "operation": "removeItemsSeenInPreviousExecutions",
        "dedupeValue": "={{ $json.email + $json.subject }}"
      },
      "typeVersion": 2
    },
    {
      "id": "37505804-f4a2-445f-b751-bd4b5aa98062",
      "name": "Modèle OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        576,
        1424
      ],
      "parameters": {
        "model": {
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "d8a47dc8-7baa-414f-9ffb-c36f1ee87294",
      "name": "Analyseur JSON1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        768,
        1424
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"category\": {\"type\": \"string\"},\n    \"urgency\": {\"type\": \"string\"},\n    \"expertise\": {\"type\": \"string\"},\n    \"canAutoResolve\": {\"type\": \"boolean\"},\n    \"isVIP\": {\"type\": \"boolean\"}\n  }\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "8210bcfa-c0f1-4329-a7ba-8d3b0fa3e3ac",
      "name": "Décision de routage1",
      "type": "n8n-nodes-base.if",
      "position": [
        928,
        1232
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ff7f1bf0-0ce3-4eb3-a9de-1675a785f2c2",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3ef69825-72c7-4d8c-9009-eba6a7591c19",
      "name": "Réponse automatique1",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        1184,
        1056
      ],
      "webhookId": "3d561e9a-2aaa-425b-8f3b-e0d9b51bed5f",
      "parameters": {
        "operation": "sendMessage"
      },
      "typeVersion": 2
    },
    {
      "id": "1bfa088a-9721-4975-a7b0-cea8d6225114",
      "name": "Attribution d'agent1",
      "type": "n8n-nodes-base.function",
      "position": [
        1184,
        1328
      ],
      "parameters": {
        "functionCode": "const request = $json;\nconst expertise = request.output.expertise;\nconst isVIP = request.output.isVIP;\nconst urgency = request.output.urgency;\n\n// Agent assignment logic\nconst agents = {\n  'frontend': 'john@company.com',\n  'backend': 'sarah@company.com',\n  'business': 'lisa@company.com',\n  'support': 'tom@company.com'\n};\n\nconst assignedAgent = agents[expertise] || agents['support'];\n\n// SLA calculation\nconst slaHours = {\n  'critical': isVIP ? 1 : 2,\n  'high': isVIP ? 4 : 8,\n  'medium': isVIP ? 8 : 24,\n  'low': 24\n};\n\nreturn [{\n  json: {\n    ...request,\n    assignedAgent,\n    slaHours: slaHours[urgency],\n    priority: urgency === 'critical' ? 1 : urgency === 'high' ? 2 : 3\n  }\n}];"
      },
      "typeVersion": 1
    },
    {
      "id": "53f8485b-5287-433a-b7b7-e2e6356fd7ed",
      "name": "Création ticket JIRA1",
      "type": "n8n-nodes-base.jira",
      "position": [
        1360,
        1328
      ],
      "parameters": {
        "project": {
          "value": "SUP"
        },
        "summary": "{{ $json.subject }}",
        "issueType": {
          "value": "Task"
        },
        "additionalFields": {
          "labels": [
            "{{ $json.output.category }}",
            "{{ $json.source }}"
          ],
          "assignee": {
            "value": "{{ $json.assignedAgent }}"
          },
          "priority": {
            "value": "{{ $json.priority }}"
          },
          "description": "Customer: {{ $json.name }} ({{ $json.email }})\nSource: {{ $json.source }}\nCategory: {{ $json.output.category }}\nUrgency: {{ $json.output.urgency }}\n{{ $json.output.isVIP ? 'VIP CUSTOMER' : '' }}\n\nMessage:\n{{ $json.message }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6d76ea6d-050c-4e36-a217-f6efd492217b",
      "name": "Envoi confirmation1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1536,
        1328
      ],
      "webhookId": "909c81d1-fb58-4349-b978-0966e5d93e3b",
      "parameters": {
        "message": "Dear {{ $json.name }},\n\nYour support request has been received and assigned ticket #{{ $json.ticketKey }}.\n\nPriority: {{ $json.output.urgency }}{{ $json.output.isVIP ? ' (VIP)' : '' }}\nAssigned to: {{ $json.assignedAgent }}\nExpected response: {{ $json.slaHours }} hours\n\nWe'll update you as we work on your request.\n\nBest regards,\nSupport Team",
        "options": {},
        "subject": "Support Ticket Created - {{ $json.subject }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "9811b90f-39a8-4c9d-9472-5ae94c29aa97",
      "name": "Réponse Webhook1",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1728,
        1056
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"success\",\n  \"message\": \"Request processed\",\n  \"ticketId\": \"{{ $json.ticketKey || 'AUTO_RESOLVED' }}\"\n}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
      "name": "Classificateur IA2",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        592,
        1232
      ],
      "parameters": {
        "text": "Subject: {{ $json.subject }}\nMessage: {{ $json.message }}\nFrom: {{ $json.name }} ({{ $json.email }})",
        "messages": {
          "messageValues": [
            {
              "message": "Classify this support request. Return JSON with:\n{\n  \"category\": \"technical|billing|account|feature\",\n  \"urgency\": \"critical|high|medium|low\",\n  \"expertise\": \"frontend|backend|support|business\",\n  \"canAutoResolve\": true|false,\n  \"isVIP\": true|false\n}\n\nVIP indicators: enterprise email domains, mentions of \"enterprise\", \"premium\", urgent language.\nAuto-resolve: simple how-to questions, password resets, basic billing questions."
            }
          ]
        },
        "hasOutputParser": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "ea4bb972-004b-4214-b9a7-4a0fe0ce014d",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        528
      ],
      "parameters": {
        "color": 3,
        "width": 464,
        "height": 336,
        "content": "## SMART SUPPORT AGENT\n\nThis workflow handles support requests from:\n- Outlook emails (shared inbox)\n- Web forms (webhook endpoint)\n\n### KEY FEATURES:\n✅ AI-powered classification\n✅ Auto-resolution for simple issues\n✅ Smart agent routing\n✅ SLA tracking\n"
      },
      "typeVersion": 1
    },
    {
      "id": "23bd9e14-7a5a-4ac0-82da-8c901f422557",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        880
      ],
      "parameters": {
        "color": 3,
        "width": 464,
        "height": 400,
        "content": "### CUSTOMIZE FOR YOUR TEAM\n\nSTEP 1: Update \"Assign Agent\" node\n→ Edit function code\n→ Replace email addresses with your team\n\nSTEP 2: Modify JIRA settings\n→ \"Create JIRA Ticket\" node\n→ Change project key from \"SUP\"\n→ Update issue types if needed\n\nSTEP 3: Adjust SLA times\n→ In \"Assign Agent\" function\n→ Modify slaHours object values\n\nSTEP 4: Test webhook endpoint\n→ https://your-n8n.com/webhook/support"
      },
      "typeVersion": 1
    },
    {
      "id": "40549f86-6fc2-427c-b382-944c5f321fb3",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        528
      ],
      "parameters": {
        "width": 352,
        "height": 1056,
        "content": "### AI CLASSIFICATION TIPS\n\nThe AI determines:\n- Category (technical/billing/account/feature)\n- Urgency (critical/high/medium/low) \n- Who should handle it\n- If it can be auto-resolved\n\nTO IMPROVE ACCURACY:\n→ Add examples to the prompt\n→ Include your product-specific terms\n→ Train with your actual tickets\n\nVIP DETECTION:\nCurrently looks for enterprise domains\n→ Customize in the prompt!"
      },
      "typeVersion": 1
    },
    {
      "id": "97a5075b-315d-406b-9e43-bf1f448eee67",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        528
      ],
      "parameters": {
        "width": 288,
        "height": 688,
        "content": "### AUTO-RESOLUTION WORKS FOR:\n\n✅ Password reset requests\n✅ \"Where is my invoice?\" \n✅ Basic how-to questions\n✅ Documentation requests\n✅ Simple account questions\n\n### NEVER AUTO-RESOLVES:\n- Billing disputes\n- Security issues  \n- Bug reports\n- VIP customer requests\n- Complex technical problems\n\nCUSTOMIZE: Edit the AI prompt to match your support patterns!"
      },
      "typeVersion": 1
    },
    {
      "id": "6919f336-fc6b-4c46-b1dd-222b426c23cb",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        528
      ],
      "parameters": {
        "width": 336,
        "height": 752,
        "content": "### WEBHOOK INTEGRATION\n\nENDPOINT: /webhook/support\nMETHOD: POST\n\nREQUIRED FIELDS:\n{\n  \"email\": \"customer@company.com\",\n  \"name\": \"Customer Name\", \n  \"message\": \"Support request text\"\n}\n\nOPTIONAL FIELDS:\n{\n  \"subject\": \"Custom subject\",\n  \"priority\": \"high\",\n  \"source\": \"website\"\n}\n\nINTEGRATE WITH:\n- Contact forms\n- Chat widgets\n- Mobile apps\n- Other systems\n\nReturns: {\"status\":\"success\", \"ticketId\":\"...\"}"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "d8a47dc8-7baa-414f-9ffb-c36f1ee87294": {
      "ai_outputParser": [
        [
          {
            "node": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "1bfa088a-9721-4975-a7b0-cea8d6225114": {
      "main": [
        [
          {
            "node": "53f8485b-5287-433a-b7b7-e2e6356fd7ed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "37505804-f4a2-445f-b751-bd4b5aa98062": {
      "ai_languageModel": [
        [
          {
            "node": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "2c96f390-163c-4b2a-8a69-ad53ffbfdd17": {
      "main": [
        [
          {
            "node": "8210bcfa-c0f1-4329-a7ba-8d3b0fa3e3ac",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3ef69825-72c7-4d8c-9009-eba6a7591c19": {
      "main": [
        [
          {
            "node": "9811b90f-39a8-4c9d-9472-5ae94c29aa97",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "96a9a667-47e9-4103-b3ff-239a2fe0b888": {
      "main": [
        [
          {
            "node": "b6447498-d7ad-4733-bcd7-bbf0bae1cb1e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8210bcfa-c0f1-4329-a7ba-8d3b0fa3e3ac": {
      "main": [
        [
          {
            "node": "3ef69825-72c7-4d8c-9009-eba6a7591c19",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "1bfa088a-9721-4975-a7b0-cea8d6225114",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b28b477c-281c-4371-9bc6-e9cdff0623cb": {
      "main": [
        [
          {
            "node": "96a9a667-47e9-4103-b3ff-239a2fe0b888",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "51e582d1-d8ea-43f1-8db8-d8af869b41fe": {
      "main": [
        [
          {
            "node": "96a9a667-47e9-4103-b3ff-239a2fe0b888",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b6447498-d7ad-4733-bcd7-bbf0bae1cb1e": {
      "main": [
        [
          {
            "node": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6d76ea6d-050c-4e36-a217-f6efd492217b": {
      "main": [
        [
          {
            "node": "9811b90f-39a8-4c9d-9472-5ae94c29aa97",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "53f8485b-5287-433a-b7b7-e2e6356fd7ed": {
      "main": [
        [
          {
            "node": "6d76ea6d-050c-4e36-a217-f6efd492217b",
            "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é - Gestion des tickets, IA Multimodale

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œuds18
Catégorie2
Types de nœuds12
Description de la difficulté

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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34