Workflow n8n

Automatisation Telegram avec n8n : gestion de bot AI en temps réel

Ce workflow n8n a pour objectif de faciliter la gestion d'un bot Telegram intelligent, permettant une interaction fluide et dynamique avec les utilisateurs. Dans un contexte où les entreprises cherchent à améliorer leur service client via des canaux numériques, ce workflow offre une solution efficace pour automatiser les réponses et la gestion des interactions. Les cas d'usage incluent la réponse instantanée aux questions des utilisateurs, la collecte d'informations et la gestion des rendez-vous.

  • Étape 1 : le workflow commence par un déclencheur Telegram qui capte les messages entrants.
  • Étape 2 : le bot envoie un message de 'typing' pour indiquer qu'il est en train de traiter la demande.
  • Étape 3 : les données sont ensuite traitées par plusieurs noeuds, dont un qui utilise un modèle de langage pour générer des réponses pertinentes.
  • Étape 4 : les réponses sont envoyées au chat Telegram, assurant une communication en temps réel. En intégrant des fonctionnalités comme la gestion de la mémoire et des paramètres de chat, ce workflow permet une personnalisation poussée des interactions. Les bénéfices business incluent une amélioration de l'engagement client, une réduction des temps de réponse et une augmentation de la satisfaction client, rendant ce workflow essentiel pour toute entreprise souhaitant optimiser sa présence sur Telegram.
Tags clés :automatisationTelegramn8nchatbotintelligence artificielle
Catégorie: Webhook · Tags: automatisation, Telegram, n8n, chatbot, intelligence artificielle0

Workflow n8n Telegram, chatbot, intelligence artificielle : vue d'ensemble

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

Workflow n8n Telegram, chatbot, intelligence artificielle : détail des nœuds

  • SendTyping

    Envoie un message de saisie à un chat Telegram spécifié.

  • SetResponse

    Définit une réponse à envoyer dans le workflow avec des options et des affectations.

  • Settings

    Configure les paramètres de réponse dans le workflow avec des options et des affectations.

  • Schedule

    Planifie une tâche dans Google Sheets en spécifiant le nom de la feuille et l'identifiant du document.

  • ScheduleToMarkdown

    Transforme un emploi du temps en format Markdown à l'aide de code JavaScript.

  • ScheduleBot

    Gère un bot de planification avec des options et un type de prompt spécifié.

  • n8nChatSettings

    Définit les paramètres de chat pour n8n avec des options et des affectations.

  • telegramChatSettings

    Configure les paramètres de chat pour Telegram avec des options et des affectations.

  • telegramInput

    Déclenche le workflow en recevant des mises à jour de Telegram.

  • n8nInput

    Déclenche le workflow en recevant des messages via n8n.

  • Switch

    Évalue des conditions et dirige le flux de travail en fonction des règles spécifiées.

  • telegramResponse

    Envoie une réponse à un chat Telegram avec un texte et des champs supplémentaires.

  • n8nResponse

    N'effectue aucune opération, servant de point de passage dans le workflow.

  • LLM

    Interagit avec un modèle de langage via un routeur de chat OpenAI.

  • Memory

    Gère la mémoire d'une session de chat avec une clé de session et un type d'identifiant.

  • Sticky Note

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note1

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note2

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note3

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note4

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note5

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note6

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

  • Sticky Note7

    Crée une note autocollante avec des paramètres de couleur, de taille et de contenu.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "bV0JTA5NtRZxiD1q",
  "meta": {
    "instanceId": "98bf0d6aef1dd8b7a752798121440fb171bf7686b95727fd617f43452393daa3",
    "templateCredsSetupCompleted": true
  },
  "name": "Telegram-bot AI Da Nang",
  "tags": [],
  "nodes": [
    {
      "id": "ae5f9ca6-6bba-4fe8-b955-6c615d8a522f",
      "name": "SendTyping",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -1780,
        -260
      ],
      "webhookId": "26ea953e-93d9-463e-ad90-95ea8ccb449f",
      "parameters": {
        "chatId": "={{ $('telegramInput').item.json.message.chat.id }}",
        "operation": "sendChatAction"
      },
      "credentials": {
        "telegramApi": {
          "id": "V3EtQBeqEvnOtl9p",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "244e7be3-2caa-46f7-8628-d063a3b84c12",
      "name": "SetResponse",
      "type": "n8n-nodes-base.set",
      "notes": "Assemble response etc.",
      "position": [
        40,
        -420
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fba8dc48-1484-4aae-8922-06fcae398f05",
              "name": "responseMessage",
              "type": "string",
              "value": "={{ $json.output }}"
            },
            {
              "id": "df8243e6-6a24-4bad-8807-63d75c828150",
              "name": "",
              "type": "string",
              "value": ""
            }
          ]
        },
        "includeOtherFields": true
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "192aa194-f131-4ba3-8842-7c88da1a6129",
      "name": "Settings",
      "type": "n8n-nodes-base.set",
      "position": [
        -1260,
        -420
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6714203d-04b3-4a3c-9183-09cddcffdfe8",
              "name": "scheduleURL",
              "type": "string",
              "value": "https://docs.google.com/spreadsheets/d/1BJFS9feEy94_WgIgzWZttBwzjp09siOw1xuUgq4yuI4"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "1c52cdf5-da32-4c76-a294-5ec2109dbf39",
      "name": "Schedule",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -980,
        -420
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BJFS9feEy94_WgIgzWZttBwzjp09siOw1xuUgq4yuI4/edit#gid=0",
          "cachedResultName": "Schedule"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $json.scheduleURL }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "XeXufn5uZvHp3lcX",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "eff88417-4ce6-4809-8693-dc63e00fff20",
      "name": "ScheduleToMarkdown",
      "type": "n8n-nodes-base.code",
      "position": [
        -800,
        -420
      ],
      "parameters": {
        "jsCode": "// Get all rows from the input (each item has a \"json\" property)\nconst rows = items.map(item => item.json);\n\n// If no data, return an appropriate message\nif (rows.length === 0) {\n  return [{ json: { markdown: \"No data available.\" } }];\n}\n\n// Use the keys from the first row as the header columns\nconst headers = Object.keys(rows[0]);\n\n// Build the markdown table string\nlet markdown = \"\";\n\n// Create the header row\nmarkdown += `| ${headers.join(\" | \")} |\\n`;\n\n// Create the separator row (using dashes for markdown)\nmarkdown += `| ${headers.map(() => '---').join(\" | \")} |\\n`;\n\n// Add each data row to the table\nrows.forEach(row => {\n  // Ensure we output something for missing values\n  const rowValues = headers.map(header => row[header] !== undefined ? row[header] : '');\n  markdown += `| ${rowValues.join(\" | \")} |\\n`;\n});\n\nconst result = { 'binary': {}, 'json': {} };\n\n// Convert the markdown string to a binary buffer\nconst binaryData = Buffer.from(markdown, 'utf8');\n/*\n// Attach the binary data to the first item under a binary property named 'data'\nresult.binary = {\n  data: {\n    data: binaryData,\n    mimeType: 'text/markdown',\n  }\n};\n*/\n// Optionally, also return the markdown string in the json property if needed\nresult.json.markdown = markdown;\n\nreturn result;"
      },
      "typeVersion": 2
    },
    {
      "id": "04fab70c-493a-4c5d-adfb-0d9e8a5b7382",
      "name": "ScheduleBot",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -480,
        -420
      ],
      "parameters": {
        "text": "={{ $('Settings').first().json.inputMessage }}",
        "options": {
          "systemMessage": "=You are a helpful assistant that helps members of a meetup group with scheduling their meetups and answering questions about them.\n\nThe current version of the schedule in tabular format is the following:\n\n {{ $json.markdown }}\n\n"
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "be29d3ec-8211-4f23-82f2-83a1aa3aad5b",
      "name": "n8nChatSettings",
      "type": "n8n-nodes-base.set",
      "position": [
        -1580,
        -520
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1ecb3515-c1a2-4d69-adec-5b4d74e32056",
              "name": "inputMessage",
              "type": "string",
              "value": "={{ $json.chatInput }}"
            },
            {
              "id": "424b9697-94cb-4c38-953c-992436832684",
              "name": "chatId",
              "type": "string",
              "value": "={{ $json.sessionId }}"
            },
            {
              "id": "e23988e2-7c3d-4e38-9d5d-0c4b0c94d127",
              "name": "mode",
              "type": "string",
              "value": "n8n"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b7078c59-b6e6-4002-831f-96e56278ab61",
      "name": "telegramChatSettings",
      "type": "n8n-nodes-base.set",
      "position": [
        -1580,
        -260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1ecb3515-c1a2-4d69-adec-5b4d74e32056",
              "name": "inputMessage",
              "type": "string",
              "value": "={{ $('telegramInput').item.json.message.text }}"
            },
            {
              "id": "424b9697-94cb-4c38-953c-992436832684",
              "name": "chatId",
              "type": "string",
              "value": "={{ $('telegramInput').item.json.message.chat.id }}"
            },
            {
              "id": "e23988e2-7c3d-4e38-9d5d-0c4b0c94d127",
              "name": "mode",
              "type": "string",
              "value": "telegram"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1ba6ad37-f1e5-440d-bf10-569038c27bce",
      "name": "telegramInput",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -1960,
        -260
      ],
      "webhookId": "f56e8e22-975e-4f9a-a6f9-253ebc63668d",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "V3EtQBeqEvnOtl9p",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "56a52e8a-714f-4e7a-8a13-e915e9dc29c4",
      "name": "n8nInput",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -1960,
        -520
      ],
      "webhookId": "f4ab7d4a-5cdd-425a-bbbb-e3bb94719266",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "961f67f0-bd44-4e7f-9f2f-c2f02f3176ce",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        220,
        -420
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "n8n mode",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Settings').first().json.mode }}",
                    "rightValue": "n8n"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "telegram mode",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "e7d6a994-48e3-44bb-b662-862d9bf9c53b",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Settings').first().json.mode }}",
                    "rightValue": "telegram"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "57056425-37ba-417d-9a2d-977a81d378ab",
      "name": "telegramResponse",
      "type": "n8n-nodes-base.telegram",
      "position": [
        500,
        -280
      ],
      "webhookId": "ff71ba7e-affa-4952-90a5-6bb7f37a5598",
      "parameters": {
        "text": "={{ $json.responseMessage }}",
        "chatId": "={{ $('Settings').first().json.chatId }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "V3EtQBeqEvnOtl9p",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2962a77f-5727-43be-93fb-b0751b63c6ac",
      "name": "n8nResponse",
      "type": "n8n-nodes-base.noOp",
      "position": [
        500,
        -520
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0932484f-707b-412b-b9cb-431a8ae64447",
      "name": "LLM",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -600,
        -220
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "bs7tPtvgDTJNGAFJ",
          "name": "OpenRouter account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "65948d2c-71b2-4df0-97db-ed216ed7c691",
      "name": "Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -500,
        -220
      ],
      "parameters": {
        "sessionKey": "={{ $('Settings').first().json.chatId }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "50566274-cf7c-496f-a166-b45eb3114da3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2000,
        -600
      ],
      "parameters": {
        "color": 2,
        "width": 620,
        "height": 240,
        "content": "## Chat input triggered inside n8n\nUsed for testing and debugging"
      },
      "typeVersion": 1
    },
    {
      "id": "9dc636fb-cc86-4236-8eb9-952a4ab0ef68",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2000,
        -340
      ],
      "parameters": {
        "color": 2,
        "width": 620,
        "height": 240,
        "content": "## Chat input triggered by Telegram\nUsed for live chat within Telegram"
      },
      "typeVersion": 1
    },
    {
      "id": "0429d589-3e80-4b26-96a0-01554899a3e7",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -340
      ],
      "parameters": {
        "color": 5,
        "width": 360,
        "height": 240,
        "content": "## Chat response to Telegram"
      },
      "typeVersion": 1
    },
    {
      "id": "9eeccee0-c6a0-40c6-9b7d-1f672bf0fdb9",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -600
      ],
      "parameters": {
        "color": 5,
        "width": 360,
        "height": 240,
        "content": "## Chat response inside n8n"
      },
      "typeVersion": 1
    },
    {
      "id": "acb8e550-be94-41b7-904a-641b3b87e928",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -600
      ],
      "parameters": {
        "color": 7,
        "width": 440,
        "height": 500,
        "content": "## Prepare response\nDecide to which chat the response will go."
      },
      "typeVersion": 1
    },
    {
      "id": "42ce6eac-165b-463d-822e-355aff030525",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -620,
        -600
      ],
      "parameters": {
        "color": 3,
        "width": 560,
        "height": 500,
        "content": "## AI Processing\nChat input → Chat output"
      },
      "typeVersion": 1
    },
    {
      "id": "33c45fcc-3aa5-4cd3-b393-e1723560dfeb",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -600
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 500,
        "content": "## Retrieve Data\nGet schedule from Google Spreadsheet and convert it to a Markdown-Table as context for the LLM"
      },
      "typeVersion": 1
    },
    {
      "id": "6e1017e3-bf9d-4056-a64f-c94476bd1f43",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1360,
        -600
      ],
      "parameters": {
        "color": 7,
        "width": 300,
        "height": 500,
        "content": "## Normalize input\nTransfer the chat data into a unified set of variables"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9078c996-e932-40c0-882e-1eb261ca1535",
  "connections": {
    "LLM": {
      "ai_languageModel": [
        [
          {
            "node": "ScheduleBot",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Memory": {
      "ai_memory": [
        [
          {
            "node": "ScheduleBot",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "n8nResponse",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "telegramResponse",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule": {
      "main": [
        [
          {
            "node": "ScheduleToMarkdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Settings": {
      "main": [
        [
          {
            "node": "Schedule",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "n8nInput": {
      "main": [
        [
          {
            "node": "n8nChatSettings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SendTyping": {
      "main": [
        [
          {
            "node": "telegramChatSettings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ScheduleBot": {
      "main": [
        [
          {
            "node": "SetResponse",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SetResponse": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "telegramInput": {
      "main": [
        [
          {
            "node": "SendTyping",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "n8nChatSettings": {
      "main": [
        [
          {
            "node": "Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "telegramResponse": {
      "main": [
        []
      ]
    },
    "ScheduleToMarkdown": {
      "main": [
        [
          {
            "node": "ScheduleBot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "telegramChatSettings": {
      "main": [
        [
          {
            "node": "Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Telegram, chatbot, intelligence artificielle : pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises de taille moyenne à grande qui souhaitent automatiser leur service client via Telegram. Il est particulièrement adapté aux équipes marketing et support technique, ainsi qu'aux professionnels ayant une connaissance de base des outils d'automatisation. Les utilisateurs doivent être à l'aise avec les technologies numériques et les plateformes de messagerie.

Workflow n8n Telegram, chatbot, intelligence artificielle : problème résolu

Ce workflow résout le problème de la lenteur des réponses aux clients sur Telegram, une frustration courante qui peut entraîner une perte d'engagement. En automatisant les réponses, il réduit le risque de délais de réponse inacceptables et améliore l'expérience utilisateur. Les entreprises peuvent ainsi offrir un service 24/7, augmentant leur réactivité et leur efficacité opérationnelle. Après mise en place, les utilisateurs constatent une diminution significative des demandes non traitées et une satisfaction accrue des clients.

Workflow n8n Telegram, chatbot, intelligence artificielle : étapes du workflow

Étape 1 : le workflow est déclenché par un message entrant sur Telegram.

  • Étape 1 : un noeud 'SendTyping' envoie une indication de traitement au client.
  • Étape 2 : les données sont analysées par un modèle de langage via le noeud 'LLM', qui génère une réponse appropriée.
  • Étape 3 : la réponse est ensuite envoyée au chat via le noeud 'telegramResponse'.
  • Étape 4 : des paramètres de chat sont ajustés pour personnaliser l'interaction, et les informations sont stockées pour une utilisation future.

Workflow n8n Telegram, chatbot, intelligence artificielle : guide de personnalisation

Pour personnaliser ce workflow, commencez par modifier le noeud 'telegramInput' pour ajuster les paramètres de déclenchement selon vos besoins. Vous pouvez également personnaliser les réponses générées dans le noeud 'LLM' en modifiant les prompts utilisés. Si vous souhaitez intégrer d'autres services, envisagez d'ajouter des noeuds supplémentaires pour des API externes. Assurez-vous de sécuriser votre webhook en configurant les autorisations nécessaires pour éviter les abus. Enfin, surveillez les performances du workflow en utilisant des outils d'analyse pour optimiser les interactions.