Skip to main content
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.
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.

Distinguish provider formats

Meta documents interactive templates separately from list messages. 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.
1

Write distinct 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.
2

Bind a reply to its original question

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.
3

Handle repeats and changes of mind

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.
Keep these cases with your outbound preparation. The result is a reviewed interaction design; reply routing still needs a released channel implementation.

Frequently asked questions

Do not assume compatibility. The committed Threetone field accepts template components, not an arbitrary provider message object.
A choice is input. Your application must still verify identity, resource access, current state, and any required confirmation.