Skip to main content
Interactive buttons turn static messages into workflows. When a user clicks a button, you can send a webhook, update the message, or open a modal. This guide covers adding and configuring buttons.

Prerequisites

Add an Actions block

  1. In the Template Builder, find Actions in the Block Toolbox
  2. Click to add an Actions block
  3. Configure the default button (or add more, keeping the row concise)
Empty Actions block

Button configuration

Each button needs: Button configuration panel
Use descriptive action IDs and short, action-oriented labels. Keep action IDs unique across the template.

Example: Approval workflow

Button 1 — Approve:
  • Label: ✓ Approve
  • Action ID: approve_request
  • Style: Primary
  • Value: {{request.id}}
Button 2 — Reject:
  • Label: ✗ Reject
  • Action ID: reject_request
  • Style: Danger
  • Value: {{request.id}}

What happens when a button is clicked

You can configure each button to:
  1. Send a webhook — HTTP request to your API (see Button webhooks)
  2. Update the message — Replace or append content (see Message updates)
  3. Open a modal — Collect more input (see Modals)
Configure the action in the button settings: Add Action → choose Webhook, Message Update, or Modal. Set a URL for a navigation button. To record clicks without a webhook, modal, or message update, enable Track clicks only. Tracking-only mode cannot be combined with those effects. See Click tracking. Buttons may also appear as section accessories, Context Actions, or card actions. Their position limits the available update strategies; validate using the interactivity contract. Test repeated clicks and inspect history before relying on a button for a one-time business action. Use idempotency for state-changing actions and deduplicate at your receiver.

Next steps

Button webhooks

Send HTTP requests when buttons are clicked.

Message updates

Update the message after a click.

Modals

Open forms from buttons.