What is a digest?
A digest is a recurring campaign driven by a content source. Instead of you composing a fresh email each week, you define:
- Which content to include— e.g. blog posts published in the last 7 days
- When to send— e.g. every Friday at 09:00 Europe/Amsterdam
- A minimum threshold— e.g. send only if at least 3 new items are available
Each run queries the content source, assembles an email from the matching items, and sends it to the configured audience.
Creating a digest campaign
- Create a new campaign and set Type to
Digest. - Configure the digest settings (content source, schedule, threshold, selection window, ordering, below-threshold behaviour).
- Compose the block template. Use the
digestItems[*]merge token on a block template so a single block fans out to N rendered items at send time. - Pick an audience (lists, segments, or both).
- Approve the digest. Once approved, the scheduler takes over.
Content source
The content source determines which Umbraco content is a candidate for each run.
Umbraco content source (default)
Queries Umbraco’s published content cache for items matching your filters:
| Option | Purpose |
|---|---|
| Content Type Alias | Required. The Umbraco document type to query — e.g. blogPost, newsItem, event. |
| Content Root | Optional. Restrict to descendants of a specific content node (e.g. only posts under the Blog root). |
| Tag Filter | Optional. Include only items with any of the given tags. |
| Published By Filter | Optional. Restrict to items published by specific Umbraco users. |
Each returned item exposes title, excerpt, image, url, and publishedAt — these are the fields available as merge tokens in the block template.
Publish-triggered digests
An alternative mode fires a digest whenever matching content ispublished— useful for a “notify on publish” flow without a threshold or schedule.
Schedule
Digests support recurring schedules:
- Daily— every day at a specific time
- Weekly— a chosen day of the week and time
- Monthly— a chosen day of the month and time
The schedule is timezone-aware (IANA timezones). The Upcoming Digests dashboard tile shows the next N scheduled runs across all digest campaigns.
Minimum threshold
Each digest has a Minimum Items setting. If fewer matching items are available at run time, the scheduler applies the configured below-threshold behaviour instead of sending an anaemic newsletter.
Below-threshold behaviours
| Behaviour | What happens |
|---|---|
| Skip silently | The run is recorded (with reason below-threshold) but no email is sent. The next scheduled run proceeds normally. |
| Notify editor | The run is skipped, and an in-backoffice notification is posted to the editor so they can manually add content or trigger a manual run. |
| Roll forward | Items are carried over to the next run, accumulating over time until the threshold is met. |
Item selection window
Each run needs a definition of which items are “new”. CampaignCanvas supports two strategies:
| Strategy | What counts |
|---|---|
| New since last send | Anything published since the last successful digest send. Handles gaps cleanly — if a run is skipped for any reason, the next run sweeps up everything that was missed. |
| New in last interval | Anything published within the interval preceding the scheduled run (e.g. last 7 days for a weekly digest). Simpler behaviour but can lose items if runs are skipped. |
Ordering
Control how items are arranged in the rendered email:
- Newest first — descending by
publishedAt. Fully automatic. - Manual curation— pause the run before send and wait for an editor to reorder, add, or remove items. See Curation.
Editor curation
When ordering is set to manual curation, the scheduler queues the run in a pending curation state. Editors open the pending digest, review the proposed items, rearrange or trim as needed, and click Approve to release the send.
The curation view is available under Campaigns → Pending Curation. Unapproved runs stay pending until either an editor approves them or the next scheduled run supersedes them.
TipUse curation mode for higher-stakes digests — company newsletters, customer-facing releases — and fully automatic mode for internal digests like “new jobs this week” or “team blog posts”.
Rendering items in the email
Digest campaigns use a special merge token: digestItems[*]. When a block template uses this token, the block is repeated once per item at render time.
Available per-item tokens
| Token | Resolves to |
|---|---|
{{digestItem.title}} | The item’s title |
{{digestItem.excerpt}} | A short summary or meta-description |
{{digestItem.image}} | Hero image URL |
{{digestItem.url}} | Public URL to the item on your site |
{{digestItem.publishedAt}} | Published date |
Design a single block that looks right for one item — heading with link, image, excerpt, read-more button — and the render pipeline repeats it for every item in the run.
Run history
Each digest campaign keeps a run history. Each run records:
- Timestamp — when the run fired
- Items found— number of matching items at query time
- Items sent— number actually included in the email (may be less if curation trimmed them)
- Outcome— sent, skipped (with reason), or failed
Open a digest campaign and click Run historyto review past runs — useful for debugging threshold skips or verifying the digest is hitting its schedule.
Manual run
You can trigger a digest run immediately from the campaign page with Run Now. This is handy for:
- Testing the render before the first scheduled run
- Catching up after deliberately holding off (e.g. content embargo lifted)
- Ad-hoc sends outside the regular cadence
Manual runs honour the threshold and curation settings — they’re treated exactly like a scheduled run, just fired immediately.