Skip to main content
Webhook payloads use a different context from ordinary template text. Original send data lives under context. Use these variables in an action’s JSON payload_template: Submission paths exist only on modal submission. Dynamic carousel actions retain their selected item through modal submission and replace_card updates. Use rowData.id in modal data bindings and {{rowData.id}} in payloads; context.* remains the complete original message data. Re-send older messages to use this behavior. Slack does not provide user email in this variable contract; use the Slack user ID as the actor identifier.

Button example

Set the button value to {{request.id}} and send with { "request": { "id": "REQ-123" } }. Its webhook payload can be:

Submission example

For an input whose action_id is reason:
Use the receipt ID to correlate a submission with the receiver’s records. The request also carries X-LithoBlocks-Submission-Id. See Modal submissions for delivery semantics. Keep payloads minimal. Test the rendered request with representative data rather than assuming an absent variable becomes an empty string. The API returns the interactivity contract under GET /v1/templates/block-schema.