Digest and Review Alert Email Customization
Customizing digest notification and review alert email templates with Handlebars syntax for Access Reviews.
This document introduces advanced customization for digest notification and review alert email templates used in Access Reviews. Refer to the examples on this page when you want to customize the appearance of the reviews table and extend the built-in {{DIGEST_NOTIFICATION_TABLE}} placeholder.
Overview
Digest notifications and review alerts share the same default body template and use the {{DIGEST_NOTIFICATION_TABLE}} placeholder. The {{TABLE_PHRASE}} placeholder automatically renders the appropriate header text based on the notification type.
For basic notifications, this built-in table may suffice. Custom templates require additional configuration, but offer greater control over exact formatting.
For custom layouts (lists, different styling, conditional content), you can use Handlebars syntax to iterate over certification objects (reviews) and build your own HTML structure to format and display information for recipients.
Using custom templates
To create a custom template in Veza:
Go to Access Reviews > Settings > Notifications
Click Add Template
Enter a template name and subject line
In the Notification body, add your HTML template with placeholders
Set Notification event to
ACCESS_WORKFLOW_DIGEST_NOTIFICATIONorACCESS_WORKFLOW_REVIEW_ALERTClick Save, then use the Test button to send a test email
You can also manage templates programmatically using the Notification Templates API.
Available placeholders
Digest templates support placeholders. These are tokens wrapped in double curly braces (e.g., {{PLACEHOLDER_NAME}}), that are replaced with dynamic values when the email is generated.
There are two types of placeholders:
Block placeholders render pre-built HTML content, such as a formatted table (
{{DIGEST_NOTIFICATION_TABLE}}or{{DIGEST_NOTIFICATION_WITH_SUMMARY_TABLE}})Simple placeholders insert a single value, such as a date range (
{{DIGEST_NOTIFICATION_PERIOD}}) or URL ({{ACCESS_REVIEW_URL}})
For the full list of placeholders ({{DIGEST_NOTIFICATION_PERIOD}}, {{ACCESS_REVIEW_URL}}, {{SETTINGS_URL}}, etc.), see Notification Templates: Digest and Review Alert placeholders.
Built-in table placeholders
These placeholders render pre-built HTML tables. Use them when you want the default table styling without writing custom Handlebars templates:
{{DIGEST_NOTIFICATION_TABLE}}
Built-in table without digest summary column
{{DIGEST_NOTIFICATION_WITH_SUMMARY_TABLE}}
Built-in table with digest summary column
For full control over the table layout, use Handlebars syntax with {{#each CERTIFICATIONS}} instead.
Simple placeholders for custom templates
The following additional placeholders are available for custom templates:
{{TABLE_PHRASE}}
Header text based on notification type: "My Reviews" for scheduled digest notifications (ACCESS_WORKFLOW_DIGEST_NOTIFICATION), or "New Reviews" for instant review alerts (ACCESS_WORKFLOW_REVIEW_ALERT)
{{CERTIFICATIONS_COUNT}}
Number of certifications in the digest

Building custom templates with Handlebars
Handlebars is a templating language that adds loops and conditionals to HTML. In digest templates, use Handlebars to iterate over the list of certifications and render each one with custom HTML formatting.
Certification data fields
The CERTIFICATIONS array has one object per review assigned to the recipient. Use {{#each CERTIFICATIONS}} to loop through them. Each certification object provides these fields:
{{CERT_NAME}}
string
Name of the certification
{{CERT_URL}}
string
Link to the certification details
{{WORK_LEFT}}
number
Number of items needing review
{{DUE_DATE}}
string
Due date string, or empty if no due date
{{OVERDUE}}
boolean
true if the certification is past due
{{NEW}}
boolean
true if the certification was recently created
{{DIGEST_SUMMARY}}
string
Workflow summary text (can be empty)
Looping with {{#each}}
{{#each}}This example outputs a paragraph for each certification, showing the name and item count:
Conditionals with {{#if}}
{{#if}}Use {{#if FIELD}} to render content only when a field has a value (non-empty string or true).
This example shows the due date only when one exists:
If-else with {{else}}
{{else}}Combine {{#if}}, {{else}}, and nested conditions to implement more complex logic.
This example shows "Overdue" if past due, otherwise shows "New" for recent certifications:
Optional digest summary
The {{DIGEST_SUMMARY}} field displays workflow summary text (maximum 64 characters). This field is only populated for digest notifications, not review alerts. This field is not available in the Veza UI.
As{{DIGEST_SUMMARY}} can be empty, always wrap it in a conditional:
To configure this value, include the digest_summary field when creating or updating a workflow via the API:
POST /api/preview/awf/workflowsPUT /api/preview/awf/workflows/{workflow_id}
Complete template examples
The following examples demonstrate different approaches to formatting digest notifications and review alerts, from using the built-in table to fully custom layouts.
Use inline styles: Email clients have limited CSS support. Always use inline style attributes instead of <style> blocks or external CSS classes to ensure templates render consistently across Gmail, Outlook, Apple Mail, and other email clients.
Default table with custom wrapper
Use {{DIGEST_NOTIFICATION_TABLE}} to keep the default table styling while customizing the surrounding template (header, footer, branding). This is the simplest approach when you only need to adjust the email wrapper.
Custom table layout
Replace the built-in table with your own table structure for full control over columns, styling, and content. This example uses {{#each CERTIFICATIONS}} to iterate over reviews.
Ordered list with status badges
Use a numbered list instead of a table for a more compact presentation. This example adds colored badges for overdue and new certifications.
Compact list with emoji indicators
A minimal list format that uses emoji instead of styled badges. This approach works well when you want simpler HTML or better compatibility across email clients.
Related topics
Notification Templates: Overview of notification template management
Digest Notifications: Configuring digest notification schedules
Notification Templates API: API reference for template management
Last updated
Was this helpful?



