Actions11
- Message Actions
- Conversation Actions
- Media Actions
- Comment Actions
Message → Send Buttons
AI-generatedSummary
Sends a TikTok DM button template (title plus 1–3 postback buttons) to a conversation and doubles as a postback router, emitting a button's tap on that button's own output port so you can build multi-level menus.
Inputs
- Conversation ID (required) — TikTok conversation ID. Defaults to an expression that pulls it from the upstream DM/postback event (raw/data conversation_id or conversation.id). Errors if empty and not auto-detectable.
- Title (required) — Template title shown above the buttons (max 40 chars). Must be non-empty when sending.
- Buttons (required) — 1–3 buttons, each with a required Title label (max 20 chars). Sortable. Each button becomes an output port named after its title. Sending with zero buttons throws an error.
Output shape
One output port per configured button. Sending emits no items; items only appear when routing a postback tap. A routed item is the inbound event JSON plus a _routed object ({from, btnIndex, title}), with _forward removed.
Behaviour depends on the incoming item. (1) SEND: no postback, or item has
_routedmarker → POSTs to /tiktok/messages/buttons with payloads encoded as dbl_{nodeId}_{index}, and emits nothing. (2) ROUTE: a.message.postbackor.message.quick_replyevent whose payload matches this node's id → emits on that button's port. (3) FORWARD: payload belongs to a downstream Send Buttons node reachable in the workflow graph → re-emits on the output leading to it with_forward: true. Unknown or stale payloads are silently dropped. Wire a downstream Send Buttons node to a button port to show the next menu page. API errors raise a node error with the backend's message and code.
Examples
Example 1: Greet a user who DMs the bot with a main menu and handle their choice.
Trigger on TikTok DM → Send Buttons with Title 'How can we help?' and buttons 'Pricing', 'Support', 'Talk to human'; leave Conversation ID default; connect each button port to the matching reply node.
Example 2: Build a two-level menu.
Connect the 'Pricing' port of the first Send Buttons node to a second Send Buttons node with buttons 'Monthly' and 'Yearly'; the click is routed to the second node, which sends its menu.