Compose JSON messages in the advanced editor

Updated August 17, 2026

This page is part of the build-your-own inbox approach.

When you send an inbox message from an automation or broadcast—or from your backend—you author its content in the advanced editor. The advanced editor delivers your message as the JSON payload that you render from your bespoke inbox client.

  1. Add an Inbox message to your automation or broadcast workflow (or create an Inbox transactional message), then choose the Advanced editor.

  2. Define your message settings: Topics, Type, and Expiration.

    • Topics: help you filter the inbox for specific messages.
    • Type: acts as a signal to your inbox client about how to render the message.
    • Expiration: the time between when the message is sent and when it expires. Messages only expire if they’re sent but not delivered. By default, messages expire after 60 days, which is also the maximum.
    The inbox message settings screen with the message settings filled in
  3. In the JSON area, provide the payload that represents your message. By default we include a title and body, but you can add any fields your client expects, like an image or link.

    Personalize content with liquid: use {{customer.<attribute_name>}} for profile attributes, {{event.<attribute_name>}} for event data, and {{trigger.<attribute_name>}} for broadcast or transactional trigger data.

    {
     "title": "Hey, {{customer.first_name}}, your order shipped!",
     "body": "You can track your order #{{event.order_number}} here:",
     "link": "https://example.com/orders/{{event.order_number}}"
    }
  4. Save your message.

For the full automation and broadcast flow, see send inbox messages. To trigger messages from your backend, see trigger inbox messages from your backend.