Interactive reply buttons
Released: June 1, 2026
Public API Added
Section titled “Public API ”Reply buttons (Meta’s interactive.type=button surface) are now
supported on POST /v1/{phone_number_id}/messages as a new
interactive subtype:
{ "messaging_product": "whatsapp", "to": "+628123456789", "type": "interactive", "interactive": { "type": "reply_buttons", "body": { "text": "Konfirmasi jadwal workshop besok jam 9?" }, "action": { "buttons": [ { "type": "reply", "reply": { "id": "confirm", "title": "Confirm" } }, { "type": "reply", "reply": { "id": "reschedule", "title": "Reschedule" } }, { "type": "reply", "reply": { "id": "cancel", "title": "Cancel" } } ] } }}Recipients tap one of the buttons; their choice arrives on your webhook
as an inbound message.received event carrying a button_reply
discriminator with the id you set. Use it for confirmations,
branching menus, and short multiple-choice questions where each option
is a single short label (≤20 chars).
Distinct from the existing CTA URL button — that opens a link in the browser; reply buttons stay inside WhatsApp and route back to your webhook.
Validation enforced before the request reaches Meta:
- 1–3 buttons per message
- Each
id≤ 256 chars; eachtitle≤ 20 chars - Both
idandtitlemust be unique across the button set - Body ≤ 1024 chars (required); optional header (text / image / video /
document via
link) ≤ 60 chars; optional footer ≤ 60 chars - Subject to the 24-hour customer-service window — same as every free-form send
See the new Send reply buttons guide for the full payload, the webhook shape, and end-to-end examples in cURL and the TypeScript SDK.
TypeScript SDK Added
Section titled “TypeScript SDK ”@kirimdev/sdk accepts the new reply_buttons variant on
phone.messages.send(...) automatically — the SDK derives its types
from the same OpenAPI spec that powers the API reference. No new SDK
method is required; the variant appears as a tab inside the existing
type: 'interactive' discriminator.
MCP server Added
Section titled “MCP server ”The existing send_message MCP tool now accepts reply_buttons
payloads — Claude, ChatGPT, and other MCP-aware clients can drive the
new surface immediately. No new tool registration is needed.
n8n node Added
Section titled “n8n node ”The Kirim n8n community node ships a new Send Interactive Reply Buttons operation alongside the existing CTA URL action. The form exposes optional header / body / footer and a dynamic 1–3-row buttons collection (id + title). Validation is performed locally with clear errors before any HTTP request fires.
Dashboard Added
Section titled “Dashboard ”The chat composer has a new Tombol balasan menu item between the
URL-button and list-message actions. Operators can compose a
reply-buttons message inline, see the same 1–3 button preview the
recipient will tap, and review inbound button_reply events directly
in the thread.