Skip to content

Telegram Notify

Overview

The Telegram Notify node sends a message to a specified Telegram chat, group, or channel using the Telegram Bot API. It requires a bot token and a target chat ID, both of which must be configured before use. The node emits an error output port when delivery fails (e.g. invalid token, bot not in chat, rate limit exceeded), allowing downstream error handling without halting the workflow. Message text supports plain text or Markdown/HTML parse modes for rich formatting.

Configuration

FieldTypeRequiredDescription
botTokenstringYesTelegram Bot API token obtained from @BotFather. Treat as a secret — store in workflow credentials, not inline.
chatIdstringYesTarget chat, group, or channel ID. Negative IDs indicate groups/supergroups; channel IDs use the @username or numeric format.
parseModeenumNoMessage formatting mode. One of: MarkdownV2, HTML, or plain (default). Determines how the message text is rendered in the Telegram client.
disableNotificationbooleanNoWhen true, the message is delivered silently — recipients receive no sound or banner alert. Defaults to false.
messageTemplatestringYesMessage body to send. Supports template variables (e.g. {{battle.title}}, {{winner.handle}}) interpolated from the incoming execution context.

Inputs

PortTypeDescription
inputExecutionContextTrigger signal carrying the current workflow execution context, including battle state and variable bindings used for message template interpolation.

Outputs

PortTypeDescription
outputExecutionContextPasses the execution context downstream when the message is delivered successfully.
errorErrorContextEmitted when delivery fails. Carries an error code and message (e.g. 403 Forbidden, 429 Too Many Requests) for downstream error-handling nodes.

Example

json
{
  "nodeType": "telegram_notify",
  "config": {
    "botToken": "{{secrets.TELEGRAM_BOT_TOKEN}}",
    "chatId": "-1001234567890",
    "parseMode": "MarkdownV2",
    "messageTemplate": "*Battle ended:* {{battle.title}}\nWinner: {{winner.handle}} with score {{winner.score}}"
  }
}