3.6 KiB
name, description
| name | description |
|---|---|
| telegram-inline-buttons | Use when sending proactive Telegram messages that ask Eric to confirm, choose, defer, or pick from a few next actions; especially for yes/no, A/B/C, do-now-vs-later, short multi-step button flows, or numbered option lists like 1.xxx / 2.ooo / 3.yyy that should be converted into inline buttons. |
Telegram Inline Buttons
Prefer inline buttons over free-text prompts when sending a proactive Telegram message that expects a choice.
Use buttons for
- Yes / No confirmations
- A / B / C choices
- Do it now vs later
- Picking one of a few next actions
- Numbered option lists like
1.xxx,2.ooo,3.yyy
Do not use buttons for
- Purely informational messages
- Input that requires typed text
- More than 5 options
If there are >5 options, summarize and offer a Show more button.
Button design
- Keep labels short: 1-4 words
- 2-4 buttons is ideal
- Include a safe exit when appropriate:
Not now,Cancel,Later,Skip - Keep
callback_datastable and unique per flow step, e.g.reminder_time_15m,deploy_confirm_yes - When the source prompt is a numbered list, convert each visible option into a short button label while preserving the original order
Recommended layouts:
- Binary: one row
[Yes] [No] - Decision + defer: row 1
[Do it] [Not now], row 2[More info] - A/B/C: one row
[A] [B] [C] - Numbered list:
[1] [2] [3]or short labels derived from each option
Telegram message tool pattern
For user-visible delivery, use message(action="send") with buttons.
Example shape:
{
"action": "send",
"channel": "telegram",
"target": "...",
"message": "Want me to proceed?",
"buttons": [[
{"text": "Proceed", "callback_data": "deploy_confirm_yes", "style": "primary"},
{"text": "Hold", "callback_data": "deploy_confirm_no"}
]]
}
After a button click
Telegram bot messages do not support arbitrary text color. To make the selection stand out:
- Edit the original message
- Remove the inline keyboard
- Append one short committed-selection line with emoji
Standard emoji mapping:
✅or🟩= yes / approve / proceed / confirm🟥= no / cancel / stop⬛️= later / skip / defer
Do not send a separate follow-up that only repeats the selection. Editing is enough unless you also need to report results or ask the next question.
Multi-step flows
For branching flows:
- Edit the prior message to commit the selection
- Send the next question with fresh buttons
- Do not narrate the previous selection again
Keep the first message short. Put details in the next step after the click.
Duplicate / stale callbacks
If a callback arrives after the message is already finalized:
- Do nothing
- No extra message
- No further edits
- Silently ignore it
Tooling rule
If message(send/edit) delivered the user-visible response, reply in chat with NO_REPLY unless you must add extra context beyond what the message edit already shows.
Copy-ready templates
Confirm action
Text: Want me to proceed with <action>?
Buttons: [Proceed] [Hold]
Pick next step
Text: Pick the next move:
Buttons: [Option A] [Option B] [Option C] [Not now]
Scheduling
Text: When should I remind you?
Buttons: [15m] [1h] [Tonight] [Tomorrow]
Numbered options
Text:
Pick one:
1. xxx
2. ooo
3. yyy
Buttons: [1] [2] [3] or [xxx] [ooo] [yyy]
Decision rule
Default to buttons whenever Eric is being asked to choose, confirm, defer, or select the next action on Telegram. This includes numbered lists that would otherwise require a reply like 1, 2, or 3.