Skip to main content
You can compose Chat step content in the Novu Dashboard with either the block editor or the text editor.
  • Block editor: Visual blocks for structured messages (text, images, buttons, lists). Best when you want a shared rich message that Novu maps to each chat provider.
  • Text editor: Plain text and Liquid for variables, conditions, and loops. Best when you already rely on Liquid-heavy templates, or when you need full control over a single string body.
Both editors support variables and notification preview. For code-first workflows, see the Framework chat step.

Choose an editor

Open a Chat step in the workflow editor. Use the Block editor / Text editor control to switch modes.

Backward compatibility

Existing Chat steps keep working without changes.
  • Steps that already use a plain-text or Liquid body open in the Text editor.
  • Delivery for those steps stays the same.
  • New empty Chat steps default to the Block editor.
  • Novu does not auto-convert Liquid-heavy text templates into blocks. Keep those steps on Text editor, or rebuild the content in Block editor if you want the structured format.
Switching from Block editor to Text editor (or the other way) replaces the step content for that editor mode. Copy anything you need before switching if you are experimenting.

Block editor

The block editor is a visual composer for chat cards. Add a block with the plus (+) control or by typing / in the editor. Choose a block from the menu, then edit its fields inline.

Supported blocks

Buttons in the Dashboard block editor are link buttons only. They open a URL. Interactive actions that call back into your app or an agent are not part of this editor.
Button URLs must be valid absolute URLs (for example https://novu.co). Values without a protocol can fail delivery on providers such as Slack.

Variables and personalization

Use the variable picker or Liquid-style {{ ... }} placeholders inside text, button labels, and button URLs. The same subscriber, payload, and digest variables work as in other channel editors. See Personalize notification content.

Preview

The Chat step preview gives you an approximate view of the message for providers configured in your environment, such as Slack or Microsoft Teams. The delivered message can look different because each provider has its own layout, spacing, and supported features. Use the provider switcher in the preview panel to inspect each rendering. Some providers support native rich layouts (Slack Block Kit, Microsoft Teams Adaptive Cards). Others receive a text or Markdown-style fallback derived from the same card. If a block cannot be represented fully on a provider, the preview may surface a warning. Treat that as a signal to simplify the card or add a provider content override for that provider.

Text editor

The text editor is a single message body field. Write plain text or Liquid:
Use this mode when:
  • The step already uses Liquid conditionals or loops that you do not want to rebuild as blocks.
  • You only need a short plain-text notification.
  • You plan to supply the rich format through a provider content override (for example Slack Block Kit) and keep the default body as a fallback string.

Rich chat content vs provider overrides

These layers solve different problems: The block editor does not replace provider overrides. Overrides still apply for provider-specific APIs when you set them. If both exist, follow the precedence rules in Provider content overrides and Trigger overrides. Use provider content overrides when you need more control over one provider’s payload than the shared blocks offer. The block editor supports variables, but it does not support Liquid conditions or loops. Use the text editor when you need Liquid logic.

Code-first and Framework

If you define the Chat step in code with @novu/framework, return a body string or a card object. If you return both, Novu uses card. The Dashboard block editor covers the common card subset. Framework also supports sections, fields, tables, and other layout elements. See:

Chat channel overview

Delivery flow, credentials, and provider overrides.

Channels template editors

How template editors work across channels.

Framework chat step

body and card output for code-first workflows.

Slack integration

Slack setup and Block Kit overrides when you need Slack-native payloads.