Skip to main content
You first have to create a Telegram bot to get credentials. Once you have them you can add these to your credentials.yml.

Getting Credentials

How to get the Telegram credentials: You need to set up a Telegram bot.
  1. To create the bot, go to Bot Father, enter /newbot and follow the instructions. The URL that Telegram should send messages to will look like http://<host>:<port>/webhooks/telegram/webhook, replacing the host and port with the appropriate values from your running Rasa server.
  2. At the end you should get your access_token and the username you set will be your verify.
  3. If you want to use your bot in a group setting, it’s advisable to turn on group privacy mode by entering /setprivacy. Then the bot will only listen when a user’s message starts with /bot.
For more information, check out the Telegram HTTP API.

Running on Telegram

Add the Telegram credentials to your credentials.yml:
Restart your Rasa server to make the new channel endpoint available for Telegram to send messages to.
Handling /start messageAt the beginning of a conversation, the user will press the ‘Start’ button in Telegram. This will trigger a message with the content /start to be sent. Make sure your bot can handle this intro message by designing a specific intent in the nlu training data file. Then add this start intent to the domain alongside a story or rule to handle it.

Supported Response Attachments

In addition to standard text: responses, this channel also supports the following components from the Telegram API:
  • button arguments:
    • button_type: inline | vertical | reply
  • custom arguments:
    • photo
    • audio
    • document
    • sticker
    • video
    • video_note
    • animation
    • voice
    • media
    • latitude, longitude (location)
    • latitude, longitude, title, address (venue)
    • phone_number
    • game_short_name
    • action
Examples: