Telegram Inline Buttons
Use inline buttons when communicating with Rahul on Telegram (message tool) to reduce typing and force crisp decisions. Trigger when drafting Telegram messag...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Telegram Inline Buttons
Default rule
When sending a proactive message or asking Rahul to choose/confirm something on Telegram, prefer inline buttons over free-text prompts.
Use buttons for:
- Y/N confirmations
- A/B (or A/B/C) choices
- “Do it now vs later”
- Selecting one of a few next actions
Do not use buttons when:
- The message is purely informational (no action required)
- The user needs to paste/enter a value (then ask for text input)
- There are >5 options (summarize + offer “Show more”)
Button design
- Keep button labels short (1–4 words)
- 2–4 buttons is ideal
- Always include a safe escape hatch when appropriate:
- “Not now” / “Later” / “Skip”
- Map button presses to clear next actions in follow-up turns
After a button selection (automatic)
Telegram doesn’t support arbitrary text color in normal bot messages. To make the selection visually pop, do this automatically after a click:
- Edit the original message to remove the inline keyboard
- Append a standout selection line using emoji / symbols (chosen based on meaning)
Emoji mapping (standard)
- ✅ / 🟩 = approve / yes / proceed / confirm
- 🟥 = no / cancel / stop
- ⬛ = later / skip / defer
Do not send an extra follow-up message that repeats the selection—editing is sufficient unless there’s additional context/results to report.
Tooling rule: if you used functions.message (send/edit) as the user-visible delivery, respond in chat with NO_REPLY (unless you need to include additional results/details beyond what the edit shows).
Duplicate / stale callbacks
If a callback arrives after the message was already finalized (buttons removed / selection committed), do nothing:
- No extra message
- No additional edits
- Just silently ignore
OpenClaw message tool pattern
When using functions.message with action=send, include a buttons grid.
Recommended layouts:
2-button (binary)
Row 1: ["Yes"] ["No"]
3-button (decision + defer)
Row 1: ["Do it"] ["Not now"] Row 2: ["More info"]
A/B/C
Row 1: ["A"] ["B"] ["C"]
Copy-ready micro-templates (Telegram)
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]
Notes
- If a button-triggered flow will branch, keep the first message short; put details in the follow-up after the click.
- Multi-step flows: (1) edit prior message to commit selection, then (2) send the next question with buttons. Don’t narrate the selection separately.
- Keep
callback_datastable and unique per flow step (e.g.,flow_step_choice).
Files
1 totalComments
Loading comments…
