Skip to main content
The Slack editor supports two modes: a Text editor for simple messages, and a JSONNET editor for rich Block Kit layouts with buttons, images, and structured sections.

Slack editor with JSONNET and live preview

To send Slack notifications, you need a Slack vendor integrated with SuprSend. See Slack vendor integration for setup.

Slack fields

Text mode - a single text field. Supports Handlebars variables ({{variable_name}}). Use triple braces {{{url}}} for URLs with special characters. JSONNET mode - a code editor that outputs Slack Block Kit JSON. Variables use data.key syntax (not Handlebars). Design visually in the Block Kit Builder first, then adapt the JSON into JSONNET. See the full JSONNET reference for syntax, examples, and debugging.
Slack JSONNET templates must be wrapped in {"blocks": [...]}. A bare array of blocks will not render - see the JSONNET reference for the correct shape.
AI prompt - convert text to Block Kit: “Convert this Slack notification into Block Kit JSON: [paste message]. Variables: [list]. Return valid JSON I can adapt into JSONNET for SuprSend (replacing values with data.key).”
AI prompt - debug JSONNET: “Fix this JSONNET error from the SuprSend Slack editor. Error: [paste error]. Code: [paste JSONNET]. Variables are accessed as data.key or data[‘$special_key’].”
You can switch between Text and JSONNET at any time. Content is saved independently for each mode.

Adding dynamic content

In Text mode - type {{ for auto-suggestions. Standard Handlebars syntax:
  • {{order_id}} - top-level variable
  • {{order.address.city}} - nested variable
  • {{{tracking_url}}} - URL (avoid escaping)
  • {{$recipient.name}} - recipient property
  • {{$tenant.name}} - tenant property
In JSONNET mode - variables use data.key syntax. See JSONNET variable reference for the full table. For conditionals, loops, and helpers in Text mode, see Handlebars Helpers.
If a variable cannot be rendered at send time (missing or mismatched data), SuprSend discards the Slack notification for that user. Other channels in the same template group are still sent.

Preview and test

Text mode - the right panel shows a Slack message preview that updates as you type. JSONNET mode - click Load Preview to render the JSONNET output in the preview panel, then click View in Slack Block Kit to render and validate your Block Kit output in Slack’s Block Kit Builder. Click Test in the top-right corner to send a real Slack message. In the editor this uses the draft version; from the live view it uses the live version. See Testing a Template for the full guide.

Commit

Click Commit in the top bar to publish the current draft as a new live version. Add an optional description for versioning.

Common patterns

Use <@SLACK_USER_ID> in a JSONNET mrkdwn text object to @mention a user: "<@" + data.assignee_slack_id + ">". Text mode is sent as plain text, so mentions don’t render there.
Slack uses <URL|display text> syntax. In JSONNET: "*<" + data.url + "|" + data.title + ">*".
Use :emoji_name: syntax (for example, :white_check_mark:, :warning:).

Frequently asked questions

Start with Text for simple alerts and status updates. Switch to JSONNET when you need buttons, images, structured layouts, or batched event lists.
Click Load Preview, then View in Slack Block Kit in the JSONNET editor. Slack silently drops invalid blocks instead of showing errors - always validate before committing.
The most common reason is missing the {"blocks": [...]} wrapper. The SuprSend JSONNET editor only accepts the object form - a bare array ([{...}]) will not work. Wrap all your blocks inside a top-level object with a blocks key.
Slack truncates messages over 4000 characters. For batched notifications with many items, show the top 5-10 and add a “View all” button.
Slack uses mrkdwn, not standard Markdown, in JSONNET mrkdwn text objects. Bold: *text*, italic: _text_, strikethrough: ~text~, code: triple backticks. Text mode messages are sent as plain text.
SuprSend discards the Slack notification for that user. Other channels in the same template group are still sent.