Send Poll

telegram.send_poll
ActionChat & messagingconnection required

Calls the Telegram API with the connection's credentials.

Send a native poll or quiz to a Telegram group, channel or chat.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Telegram
Secret shape
the bot token, or {"token": "…"}
Resolved by
config.connection_id, else node.connection_id

Configuration

16 fields, 3 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
chat_id
The chat to send to: a numeric chat/user id, or an @channelusername.
stringYes———
question
The poll question, 1-300 characters.
stringYes—≤ 300 characters—
options
Answer options: 2-12 strings, or Telegram InputPollOption objects.
arrayYes—2–12 characters; array of string["Yes","No"]
type
'regular' for a normal poll or 'quiz' for one with a correct answer.
stringNo—one of "regular", "quiz"—
is_anonymous
Hide who voted for what; Telegram defaults this to true.
booleanNo———
allows_multiple_answers
Let a voter pick more than one option; not allowed for quizzes.
booleanNo———
correct_option_ids
Zero-based indexes of the correct options; required in quiz mode.
arrayNo—array of number—
explanation
Shown when a quiz voter picks a wrong answer, 0-200 characters.
stringNo—≤ 200 characters—
explanation_parse_mode
How to format the text: 'MarkdownV2', 'HTML', or blank for plain text. MarkdownV2 needs every literal _ * [ ] ( ) ~ ` > # + - = | { } . ! escaped with a backslash or Telegram rejects the whole message, so prefer HTML for text interpolated from an expression.
stringNo—one of "", "MarkdownV2", "HTML"—
open_period
Seconds the poll stays open after it is sent, 5-2628000.
integerNo—5–2628000—
is_closed
Send the poll already closed, which is only useful for a preview.
booleanNo———
disable_notification
Deliver silently — the recipient sees the message but their device stays quiet.
booleanNo———
protect_content
Stop recipients forwarding or saving the message.
booleanNo———
reply_to_message_id
Id of a message in the same chat to reply to; sent as reply_parameters.message_id.
integerNo—≥ 1—
message_thread_id
Topic id inside a forum supergroup; leave blank for the main thread.
integerNo—≥ 1—
reply_markup
Keyboard or markup for the message, as the JSON object Telegram documents (inline_keyboard, keyboard, remove_keyboard or force_reply). A JSON string is accepted too and parsed for you.
objectNo———

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "options": [
    "Yes",
    "No"
  ]
}

Output

One shape.

result

FieldTypeExample
ok
True when Telegram accepted the call.
booleantrue
message_id
Id of the message Telegram created.
number—
chat_id
Id of the chat the message landed in.
string—
date
Unix time Telegram recorded for the message.
number—
message
The full Telegram Message object, as returned.
object—
{
  "chat_id": "",
  "date": 0,
  "message": {},
  "message_id": 0,
  "ok": true
}

Notes

  • chat_id is a numeric chat/user id or an @channelusername. A bot can only message a user who started it, or a group/channel it has been added to.
  • The bot token sits in the request URL, so it is redacted out of every error message and dry-run report these nodes produce.
  • Telegram answers HTTP 200 even for failures; the node reads the {'ok': …} envelope and raises on ok:false with Telegram's own description.
  • Since Bot API 7.3 each option is an object; this node accepts plain strings and converts them for you.

See Send Poll run in a workflow.

In a technical demo we add the Telegram connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.