Workflow n8n

Automatisation OpenAI avec n8n : gestion des messages Discord

Ce workflow n8n permet d'automatiser la gestion des messages reçus sur Discord en intégrant OpenAI pour générer des réponses intelligentes. Dans un contexte où la communication rapide et efficace est cruciale, ce type d'automatisation est particulièrement utile pour les équipes de support client ou les communautés en ligne qui souhaitent interagir avec leurs membres de manière dynamique. En utilisant ce workflow, les utilisateurs peuvent facilement gérer les messages entrants et fournir des réponses pertinentes basées sur l'intelligence artificielle, améliorant ainsi l'expérience utilisateur et réduisant le temps de réponse. Le déclencheur de ce workflow est un message reçu dans un chat, qui active une série de noeuds.

  • Étape 1 : le noeud 'When chat message received' capte le message.
  • Étape 2 : le noeud 'OpenAI' utilise les options définies pour générer une réponse basée sur le contenu du message.
  • Étape 3 : le noeud 'Simple Memory' stocke temporairement les informations pour un traitement ultérieur. Ensuite, le workflow peut appeler d'autres workflows ou outils pour enrichir les réponses. Les noeuds 'Mapping data' et 'Get the matching country's details' permettent de traiter et d'affiner les données avant de renvoyer une réponse. Les bénéfices de cette automatisation sont multiples : elle permet de réduire le temps de réponse, d'améliorer la satisfaction client et d'optimiser les ressources humaines en automatisant les tâches répétitives. En intégrant des outils comme OpenAI, ce workflow offre une valeur ajoutée significative aux entreprises qui cherchent à améliorer leur communication en ligne.
Tags clés :automatisationOpenAIDiscordn8nchatbot
Catégorie: Webhook · Tags: automatisation, OpenAI, Discord, n8n, chatbot0

Workflow n8n OpenAI, Discord, chatbot : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n OpenAI, Discord, chatbot : détail des nœuds

  • Sticky Note

    Ce noeud crée une note autocollante avec un contenu spécifié.

  • Sticky Note1

    Ce noeud crée une autre note autocollante avec un contenu différent.

  • When chat message received

    Ce noeud déclenche le workflow lorsqu'un message de chat est reçu.

  • OpenAI

    Ce noeud utilise l'API OpenAI pour traiter des requêtes en fonction des options fournies.

  • Simple Memory

    Ce noeud gère une mémoire simple pour stocker des informations temporaires.

  • When Executed by Another Workflow

    Ce noeud déclenche le workflow lorsqu'il est exécuté par un autre workflow.

  • Tool to call the workflow below

    Ce noeud appelle un workflow spécifique en utilisant les paramètres fournis.

  • Tool: Get current date and time

    Ce noeud exécute un code JavaScript pour obtenir la date et l'heure actuelles.

  • List countries?

    Ce noeud évalue une condition pour déterminer si la liste des pays doit être traitée.

  • Mapping data

    Ce noeud exécute un code JavaScript pour mapper des données selon des règles définies.

  • Concatenate country names

    Ce noeud concatène les noms des pays en fonction des options spécifiées.

  • Return country list

    Ce noeud retourne une liste de pays en utilisant les affectations fournies.

  • Mapping data1

    Ce noeud exécute un autre code JavaScript pour mapper des données supplémentaires.

  • Get the matching country's details

    Ce noeud fusionne les détails des pays correspondants selon les critères spécifiés.

  • Return specific capital

    Ce noeud retourne la capitale spécifique d'un pays en fonction des affectations données.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "79573e58-f33f-445a-ad9a-0a92fde845c2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        480
      ],
      "parameters": {
        "width": 1174.6162657502882,
        "height": 578.9520146851776,
        "content": "## Sub-workflow: Return the capitals of fictional countries\nIt can either list the countries it knows about or return the capital of a specific country"
      },
      "typeVersion": 1
    },
    {
      "id": "5eddcce9-7ee5-4ec7-a0a1-525a9b806994",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        -80
      ],
      "parameters": {
        "width": 1168,
        "height": 528,
        "content": "## Main workflow: Chat with OpenAI Assistant\nClick the 'Chat' button at the bottom of the screen to try"
      },
      "typeVersion": 1
    },
    {
      "id": "a6c38394-1be1-4002-a9b7-c4672823aaa5",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -180,
        40
      ],
      "webhookId": "91f22813-2f7b-4ff9-a3e6-9d53fc86fbd9",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "de0398ea-c2ad-49b9-860b-695149b94590",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        100,
        40
      ],
      "parameters": {
        "options": {},
        "resource": "assistant",
        "assistantId": {
          "__rl": true,
          "mode": "id",
          "value": "asst_BWy0154vMGMdrX7MjCYaYv6a"
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "8gccIjcuf3gvaoEr",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "050042f4-f5ff-433a-9651-43cbec8eafb6",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        360,
        260
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "e4ed4cfe-78fb-44a5-8bef-67168dac95ec",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -180,
        740
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "query"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "a3a1059c-5c36-4d90-90e2-98e37f62bdd2",
      "name": "Tool to call the workflow below",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        40,
        260
      ],
      "parameters": {
        "name": "country_capitals_tool",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $workflow.id }}"
        },
        "description": "This tool has two modes:\n1. Pass 'list' to the tool to get a list of countries that the tool has the capitals for (one per line). This is useful if you can't find a match, to see if the country being asked about might have been misspelled.\n2. Pass one of the country names in the list to the tool to get the capital of that country. Note that the country must be spelled exactly as it is in the list of countries returned in mode 1",
        "workflowInputs": {
          "value": {
            "query": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('query', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "query",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "query",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2
    },
    {
      "id": "80924ec9-5e82-4e90-8b72-42fc805d83c0",
      "name": "Tool: Get current date and time",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        200,
        260
      ],
      "parameters": {
        "name": "date_tool",
        "jsCode": "let now = DateTime.now()\nreturn now.toISO()",
        "description": "Call this tool to get the current timestamp (in ISO format). No parameters necessary"
      },
      "typeVersion": 1.1
    },
    {
      "id": "8f6a83bd-71eb-4f2d-b906-a18476f18f40",
      "name": "List countries?",
      "type": "n8n-nodes-base.if",
      "position": [
        40,
        740
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ca43a9bd-5db3-4240-ae46-0402c8411818",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.query }}",
              "rightValue": "list"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "40d93a59-4c91-43e4-a4a3-3732475617d6",
      "name": "Mapping data",
      "type": "n8n-nodes-base.code",
      "position": [
        260,
        600
      ],
      "parameters": {
        "jsCode": "return [\n    {\n        \"country\": \"Wakanda\",\n        \"capital\": \"Birnin Zana\"\n    },\n    {\n        \"country\": \"Narnia\",\n        \"capital\": \"Cair Paravel\"\n    },\n    {\n        \"country\": \"Gondor\",\n        \"capital\": \"Minas Tirith\"\n    },\n    {\n        \"country\": \"Oz\",\n        \"capital\": \"The Emerald City\"\n    },\n    {\n        \"country\": \"Westeros\",\n        \"capital\": \"King's Landing\"\n    },\n    {\n        \"country\": \"Panem\",\n        \"capital\": \"The Capitol\"\n    },\n    {\n        \"country\": \"Ruritania\",\n        \"capital\": \"Strelsau\"\n    },\n    {\n        \"country\": \"Mordor\",\n        \"capital\": \"Barad-dûr\"\n    },\n    {\n        \"country\": \"Latveria\",\n        \"capital\": \"Doomstadt\"\n    },\n    {\n        \"country\": \"Atlantis\",\n        \"capital\": \"Poseidonis\"\n    }\n]\n"
      },
      "typeVersion": 2
    },
    {
      "id": "8765b405-8991-421c-bdc5-3eb6d3757fcb",
      "name": "Concatenate country names",
      "type": "n8n-nodes-base.summarize",
      "position": [
        460,
        600
      ],
      "parameters": {
        "options": {},
        "fieldsToSummarize": {
          "values": [
            {
              "field": "country",
              "separateBy": "\n",
              "aggregation": "concatenate"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "c0b21934-8518-49b4-bbab-f13ad0a74343",
      "name": "Return country list",
      "type": "n8n-nodes-base.set",
      "position": [
        660,
        600
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c97c3abc-40b2-4238-912d-030eb9ca3440",
              "name": "response",
              "type": "string",
              "value": "={{ $json.concatenated_country }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5d4f05cc-f4e3-4ce6-9ea8-a324257fa7c3",
      "name": "Mapping data1",
      "type": "n8n-nodes-base.code",
      "position": [
        260,
        880
      ],
      "parameters": {
        "jsCode": "return [\n    {\n        \"country\": \"Wakanda\",\n        \"capital\": \"Birnin Zana\"\n    },\n    {\n        \"country\": \"Narnia\",\n        \"capital\": \"Cair Paravel\"\n    },\n    {\n        \"country\": \"Gondor\",\n        \"capital\": \"Minas Tirith\"\n    },\n    {\n        \"country\": \"Oz\",\n        \"capital\": \"The Emerald City\"\n    },\n    {\n        \"country\": \"Westeros\",\n        \"capital\": \"King's Landing\"\n    },\n    {\n        \"country\": \"Panem\",\n        \"capital\": \"The Capitol\"\n    },\n    {\n        \"country\": \"Ruritania\",\n        \"capital\": \"Strelsau\"\n    },\n    {\n        \"country\": \"Mordor\",\n        \"capital\": \"Barad-dûr\"\n    },\n    {\n        \"country\": \"Latveria\",\n        \"capital\": \"Doomstadt\"\n    },\n    {\n        \"country\": \"Atlantis\",\n        \"capital\": \"Poseidonis\"\n    }\n]\n"
      },
      "typeVersion": 2
    },
    {
      "id": "5ed65e2c-b56d-49d9-a205-1e4cc8914fa9",
      "name": "Get the matching country's details",
      "type": "n8n-nodes-base.merge",
      "position": [
        460,
        820
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "joinMode": "enrichInput1",
        "mergeByFields": {
          "values": [
            {
              "field1": "query",
              "field2": "country"
            }
          ]
        }
      },
      "typeVersion": 3
    },
    {
      "id": "313775a0-a4ce-488e-a7db-b1ddd49dc3cd",
      "name": "Return specific capital",
      "type": "n8n-nodes-base.set",
      "position": [
        660,
        820
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "03ac1883-126f-4419-93e4-c5062b2d766d",
              "name": "response",
              "type": "string",
              "value": "={{ $ifEmpty($json.capital, 'Capital not found') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "pinData": {},
  "connections": {
    "Mapping data": {
      "main": [
        [
          {
            "node": "Concatenate country names",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mapping data1": {
      "main": [
        [
          {
            "node": "Get the matching country's details",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "OpenAI",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "List countries?": {
      "main": [
        [
          {
            "node": "Mapping data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get the matching country's details",
            "type": "main",
            "index": 0
          },
          {
            "node": "Mapping data1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Concatenate country names": {
      "main": [
        [
          {
            "node": "Return country list",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tool to call the workflow below": {
      "ai_tool": [
        [
          {
            "node": "OpenAI",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Tool: Get current date and time": {
      "ai_tool": [
        [
          {
            "node": "OpenAI",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "List countries?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get the matching country's details": {
      "main": [
        [
          {
            "node": "Return specific capital",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n OpenAI, Discord, chatbot : pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises et équipes qui utilisent Discord pour la communication, notamment dans les secteurs du support client, des communautés en ligne et des événements virtuels. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire, souhaitant automatiser leurs interactions sur cette plateforme.

Workflow n8n OpenAI, Discord, chatbot : problème résolu

Ce workflow résout le problème de la lenteur dans les réponses aux messages sur Discord, en automatisant le processus de réponse grâce à l'intelligence artificielle. Il élimine les frustrations liées aux délais d'attente pour les utilisateurs et réduit le risque de réponses inappropriées ou incomplètes. Après mise en place, les utilisateurs bénéficient d'une communication plus fluide et efficace, améliorant ainsi l'engagement et la satisfaction des membres.

Workflow n8n OpenAI, Discord, chatbot : étapes du workflow

Étape 1 : le workflow est déclenché par un message reçu dans le chat.

  • Étape 1 : le noeud 'OpenAI' génère une réponse basée sur le message entrant.
  • Étape 2 : les données sont temporairement stockées dans le noeud 'Simple Memory'.
  • Étape 3 : des noeuds de traitement comme 'Mapping data' et 'Get the matching country's details' affinent les informations.
  • Étape 4 : la réponse finale est préparée et renvoyée au chat.

Workflow n8n OpenAI, Discord, chatbot : guide de personnalisation

Pour personnaliser ce workflow, commencez par ajuster les paramètres du noeud 'When chat message received' pour définir les canaux de communication souhaités. Modifiez les options du noeud 'OpenAI' pour adapter le style et le ton des réponses générées. Vous pouvez également intégrer d'autres outils ou services en ajoutant des noeuds supplémentaires pour enrichir les fonctionnalités, comme des bases de données ou des API externes. Assurez-vous de tester les réponses pour garantir leur pertinence et leur précision avant de déployer le workflow en production.