---
title: "Connect a Telegram bot"
description: "Create a bot with @BotFather, paste its token into the console, then check the webhook the server registers on your behalf for the new Telegram channel."
updated: "2026-08-28"
audience: [administrator]
source: "https://helpdesk-docs.svr1.feedapp.click/en/kenh/ket-noi-telegram"
---

Telegram is the third-party channel with the fewest moving parts: one token
from @BotFather is the whole declaration, and the server handles the webhook.

## Goal [#goal]

A Telegram channel that receives what customers send the bot, plus a link you
can hand out so they can open a chat with it.

## Before you begin [#before-you-begin]

* Permission to write channels, spelled out in [Roles and per-feature permissions](/en/khai-niem/vai-tro-va-quyen).
* A Telegram account to talk to @BotFather, which is a third-party service.
* A public server address Telegram can actually reach. That belongs to whoever deploys the system — see the callout below.

> **Warning:** Telegram accepts HTTPS on ports 443, 80, 88 or 8443 only, and will not
> register a localhost address. That address lives in the `API_PUBLIC_URL`
> environment variable, an operations concern described in the installation's
> `README.md`. On a development machine, put a public tunnel in front of it.

## Steps [#steps]

1. Open the Telegram app, message **@BotFather** and send the `/newbot` command.
2. Give the bot a display name and a username. BotFather answers with a token
   shaped like `123456789:AAE...`; treat it as a password.
3. Back in the console, press **Channels** in the left column, press **Add
   Channel**, then pick the **Telegram** tile.
4. Fill in **Channel Name** and paste the token into **Bot token**.

   ![The Core Profile step for a Telegram channel with a Channel Name field, an empty Bot token field showing its format hint, and two notes about @BotFather and the automatic webhook](https://helpdesk-docs.svr1.feedapp.click/images/docs/kenh/ket-noi-telegram/04-dan-bot-token.en.webp)

   *Step two for Telegram asks for a channel name and a bot token, nothing else.*
5. Turn on **Enable Channel Greeting** if the bot should greet customers, then
   press **Create Widget**.
6. The &#x2A;*Success!** screen carries a **Share with customers** block with a `t.me`
   link and a QR code. Keep the link: Telegram has no embed snippet.
7. Press **Go to Channels**, open the new channel and select the **Telegram
   Configuration** tab.
8. Read the badge under **Webhook**. **Registered** means Telegram has accepted
   the server's address.
9. Whenever the server's public address changes, come back here and press
   **Register webhook again**.

## Verify [#verify]

The **Telegram Configuration** tab shows the **Bot username** and **Bot ID**
BotFather issued, and the webhook badge reads **Registered** with the time it
was registered.

Open the bot's `t.me` link on another device, start the chat and send a line.
It has to reach the **Conversations** queue within a few seconds, and a reply
written in the console has to arrive back in Telegram.

## Troubleshooting [#troubleshooting]

| Symptom                                                          | Cause                                                            | What to do                                                                      |
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Creating the channel fails immediately                           | The token is wrong, carries stray spaces, or was revoked         | Ask @BotFather for a new token and paste it again                               |
| The webhook badge reads **Failed** with a sentence from Telegram | The public address is not HTTPS on a port Telegram accepts       | Ask the deployer to fix `API_PUBLIC_URL`, then press **Register webhook again** |
| The badge reads **Not registered yet**                           | The channel exists but the first registration never completed    | Press **Register webhook again**                                                |
| Customers write and nothing arrives                              | The webhook still points at the previous server address          | Press **Register webhook again** and retry                                      |
| A send fails: the customer blocked the bot                       | They blocked it on Telegram's side                               | Nothing in the console fixes it; reach them another way                         |
| A send fails: the bot cannot write first                         | Telegram forbids a bot from opening a chat                       | Send the `t.me` link so the customer writes first                               |
| No field to replace the token                                    | The token is encrypted server-side and never reaches the browser | Connect the bot again as a new channel                                          |

## Next steps [#next-steps]

* [Spot and fix a disconnected channel](/en/kenh/suc-khoe-ket-noi)
* [Connect an IMAP/SMTP mailbox](/en/kenh/ket-noi-email)
* [Supported channels](/en/kenh)
