AutomationFlowsSlack & Telegram › Create a Two-way Whatsapp + Telegram Integration for 10k+ Customer Support Chats

Create a Two-way Whatsapp + Telegram Integration for 10k+ Customer Support Chats

ByRuthwik @ruthwik on n8n.io

This workflow is designed for **customer support teams, e-commerce founders, and operations managers** who want to handle thousands of customer queries seamlessly. Instead of building a brand-new chat application, it leverages WhatsApp (where customers already are) and Telegram…

Event trigger★★★★★ complexity30 nodesTelegram TriggerSupabaseWhatsAppWhatsApp TriggerHTTP Request
Slack & Telegram Trigger: Event Nodes: 30 Complexity: ★★★★★ Added:

This workflow corresponds to n8n.io template #8350 — we link there as the canonical source.

This workflow follows the HTTP Request → Supabase recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "x67YFG3vNxQ65Sxi",
  "name": "My workflow 4",
  "tags": [],
  "nodes": [
    {
      "id": "4eacb345-2777-4560-9ec4-24a1d8c2111f",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        64,
        768
      ],
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "84fa0a6d-6a55-4033-9304-7d3186e67db5",
      "name": "Filter messages that are replies in topics",
      "type": "n8n-nodes-base.set",
      "position": [
        288,
        768
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "97b4a02e-f409-4312-b04f-a61ebe579e0a",
              "name": "superGroupID",
              "type": "number",
              "value": -1003071123489
            },
            {
              "id": "3356c433-668f-44a7-9851-57e3181b7119",
              "name": "message",
              "type": "string",
              "value": "={{ $json.message.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1eb7429d-7838-4983-9617-4aac384f06e7",
      "name": "Get a row",
      "type": "n8n-nodes-base.supabase",
      "position": [
        736,
        768
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "telegram_topic_id",
              "keyValue": "={{ $('Telegram Trigger').item.json.message.message_thread_id }}"
            }
          ]
        },
        "tableId": "wa_tg_threads",
        "operation": "get"
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d97ae6ec-0310-4328-a480-44a1dfbaa41b",
      "name": "Send message",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        960,
        768
      ],
      "parameters": {
        "textBody": "={{ $('Filter messages that are replies in topics').item.json.message }}",
        "operation": "send",
        "phoneNumberId": "792860623405890",
        "additionalFields": {},
        "recipientPhoneNumber": "={{ $json.phone_e164 }}"
      },
      "credentials": {
        "whatsAppApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "49ff481e-8301-4933-9522-8363c9b69478",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        512,
        768
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9ed4e660-862c-4c52-9406-5800772318ab",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
              "rightValue": "={{ $json.superGroupID }}"
            },
            {
              "id": "49a7f363-676b-4b4c-bcc2-7aa027cad020",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.message }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "52861634-26d4-4a4c-92b5-4898e6a7dd4f",
      "name": "Create a row",
      "type": "n8n-nodes-base.supabase",
      "position": [
        2112,
        272
      ],
      "parameters": {
        "tableId": "wa_tg_threads",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "phone_e164",
              "fieldValue": "={{ $('Customer Details').item.json.CustomerPhone }}"
            },
            {
              "fieldId": "telegram_topic_id",
              "fieldValue": "={{ $json.result.message_thread_id }}"
            },
            {
              "fieldId": "supergroup_id",
              "fieldValue": "={{ $('Set Telegram SuperGroupID').item.json.superGroupID }}"
            }
          ]
        }
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2ddf5eb4-0b5f-43ee-8189-e18bd47a1c96",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        544,
        176
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "joinMode": "={{\n  $items(\"Get existing customer details\").length > 0\n    ? \"enrichInput1\"\n    : \"enrichInput2\"\n}}",
        "mergeByFields": {
          "values": [
            {
              "field1": "customerPhone",
              "field2": "phone_e164"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "17e0bcb8-f051-4cdd-b11f-7040501d19d3",
      "name": "Set Telegram SuperGroupID",
      "type": "n8n-nodes-base.set",
      "position": [
        768,
        176
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "795e3408-59ba-4960-855c-86e4892780ce",
              "name": "superGroupID",
              "type": "string",
              "value": "-1+1234567890"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "62ef3a6c-cabd-41d6-a18d-f02b2ab0104b",
      "name": "Customer Details",
      "type": "n8n-nodes-base.set",
      "position": [
        992,
        272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "352358ab-778a-4ada-af03-1374ca1361ca",
              "name": "customerName",
              "type": "string",
              "value": "={{ $('When Executed by Another Workflow').item.json.customerName }}"
            },
            {
              "id": "c3155a8e-6ca7-4a32-9dc6-35f2e5d42402",
              "name": "CustomerPhone",
              "type": "string",
              "value": "={{ $('When Executed by Another Workflow').item.json.customerPhone }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7b1cf579-d0f8-4ec9-bf07-6ea5120a2131",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        1216,
        176
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "joinMode": "={{\n  $items(\"Get customer by phone\").length > 0\n    ? \"enrichInput1\"\n    : \"enrichInput2\"\n}}",
        "mergeByFields": {
          "values": [
            {
              "field1": "CustomerPhone",
              "field2": "phone_number"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "1cae746d-391d-42b2-bf8e-da11c5a289a0",
      "name": "Get existing customer details",
      "type": "n8n-nodes-base.supabase",
      "onError": "continueRegularOutput",
      "position": [
        320,
        176
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "phone_e164",
              "keyValue": "={{ $json.customerPhone }}"
            },
            {
              "keyName": "supergroup_id",
              "keyValue": "-1+1234567890"
            }
          ]
        },
        "tableId": "wa_tg_threads",
        "operation": "get"
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d22cdbc2-b216-465c-ad30-c8711cf2cdb7",
      "name": "Get customer by phone",
      "type": "n8n-nodes-base.supabase",
      "onError": "continueRegularOutput",
      "position": [
        992,
        80
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "phone_number",
              "keyValue": "={{ $('When Executed by Another Workflow').item.json.customerPhone }}"
            }
          ]
        },
        "tableId": "orders",
        "operation": "get"
      },
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "50348b7a-fd87-4454-96c4-c24b48af6d1b",
      "name": "Set Customer Name",
      "type": "n8n-nodes-base.set",
      "position": [
        1440,
        176
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e99bc702-7e77-493b-a221-331f8a1f4932",
              "name": "CustomerName",
              "type": "string",
              "value": "={{\n  $items(\"Get customer by phone\").length > 0\n    ? $items(\"Get customer by phone\")[0].json.customer_name + \" (\" + $items(\"Get customer by phone\")[0].json.phone_number + \")\"\n    : $json.customerName + \" (\" + $items(\"Customer Details\")[0].json.CustomerPhone + \")\"\n}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "8ceacabe-c8ff-4306-91a0-0014949fee9d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        640
      ],
      "parameters": {
        "color": 4,
        "width": 1280,
        "height": 368,
        "content": "## Outgoing Telegram Messages to WhatsApp"
      },
      "typeVersion": 1
    },
    {
      "id": "a00575d5-e56e-4f05-8356-4da62a028fb2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 2608,
        "height": 464,
        "content": "## Incoming WhatsApp message to Telegram"
      },
      "typeVersion": 1
    },
    {
      "id": "00cef452-8a28-4831-aff7-be28d8ddd5d8",
      "name": "WhatsApp Trigger",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        96,
        176
      ],
      "parameters": {
        "options": {},
        "updates": [
          "messages"
        ]
      },
      "credentials": {
        "whatsAppTriggerApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ffce9947-935c-4ea3-998e-7135a108625b",
      "name": "Send Telegram Message to existing topic",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1904,
        80
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot<your_bot_token>/sendMessage",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "chat_id",
              "value": "={{ $('Set Telegram SuperGroupID').item.json.superGroupID }}"
            },
            {
              "name": "message_thread_id",
              "value": "={{ $items(\"Get existing customer details\").last().json.telegram_topic_id }}"
            },
            {
              "name": "text",
              "value": "={{ $('When Executed by Another Workflow').item.json.customerMessage }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b8b13a10-0514-4599-8735-c8e50af63cf5",
      "name": "Create a Telegram Topic",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1888,
        272
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot<your_bot_token>/createForumTopic",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "chat_id",
              "value": "={{ $('Set Telegram SuperGroupID').item.json.superGroupID }}"
            },
            {
              "name": "name",
              "value": "={{ $('Set Customer Name').item.json.CustomerName }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1ac0695e-5710-4dfe-9003-b7fae01b65b4",
      "name": "Send a Telegram message to topic",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2336,
        272
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot<your_bot_token>/sendMessage",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "chat_id",
              "value": "={{ $('Set Telegram SuperGroupID').item.json.superGroupID }}"
            },
            {
              "name": "message_thread_id",
              "value": "={{ $('Create a Telegram Topic').item.json.result.message_thread_id }}"
            },
            {
              "name": "text",
              "value": "={{ $('When Executed by Another Workflow').item.json.customerMessage }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "928db787-4794-4fb4-babe-8ae9da253e0a",
      "name": "Check existing conversation or not",
      "type": "n8n-nodes-base.if",
      "position": [
        1664,
        176
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "528f9f5c-3ac7-4eb2-ad0f-a42416fc79af",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $items('Get existing customer details').length > 0 }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a56b9ed2-d717-47d9-ac5c-0593e8180ce9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        336
      ],
      "parameters": {
        "content": "### Send a WhatsApp message from a new number.\n\nCheck if a new Telegram topic is automatically created for that customer.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "41a68c70-b3e7-4b8a-80d6-a0761384a172",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        16
      ],
      "parameters": {
        "height": 224,
        "content": "### Send another WhatsApp message from the same number.\n\nConfirm that the message goes into the same Telegram topic, not a new one.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b99d7bef-f367-4f33-8871-c12e8539c42e",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2640,
        48
      ],
      "parameters": {
        "color": 6,
        "width": 672,
        "height": 480,
        "content": "### Every customer has a dedicated thread in your Telegram supergroup.\n![](https://ik.imagekit.io/tscnqj8zf/telegramchat.png?updatedAt=1757239558179)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "dd523151-be07-4ebc-b7db-6a24b16471e6",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        928
      ],
      "parameters": {
        "width": 304,
        "height": 80,
        "content": "### In the created Telegram topic, reply as an agent.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ef62abf8-23b7-4462-82b1-a6d2cdcd25e3",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        928
      ],
      "parameters": {
        "width": 320,
        "height": 80,
        "content": "### Customer will receive Telegram message in customer's Whatsapp"
      },
      "typeVersion": 1
    },
    {
      "id": "3db8e878-7d6d-48d1-8ef6-3241a63c9618",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2080,
        416
      ],
      "parameters": {
        "width": 192,
        "content": "### Create a table in supabase which maps phone number to telegram supergroup and message threadId\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5d9adb1b-10fb-48ca-9bbd-c07d11b0534e",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        672,
        336
      ],
      "parameters": {
        "width": 272,
        "height": 192,
        "content": "## Change this to your Telegram Supergroup ID.\nThe given-1003071123489 is a sample non working supergroupID"
      },
      "typeVersion": 1
    },
    {
      "id": "da171507-8ee5-426c-a744-eed7876aeed7",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1792,
        16
      ],
      "parameters": {
        "width": 192,
        "height": 96,
        "content": "### Add Your Bot Token in all the Telegram request URL "
      },
      "typeVersion": 1
    },
    {
      "id": "fd5a8981-6dd5-4485-a166-756159de5725",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2384,
        208
      ],
      "parameters": {
        "width": 192,
        "height": 96,
        "content": "### Add Your Bot Token in the Telegram request URL "
      },
      "typeVersion": 1
    },
    {
      "id": "614cf902-d6e3-4f82-a70a-65dbb0f8af49",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -368
      ],
      "parameters": {
        "width": 720,
        "height": 1728,
        "content": "\n# \ud83d\ude80 Try It Out!\n\nThis n8n template shows how to build a **WhatsApp \u2194 Telegram Customer Support Bridge** that creates **one Telegram topic per customer** and syncs replies **both ways**\u2014no custom app required.\n\n**Use cases:** Route every WhatsApp conversation into a dedicated Telegram topic, let agents reply from Telegram, auto-log mappings in a DB, and scale to **10k+** customers with clean threading.\n\n---\n\n## How it works\n- **Trigger (WhatsApp \u2192 n8n):** Webhook fires on every new WhatsApp message.  \n- **Lookup:** Check `wa_tg_threads` for an existing mapping (`phone_e164 \u2194 supergroup_id \u2194 telegram_topic_id`).  \n- **Topic Routing:**  \n  - **Exists \u2192** forward the message to the **existing Telegram topic**.  \n  - **New \u2192** create a **forum topic** in the supergroup, **save mapping**, then post the message.  \n- **Trigger (Telegram \u2192 n8n):** Telegram Trigger (webhook) listens for **messages inside topics**.  \n- **Reverse Lookup:** Use `message_thread_id` to fetch the mapped `phone_e164`.  \n- **Reply to WhatsApp:** Send the agent\u2019s Telegram reply back to the same customer on WhatsApp.  \n- **Optional:** Close/archive idle topics, notify Slack on VIP numbers, or push transcripts to your CRM.\n\n---\n\n## How to use\n- Configure **WhatsApp Cloud API** (phone number ID + access token) and **Telegram Bot** (added as admin to a **supergroup with Topics**).  \n- Create the mapping table `wa_tg_threads` (UUID `id`, `phone_e164`, `supergroup_id`, `telegram_topic_id`, timestamps).  \n- Import the two n8n workflows:  \n  1) **Incoming WhatsApp \u2192 Telegram** (create/reuse topic, save mapping, forward message)  \n  2) **Telegram \u2192 WhatsApp** (filter topic replies, look up mapping, send reply)  \n- Test: Send a WA message from a new number \u2192 confirm a new Telegram topic is created \u2192 reply in that topic \u2192 verify the customer receives the reply on WhatsApp.\n\n---\n\n## Requirements\n- n8n (self-hosted or cloud)  \n- **WhatsApp Cloud API** credentials (Meta)  \n- **Telegram Bot** with permission to **manage topics** in a **forum supergroup**  \n- **Postgres/Supabase** for `wa_tg_threads` mapping  \n- (Optional) Slack/CRM if you want escalations or transcripts\n\n---\n\n## \ud83e\uddea Quick test scripts\n- **Create topic (curl):**\n  ```bash\n  curl -X POST \"https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/createForumTopic\"     -H \"Content-Type: application/json\"     -d '{\"chat_id\": -1001234567890, \"name\": \"WA +919876543210\"}'\n  ```\n- **Send to topic (curl):**\n  ```bash\n  curl -X POST \"https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage\"     -H \"Content-Type: application/json\"     -d '{\"chat_id\": -1001234567890, \"message_thread_id\": 3, \"text\": \"Hello from n8n\"}'\n  ```\n\n---\n\n## Notes & tips\n- Use **Docker secrets / n8n credentials** for tokens; reference as `{{$env.VAR_NAME}}`.  \n- If a message lands in **General**, you likely missed `message_thread_id`.  \n- For scale, add retry/backoff on Telegram 429s and queue WhatsApp sends.  \n- You can shard by **supergroup** (store `supergroup_id` in the mapping) for regional teams.\n\n---\n\n\ud83d\udca1 Always open to feedback and improvements! .\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "ab07c0c0-17d1-4d5d-83eb-5ec7ecf106e8",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Get a row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Set Telegram SuperGroupID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Set Customer Name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a row": {
      "main": [
        [
          {
            "node": "Send message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a row": {
      "main": [
        [
          {
            "node": "Send a Telegram message to topic",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Customer Details": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Filter messages that are replies in topics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WhatsApp Trigger": {
      "main": [
        [
          {
            "node": "Get existing customer details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Customer Name": {
      "main": [
        [
          {
            "node": "Check existing conversation or not",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get customer by phone": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a Telegram Topic": {
      "main": [
        [
          {
            "node": "Create a row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Telegram SuperGroupID": {
      "main": [
        [
          {
            "node": "Get customer by phone",
            "type": "main",
            "index": 0
          },
          {
            "node": "Customer Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get existing customer details": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check existing conversation or not": {
      "main": [
        [
          {
            "node": "Send Telegram Message to existing topic",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create a Telegram Topic",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter messages that are replies in topics": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is designed for **customer support teams, e-commerce founders, and operations managers** who want to handle thousands of customer queries seamlessly. Instead of building a brand-new chat application, it leverages WhatsApp (where customers already are) and Telegram…

Source: https://n8n.io/workflows/8350/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Automates LinkedIn job searches across multiple countries and categories, filters results with AI, stores data in Google Sheets, and sends weekly Telegram notifications. Perfect for professionals seek

Telegram Trigger, Item Lists, HTTP Request +3
Slack & Telegram

This workflow enables seamless, bidirectional communication between WhatsApp and Slack using n8n. It automates the reception, processing, and forwarding of messages (text, media, and documents) betwee

WhatsApp Trigger, Slack, Slack Trigger +2
Slack & Telegram

Http Telegram. Uses telegramTrigger, httpRequest, supabase, telegram. Event-driven trigger; 17 nodes.

Telegram Trigger, HTTP Request, Supabase +1
Slack & Telegram

Http Telegram. Uses telegramTrigger, httpRequest, supabase, telegram. Event-driven trigger; 17 nodes.

Telegram Trigger, HTTP Request, Supabase +1
Slack & Telegram

This workflow listens for incoming WhatsApp messages that contain media (e.g., images) and automatically downloads the media file using WhatsApp's private media URL. The trigger node activates when a

WhatsApp Trigger, WhatsApp, HTTP Request