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’stemplate_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.
Frequently asked questions
Can I send a Meta list payload through template_params?
Can I send a Meta list payload through template_params?
Do not assume compatibility. The committed Threetone field accepts template components, not an arbitrary provider message object.