> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threetone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Interactive messages

> Prepare reply choices and template buttons with stable identifiers and clear limits on the current WhatsApp schema.

Interactive choices can make a support flow clearer, such as asking a customer to select delivery, returns, or an existing order. Design the choice and its resulting action together.

<Note>
  Interactive sending and reply processing are not released in Threetone. The outbound template schema has button components, but the route returns HTTP `501`. It does not expose Meta's full interactive-message API.
</Note>

## Distinguish provider formats

Meta documents [interactive templates](https://www.postman.com/meta/whatsapp-business-platform/request/lwtlz1k/send-message-template-interactive) separately from [list messages](https://www.postman.com/meta/whatsapp-business-platform/request/jze7gxt/send-reply-to-list-message). A template button and a free-form interactive list are different request shapes.

Threetone's `template_params` supports `header`, `body`, and `button` components. A button component contains `parameters`, `index`, and `sub_type`. The open string `sub_type` is not proof that every provider subtype is implemented.

## Prepare a choice flow

Have an approved template or proposed message design, a supported language, and an owner for each action behind a choice.

<Steps>
  <Step title="Write distinct choices" id="whatsapp-interactive-choices">
    Keep labels short and unambiguous. Record the meaning of each choice in your application separately from its translated label. Confirm which format and provider limits apply before preparing payloads.
  </Step>

  <Step title="Bind a reply to its original question" id="whatsapp-interactive-correlation">
    Plan to validate the sender, original message, and choice identifier together. Reject unknown choices and explain when a previous menu has expired. A display label alone should not select a customer record or authorize a tool.
  </Step>

  <Step title="Handle repeats and changes of mind" id="whatsapp-interactive-repeats">
    Define what happens when a user taps twice, replies with text, or selects an older menu. Deduplicate repeated deliveries. For purchases, cancellations, or external messages, show the resolved details and require the appropriate confirmation before mutation.
  </Step>
</Steps>

Keep these cases with your [outbound preparation](/agents-platform/deploy/whatsapp/outbound). The result is a reviewed interaction design; reply routing still needs a released channel implementation.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Can I send a Meta list payload through template_params?" id="faq-whatsapp-interactive-list">Do not assume compatibility. The committed Threetone field accepts template components, not an arbitrary provider message object.</Accordion>
  <Accordion title="Does tapping a button authorize a sensitive action?" id="faq-whatsapp-interactive-authorization">A choice is input. Your application must still verify identity, resource access, current state, and any required confirmation.</Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.