Specify a Telegram poll bot: revoting, new options, and result rules
Turn Telegram's 2026 poll capabilities into testable requirements for multiple answers, revoting, member limits, added options, closing times, and result visibility.
“Build a poll bot” is not a complete requirement. Event scheduling, a community survey, and a knowledge quiz need different rules for multiple selections, revoting, added options, membership, and result visibility. Telegram expanded native polls in 2026, but more platform capability makes explicit product rules more important.
Choose the poll type first
Start with how the result should be interpreted:
- Single-choice survey: one answer per person, useful for selecting a date or location.
- Multiple-choice survey: several answers per person, useful for collecting preferences.
- Single-answer quiz: one correct answer for a simple knowledge check.
- Multiple-answer quiz: several choices together form the correct answer.
Telegram's Bot API changelog records that Bot API 9.6, released April 3, 2026, added multiple correct quiz answers and expanded polls with revoting, shuffled options, participant-added options, hidden results, and member restrictions. This article uses the official changelog as visible on October 10, 2026.
These are Telegram platform capabilities. They do not prove that every bot SDK, generator, or existing deployment supports every field. Name the required capabilities in the specification, then inspect the artifact and test the result in Telegram.
Make six decisions people often omit
1. Who may vote
Specify everyone who can see the message, current group members, or an allowlist. If voting is members-only, decide what happens to a vote after someone leaves and whether anonymity fits your audit needs.
2. Whether votes can change
Revoting is useful for event planning, but live totals can keep moving. If choices are final, warn people before their first submission. If choices can change, state exactly when the final selection becomes locked.
3. Who may add options
Open suggestions collect ideas but can introduce duplicates, advertising, or unsafe content. Decide whether only administrators add options, every member may add them, or the bot holds suggestions for review. Set length, count, and duplicate rules.
4. When the poll closes
Use a specific timezone and timestamp instead of “Friday evening.” Define who may close it manually if automation fails and how to handle a vote arriving at the deadline.
5. When results become visible
Live results suit informal preference checks. Hiding results until closure can reduce social influence. If administrators can inspect early totals, disclose that rule.
6. Whether option order is shuffled
Shuffling helps quizzes avoid position memorization, while a scheduling poll may need chronological order. Store results against stable option identifiers rather than “the second item.”
A requirement you can adapt
Create an event-date poll bot for Telegram groups. A group administrator uses
/new_pollto provide a title, a deadline in Asia/Shanghai time, and 2–8 dates. Only current group members may vote. Each person selects at most two dates and may change their vote before the deadline. Regular members cannot add options. Administrators may add an option before closure but may not delete an existing one. Before the deadline, show only participation count, not totals by option. Close automatically at the deadline and then show totals. A tie asks an administrator to decide instead of selecting a random winner. Give every option a stable identifier so shuffled display order cannot corrupt earlier votes. Invalid times, duplicate dates, limit violations, and late requests return clear guidance without changing records. The first version uses no runtime AI and no external calendar.
For a quiz, replace dates with questions and correct choices, then define when explanations appear, whether retries are allowed, and whether scores persist.
Design records, not only messages
Even when the bot sends a native Telegram poll, it may still need to store its creator, business timezone, deadline policy, stable option identifiers, and final status. Do not use array position as a permanent key or assume a live count is the final result.
At minimum, separate draft, open, and closed states. Closing should be idempotent: repeating the action must not resend results or replace the final record. If an administrator changes a rule, record whether that happened before or after opening.
Build a post-release test matrix
Use two regular members and one administrator to confirm that:
- a member can select within the limit and revote, but cannot add options or close the poll;
- adding an option does not remap votes already attached to stable identifiers;
- nonmembers, late requests, and repeated close actions cannot change results;
- hidden results stay unavailable to regular members before closure;
- a tie requests a human decision instead of inventing a winner;
- reopening the chat or publishing a new code version preserves the open state and existing votes.
Real testing must cover client display, stored records, and authorization. Successfully sending one poll message does not establish that the complete workflow is correct.
Where BotFatherV2 fits
BotFatherV2 creates and modifies Telegram Serverless bots through AI conversation. It is an independent product, separate from Telegram's official BotFather. Its public beta documentation lists simple polls among the initial use cases, but the fixed SDK surface does not guarantee immediate support for every Bot API 9.6 field. Put required fields, fallback behavior, and the test matrix into the requirement, then use the validation report and real Telegram tests to decide whether to publish.
AI-assisted generation does not mean the poll bot is a runtime AI agent. All rules above can remain deterministic. If a later version asks a model to summarize free-text suggestions, document model cost, privacy, and human-review boundaries separately.
Sources and verification date
- Telegram, Bot API changelog, official English changelog; Bot API 9.6 entry published April 3, 2026. Checked October 10, 2026.