Rich chat editor for workflow Chat steps
Build structured chat notifications with text, images, lists, link buttons, variables, and provider-aware previews from the workflow editor.

Workflow Chat steps now include a visual block editor. Instead of limiting every workflow-sent chat notification to one text body, you can compose structured messages for approvals, reports, summaries, prompts, and calls to action from the Dashboard.
Novu converts the shared message into a provider-specific format at delivery time. You author the content once, then inspect how it may appear on each chat provider connected to the environment.

Build structured Chat steps visually
Type / or use the add control to insert blocks into a Chat step. The first release supports:
- Text and images.
- Dividers, blockquotes, hard breaks, and numbered or bulleted lists.
- Link buttons with variable-backed labels and redirect URLs.
- Repeat and Digest blocks for content produced by earlier workflow steps.
Dashboard buttons open a URL. They do not route a reply to an agent or call back into your application.
Preview each provider before publishing
The preview panel uses the same shared card model as delivery. Switch between providers configured in the current environment to inspect an approximate rendering for each one.
Novu maps the card into provider-specific formats for Slack, Microsoft Teams, Telegram, and WhatsApp. Providers without a matching rich layout receive a compatible Markdown or text representation. When a provider cannot represent a block or button fully, the preview shows a compatibility warning so you can simplify the message or add a provider content override.
Provider previews are approximate. The delivered message can still differ because each platform controls its own spacing, layout, and supported features.
Existing text workflows keep their behavior
Existing Chat steps that use plain text or Liquid continue to use the Text editor and deliver as before. New empty Chat steps open in the Block editor by default.
You can switch between the Block and Text editors, but changing modes replaces the content stored for the current mode. Copy any content you need before switching while editing an existing workflow.
Liquid variables and translations continue to work. Use the Text editor for templates that depend heavily on Liquid conditions or loops. Use the Block editor when the message benefits from a structured layout that can be shared across providers.
Return the same card model from Framework
Code-first workflows can return a card from step.chat() instead of a text-only body:
Existing body returns remain valid. When a Chat step returns both body and card, Novu uses the card.
Add provider-native JSON when the shared card is not enough
The block editor covers shared rich content. Provider content overrides remain available beside Default content when you need exact provider JSON, such as a full Slack Block Kit payload or a WhatsApp template.
Read how to write Chat templates in the Dashboard or see the Framework Chat step for code-first workflows.








