DocumentationWorkflowsApps and services
Telegram node
Sends text messages through your Telegram bot and answers inline-button clicks, in private chats, groups, channels, and forum topics. Learn how to configure it, map inputs and outputs, run a test and resolve common errors.
9 min readUpdated
What this node does
Sends text messages through your Telegram bot and answers inline-button clicks, in private chats, groups, channels, and forum topics.
Use Telegram as a clearly defined step in an anymize workflow.
- Processes one input.
- Provides one output for following steps.
- Runs as a regular step in the flow.
Set up the node
- 01Open a workflow and add Telegram from the node catalog.
- 02Complete the required fields and map values from previous steps.
- 03Run the node with a small test record and inspect its output.
- 04Connect the successful output and activate the workflow after an end-to-end test.
Operations and modes
Choose the required function in Operation. The panel then shows the relevant settings.
- Send message
- Answer button click
Settings
| Field | Meaning | Area |
|---|---|---|
| Telegram bot | Choose the bot token from Workflow Secrets. The token stays encrypted and is never stored in the workflow. | Protected |
| Operation | Send a message or acknowledge a click on an inline button. | Standard |
| Chat ID or @channel | Destination chat. Use @channelname for channels; private chats and groups use their numeric ID. | Standard |
| Message | Message text. Telegram allows up to 4096 characters after parsing. | Standard |
| Formatting | Optional Telegram format. MarkdownV2 special characters must be escaped according to Telegram's rules. | Standard |
| Forum topic ID | Optional. Sends the message to a specific forum topic in a supergroup. | Standard |
| Reply to message ID | Optional convenience field. It is merged into reply_parameters.message_id in the Telegram API shape. | Standard |
| Send silently | Sends without a notification sound. The message remains visible in the chat. | Standard |
| Prevent forwarding and saving | Protects message content from forwarding and local saving where supported by Telegram. | Standard |
| Link preview | Optional Telegram LinkPreviewOptions object with JSON autocomplete for values from previous nodes. | Standard |
| Reply parameters | Optional ReplyParameters object. It is safely merged with the “Reply to message ID” convenience field. | Standard |
| Buttons or custom keyboard | Optional InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, or ForceReply JSON object. | Standard |
| Callback query ID | Required. Use callback_query.id from the Telegram trigger. Telegram shows a loading indicator on the button until it is acknowledged. | Standard |
| Notification text | Optional notification with 0 to 200 characters. Without text, this only stops the loading indicator. | Standard |
| Show as alert | Shows the notification as a dialog instead of a brief notification at the top of the screen. | Standard |
| Callback URL | Optional. Opens an HTTPS URL in the Telegram client; game URLs work only with callback_game buttons. | Standard |
| Cache duration (seconds) | Optional. How long Telegram clients may cache the result. The default is 0. | Standard |
| Run once per item | Off (default): the node runs once for the whole input. On: if it receives several items (e.g. from Split Out), it runs once PER item, and {{ $json }} is that one item each time. This is how you work through a file list entry by entry. | Standard |
| If one item fails | "Skip" writes an `error` field for the failed item and keeps processing the rest, instead of losing the whole run to a single unreadable file. | Standard |
| Pause between items (milliseconds) | Wait before every run except the first. 1000 = 1 second per item. Useful when the other side would otherwise throttle you. Maximum 300000 (5 minutes). | Standard |
Inputs and outputs
| Input | Meaning | Type |
|---|---|---|
| Chat ID | Configure this value in the node panel. | text |
| Message | Configure this value in the node panel. | text |
| Topic ID | Configure this value in the node panel. | number |
| Reply to | Configure this value in the node panel. | number |
| Buttons | Configure this value in the node panel. | json |
| Callback query ID | Configure this value in the node panel. | text |
| Callback notification | Configure this value in the node panel. | text |
| Show as alert | Configure this value in the node panel. | boolean |
| Callback URL | Configure this value in the node panel. | text |
| Cache duration | Configure this value in the node panel. | number |
| Output | Meaning | Type |
|---|---|---|
| Successful | Configure this value in the node panel. | boolean |
| Message ID | Configure this value in the node panel. | number |
| Chat ID | Configure this value in the node panel. | text |
| Sent at | Configure this value in the node panel. | number |
| Telegram message | The complete Message response from the Telegram Bot API. | json |
| Callback answered | True when Telegram accepted the answer to the button click. | boolean |
| Answered callback query ID | Configure this value in the node panel. | text |
This node can process lists item by item. Error handling and the delay between items are available in advanced settings.
Example and test run
Send a status update with an inline button: begin with a small, recognizable record. Inspect the output and only map fields that are present there.
Test-run example
{
"chat_id": "-1001234567890",
"text": "<b>Deployment abgeschlossen</b>\nVersion 2.4.0 ist live.",
"parse_mode": "HTML",
"reply_markup": {
"inline_keyboard": [
[
{
"text": "Dashboard öffnen",
"url": "https://example.com/status"
}
]
]
}
}Access and security
Before activation, review which data enters this step and what its output contains.
Store keys and credentials in the protected connection manager. Never paste them into normal workflow fields, test data or descriptions.
Troubleshooting
- No output: inspect the latest run and confirm that the previous node returned the expected fields.
- Empty variable: open the previous step output and use a field name from the real test data.
- List processed once: enable per-item execution in advanced settings.