🎁 Get the FREE AI Skills Starter Guide — Subscribe →
BytesAgainBytesAgain
🦀 ClawHub

Telegram Inline Buttons

by @rahulsinghalchicago

Use inline buttons when communicating with Rahul on Telegram (message tool) to reduce typing and force crisp decisions. Trigger when drafting Telegram messag...

Versionv0.1.0
Downloads1,100
Stars⭐ 1
TERMINAL
clawhub install telegram-inline-buttons

📖 About This Skill


name: telegram-inline-buttons description: Use inline buttons when communicating with Rahul on Telegram (message tool) to reduce typing and force crisp decisions. Trigger when drafting Telegram messages that ask for confirmation, choices (A/B, Y/N), scheduling, approvals, or next-step selection; also when the user asks to "use inline buttons".

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: 1) Edit the original message to remove the inline keyboard 2) 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 ?" 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_data stable and unique per flow step (e.g., flow_step_choice).
  • 📋 Tips & Best Practices

  • 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_data stable and unique per flow step (e.g., flow_step_choice).