Skip to main content
Telegram is a deployment-owned messaging provider. It is not a Roomote sign-in provider. Roomote can receive Telegram bot messages, start tasks from private chats or bot mentions, and reply back through the same chat or forum topic. Telegram delivers updates through the Bot API webhook endpoint, so Roomote must be reachable at a stable public HTTPS URL. Use <public-url> below for your stable public Roomote URL.

Create a Telegram bot

Message @BotFather in Telegram and create or select a bot. In the Roomote UI (Settings > Communications > Telegram), enter the bot token, then save. Roomote reads the bot identity from Telegram, generates a webhook secret, registers the Bot API webhook, and adds /start and /new to the bot’s command menu for you. In BotFather, open Bot Settings > Threaded Mode and enable it. Roomote will then create a separate topic in your private bot chat for each new task. If Threaded Mode is unavailable or disabled, Roomote uses the existing single-chat flow. When a new topic opens, Roomote replies in the source conversation with its name; open it from Telegram’s topic list. Telegram’s Bot Developer Terms currently withhold a 15% fee from Stars purchases made through a bot while private-chat topics are enabled. When Telegram initially labels an implicit topic New Chat, Roomote replaces it with the same generated title shown for the task in the web app. For a shared team chat, create a Telegram supergroup, enable topics, then add the Roomote bot as an administrator with Manage Topics permission. Telegram requires a user to create the group and enable topics; the Bot API cannot do those provisioning steps. Once configured, Roomote can create task topics in the forum automatically. The source conversation receives an Open topic button so the handoff is visible instead of relying on the topic list alone. If Telegram rejects topic creation, Roomote starts the task in the source conversation and explains that Threaded Mode or Manage Topics needs attention. For self-hosted env-var configuration instead of the UI:
Roomote reads the bot username from Telegram using the bot token, so it does not need to be configured separately. When Roomote asks you to confirm an environment, you can use the buttons or reply naturally in the same chat or topic. Replies such as yes, never mind, or use API instead confirm, cancel, or revise the pending route without turning the reply into a second task. Restart Roomote after changing Telegram env vars. Inbound webhooks are accepted only when Telegram sends the matching X-Telegram-Bot-Api-Secret-Token header, and outbound replies use R_TELEGRAM_BOT_TOKEN.

Register the webhook

When you save Telegram credentials in Roomote, the webhook is registered automatically at <public-url>/api/webhooks/telegram with the managed secret token and allowed_updates including message, callback_query, and message_reaction. Roomote uses newly added 👍 reactions on suggested-task messages to launch the selected task. If the connection check reports a mismatch, delivery error, or stale update configuration, use Repair in Telegram settings to re-register it. If you are bootstrapping only from env vars and need to register manually before the first UI save:
Use the same value for secret_token and R_TELEGRAM_WEBHOOK_SECRET when you pass a secret explicitly.

Account linking

Telegram tasks are attributed only to senders who have linked their Telegram account to a Roomote user. Generate a link code under Settings > Personal > Linked Accounts and send it to the bot. Until a sender links, Roomote will not start, resume, or follow up on tasks on their behalf.

Verify setup

  1. send a direct message to the bot, or mention the bot in a group
  2. confirm Roomote starts a task and posts a Telegram reply with the task link
  3. confirm a new task opens in its own topic when Threaded Mode is enabled
  4. when an environment confirmation appears, answer it with a button or a natural reply
  5. reply in the task topic to send a follow-up
Photos are passed to the task as image input. Supported text documents are downloaded server-side and their extracted content is added to the request; the bot token is never included in the task prompt or attachment URL.

Local URL changes

When the public URL changes, call setWebhook again with the new <public-url>/api/webhooks/telegram URL and restart Roomote with the matching URL.