Novu changelog
Digest Step Upgrades: Create Beautiful Summaries in Minutes

We’ve reimagined how you build and present digested notifications—saving time, reducing complexity, and making templates look great out of the box.
This release introduces powerful new features that let you effortlessly summarize events, with ready-made summaries, visual tools, and editor enhancements.
Why This Matters
Digest notifications used to be painfully manual. Developers had to:
Write custom loops for every channel
Handle pluralization, list formatting, and grammar by hand
Repeat code across email, in-app, and chat
Build complex HTML for emails
Maintain state (e.g., list limits, summaries) themselves
All of this made digest creation slow, error-prone, and hard to maintain.
Now? You can build a polished digest in minutes, without touching LiquidJS or duplicating logic.
Note: Digest-specific variables and helpers are only available in steps that follow the Digest Step.
At-a-Glance: What’s New
countSummary
,sentenceSummar
Quickly generate concise, one-line digests without the need for additional logic.eventCount
,events
Directly access and work with summarized event data for streamlined analysis.Digest Block
Render visual digests effortlessly, eliminating the need to write LiquidJS code.Card Blocks
Achieve clean and consistent layouts without any coding required.LiquidJS Filter Pills
Easily view variable formatting at a glance—now available in all emails.
Summary Helpers
Count summary
Skip the logic - countSummary
auto-generates the correct phrasing.
You have {{steps.digest-step.countSummary}} available.
Examples:
- With 1 event → You have 1 notification available.
- With 3 events → You have 3 notifications available.
This is “syntactic sugar” for templating—under the hood, it uses eventCount
formatting filters.

sentenceSummary
Creates natural language lists from the event data.
{{steps.digest-step.sentenceSummary path="payload.name" limit=2 suffix="collaborators"}} commented on your post.
Result:
- With Alex, Jordan, and 3 others → “Alex, Jordan, and 3 collaborators commented.”
Customization Options:
path
: Which field to extract (e.g.,payload.name
)limit
: Max names before groupingsuffix
: Label for grouped names (e.g., “others”, “collaborators”, “team members”)

Visual Digest Components
Digest Block (Email Editor)
Stop looping manually.
The new Digest Block in the email editor:
Automatically loops through
steps.digest-step.events
Uses
current
to reference each itemRequires no Liquid code
Built-in logic handles iteration, list rendering, and structure.
When looping in the Digest Block or a Repeat Block, use the current
variable:
{{current.payload.message}}

Card Blocks: Prebuilt, Polished
New digest-ready Card Blocks offer:
Clean layouts
Visual consistency across digests
Designed specifically for list-like events
Skip HTML headaches—just pick a block and go.
Raw Access: Structured Variables
steps.digest-step.eventCount
Access the number of collected events.
You have {{steps.digest-step.eventCount | pluralize: "new comment", "new comments"}}.
Results:
1 → “You have 1 new comment.”
3 → “You have 3 new comments.”
steps.digest-step.events
Full access to the digested event array.
Note:
for loops
aren’t supported in LiquidJS—use the Repeat Block in the Email Editor.
Editor Enhancements
LiquidJS Filter Pills (Now Everywhere)
Every variable now shows its first LiquidJS filter visually:
Quickly scan for formatting
Easier debugging
Reduces mistakes
This isn’t limited to digests—it’s available for all emails, including newsletters and announcements.