All nodes/Integrations/Telegram
Telegram Reaction
Puts (action=set) or removes (action=clear) the bot's emoji reaction on a Telegram message. A blank Chat ID means the chat of the running turn; templates are supported. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'telegram_config' port.
Type in the graph: set_telegram_reaction
Exec
An error branch can be enabled (expose_error_output) to handle failures on their own path.
Try it
Minimal working workflow
- Execute
- Execute + Data
Runs as pasted
When to use it
A reaction is the cheapest way to say “got it” without adding a message to the chat. The typical use: the bot puts 👍 on a request when it is picked up and 🎉 when it is closed, or marks a message that went to moderation. When you need words, use Send Telegram Message.
How it works
One node covers both directions. “Set a reaction” sends the chosen emoji; “Clear the bot’s reactions” sends an empty list and removes what the bot put there earlier. The emoji set is fixed by Telegram itself, which is why the field is a list rather than free input.
Chat ID accepts a numeric id or @channelusername; a blank field means the chat of the
running Telegram turn. Message ID is required and must be a number — usually
{{ nodes.entry.data.telegram.message_id }} or the message_id from a send node’s output.
Common mistakes
- A bot gets one reaction per message. A new one replaces the previous one instead of adding to it. “First 👀, then ✅” works; “👀 and ✅ at once” does not.
- Clearing does not touch other people’s reactions. It removes the bot’s own only.
- A blank Message ID stops the node — and so does a template that rendered to an empty string: a reaction that never happened must not look successful.
- A Telegram refusal fails the step. Reactions disabled in the chat, a message too old, the bot removed — turn on the error output if the branch has to survive that.
- Setting a reaction and receiving one are different things. For the workflow to start on a user’s reaction, tick the “Reactions” update type in the deploy panel; sending the bot’s own reaction does not depend on that subscription.
- The big animation applies to setting only, and on many clients it looks like an ordinary reaction anyway.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Telegram Configtelegram_config | Datadata | — | shown when connection_source ≠ "auto" |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Successoutput | Execute + Dataexecute_data | object | |
Erroron_error | Execute + Dataexecute_data | — | shown when expose_error_output = true |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Connection sourceconnection_source | string | auto | Where this node gets its connection. 'From the run context' uses what the platform already knows (the Telegram bot this workflow is deployed to / this workspace's own file store) and needs no wiring. 'External connection' shows the resource port so a config node can be wired into it. Options: |
Actionaction | string | set | Put an emoji reaction on a message, or remove the bot's reactions from it. Options: |
Chat IDchat_id | string | "" | Target chat: numeric chat_id or @channelusername. Templates are supported, e.g. {{ nodes.entry.data.telegram.chat_id }}. Blank = the chat of the running Telegram turn (a run started anywhere else then fails: there is no chat to infer). supports templates |
Reactionemoji | string | 👍 | The emoji to react with (Telegram allows only a fixed set). Options: shown when action = set |
Message IDmessage_id | string | "" | Numeric id of the message to act on. Templates are supported, e.g. {{ nodes.send_message_1.message_id }}. supports templates |
| Advanced | |||
Big animationis_big | boolean | false | Play the large reaction animation. shown when action = set |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.