Methods to list, create, update, and delete email templates.
POST {VEZA_URL}/api/preview/notifications/email_templates
Body parameters:
id
string
Template unique ID (read-only).
name
string
Template name.
subject_template
string
Template to use for the email subject.
body_template_base64
string
body_template
string
Body template (deprecated).
attachments
Attachment
array
usage
Usage
enum
Converting to Base64:
Mac
base64 -i template.html -o base64.txt
Linux
base64 template.html > base64.txt
PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./template.html")) > base64.txt
Request:
Decoding the template: You can use
base64 -D
to decode the input. In this case,body_template_base64
decodes to:
The response will contain the new email template, including the template id
and configured attachments:
Attachment
type
AttachmentType
Optional attachment type.
name
string
Attachment name.
contents_base64
string
Base64-encoded contents.
Veza recommends hosting your own high quality images and referencing them from your templates using HTML. However, you can upload attachments of 64kb or less in base64 format. Valid EmailTemplateAttachmentType
types are:
IMAGE
(default)
Usage
Notifications inform reviewers of different types of events, such as when a due date is near, a result is re-assigned, or to provide periodic summaries of assigned reviews. You can customize the email sent for each event by setting the usage
when uploading the template.
One template can currently exist per usage
. To change the usage for a template, delete and re-create it.
Email batch size: When possible, notifications use a single email message, with all recipients in the "to" field. The maximum recipients is 20 by default. Veza sends additional emails when the limit is exceeded. The max recipients is adjustable by the Veza support team.
ACCESS_WORKFLOW_REVIEWER_CHANGED
emails are sent to individual recipients, unless triggered by a Smart Action or another action impacting several rows.
This table shows possible usage
values and their matching setting in on the Email Notifications and Reminders page:
ACCESS_WORKFLOW_REVIEWER_CHANGED
When a certification row has been reassigned
Sent to all newly added reviewers, and old removed reviewers. Not sent when auto-assigning upon creation, or for changes in draft certifications.
ACCESS_WORKFLOW_STARTED
When a certification has been started
Sent to all reviewers in a single email, when the certification is published
ACCESS_WORKFLOW_COMPLETED
When a certification has been completed
Not sent for expiring certifications
ACCESS_WORKFLOW_REMINDER_NO_ACTIVITY
If no changes have been made
Sent to all inactive reviewers.
ACCESS_WORKFLOW_REMINDER_DUE
When a certification is due
Sent before, the day of, or after the due date.
ACCESS_WORKFLOW_DIGEST_NOTIFICATION
Digest email settings
Periodic summary of in-progress reviews sent based on configured frequency.
Delete an email template by id
.
DELETE {VEZA_URL}/api/preview/notifications/email_templates/{id}
Request:
Response:
A successful response will be empty {}
.
GET {VEZA_URL}/api/preview/notifications/email_templates/{id}
Returns a single template, by id
.
Request:
Response:
GET {VEZA_URL}/api/preview/notifications/email_templates
Return all existing email templates, including IDs, usage, and attachment details.
Request:
Response:
All user-configured templates are returned within a values
array:
PUT {VEZA_URL}/api/preview/notifications/email_templates/{id}
Update an existing template. The PUT method requires an update_mask
indicating the fields to update.
Request:
Response:
The
update_mask
parameter is required and specifies which fields should be updated. The mask uses dot notation to indicate nested fields (e.g.,value.subject_template
).
POST {VEZA_URL}/api/preview/notifications/email_templates:test_template
Send an email to test recipients, using the specified template.
SendEmailFromTemplate will deliver a test email with the requested template to specified recipients. Emails can use:
an existing template.id
the current template for any usage
the built-in default
template for any usage
a custom template
specified in the request
Body parameters:
to
Array of strings
List of recipient email addresses
bcc
Array of strings
list of BCC recipient email addresses
cc
Array of strings
list of CC recipient email addresses
template
Sends an email with the specified template
or current template.id
or template.usage
.
default
boolean
if True
, use the system default template for the template.usage
To send an email using a new template, the template
object must contain values for body_base_64
, name
, usage
, and subject_template
.
The following requests change and preview the default templates for Access Workflow .
Base URL and Authorization: As custom templates functionality is subject to change, these endpoints are currently available under the /preview
namespace. To use the API, you will need to generate an .
Add a new email template, including a subject line template, body template, and any attachments. See for template usage and placeholders.
body template.
See below.
See below.
The body template and any image attachments are expected as . Most environments provide a simple method to encode an HTML file, for example:
See for all usages and default message content.
Placeholders: The message can use different placeholders depending on the usage. See for more information about possible placeholders.
Note that the HTML template must converted to a base64-encoded string. Replace template.txt
with the path to the actual file.
When default
is true, the email uses the original Veza-provided template for a valid :
When default
is false or not provided, the email uses the current template for a valid :
Customizing email notifications for Access Reviews using the Veza UI or API.
Administrators can customize email notifications sent to reviewers and other stakeholders during access reviews. These emails can include instructions, unique branding, and placeholders for metadata specific to the review (such as the review name, due date, or owner). Each notification type (usage) can have its own customized template.
Notification templates support HTML and CSS. They can include links to external images or you can upload small files to Veza. The Access Reviews > Settings > Notifications tab provides a straightforward interface for creating and editing templates.
This document includes steps to configure templates in Veza, and a full reference for event types, default templates, and supported placeholders.
Veza provides a built-in user interface for managing email notification templates. This is the recommended method for creating, editing, testing, and deleting customizations to notifications.
To add a template:
Browse to Access Reviews > Settings > Notifications tab
Click Add Template to create a new notification template
Create the template by filling in the required fields:
Template name: A descriptive name for the template
Notification subject: Email subject line (supports placeholders)
Notification body: The content of the email (supports HTML and placeholders)
Notification event: The type of event the email template will apply to (also referred to as the "usage")
In the Images section, click Add images (optional)
Provide a Name for the image (used to reference the image in the template)
Upload an image by dropping a file in the designated area, or clicking Browse to select a file (maximum file size: 64KB).
You can add multiple images by clicking Add images again.
Save the template. It will appear on the list of templates on the Notifications tab, where you can edit, remove, or test it.
You can test notification templates before implementing them in production:
Create and save your notification template through the UI
Navigate to the template list under Access Reviews > Settings > Notifications
Locate your template in the list and click the Test button in the Actions column
In the "Send Test Notification" dialog:
The template name will be pre-selected
Enter one or more recipient email addresses in the "Recipients" field (comma-separated)
Optionally add CC and BCC recipients
Click Send to deliver a test email
When testing templates, check that all placeholders are correctly replaced with sample values, verify HTML formatting displays as expected in email clients, and ensure that any links or buttons in the template are clickable and direct to the correct destinations. You should also confirm that any custom images are properly displayed.
To test a templates created via API:
Create the template using the appropriate API endpoint
Verify the template appears in the UI template list
Use the Test button in the UI to send a test email, or
Use the API test endpoint to send a test notification programmatically:
See each section below for built-in HTML templates and placeholders:
Each template you create is associated with a specific notification event (referred to as usage
in the API). In the UI, this appears as the Notification event dropdown when creating or editing a template.
The available notification events are: Here's the aligned table of usages with their corresponding values from the list below:
Review Started
ACCESS_WORKFLOW_STARTED
Sent when a review is published
Sent to all reviewers
Review Completed
ACCESS_WORKFLOW_COMPLETED
Sent when a review is marked complete
Not sent for expired reviews
Reviewer Changed
ACCESS_WORKFLOW_REVIEWER_CHANGED
Sent when a reviewer is reassigned
Sent to new reviewers and previously assigned reviewers
Owner Changed
ACCESS_WORKFLOW_OWNER_CHANGED
Sent when ownership changes
Notifies old and new owners
Reminder: No Activity
ACCESS_WORKFLOW_REMINDER_NO_ACTIVITY
Sent after a period of inactivity
Can be configured to escalate to managers
Reminder: Due Date
ACCESS_WORKFLOW_REMINDER_DUE
Sent based on due date proximity
Can be sent before, on, or after due date
Digest Notification
ACCESS_WORKFLOW_DIGEST_NOTIFICATION
Periodic summary of pending reviews
Configured globally at a tenant level
Approved Row
ACCESS_WORKFLOW_ROW_ACCEPTED_AND_SIGNEDOFF
Sent when a row is approved and signed off
Typically used for notification only
Rejected Row
ACCESS_WORKFLOW_ROW_REJECTED_AND_SIGNEDOFF
Sent when a row is rejected and signed off
Often used to trigger remediation workflows
The built-in template for all messages uses a single {{WORKFLOW_TEXT}}
placeholder in the subject and body. This default content depends on the notification event type, or "usage".
See the following list for the default workflow text for each notification event:
ACCESS_WORKFLOW_STARTED
Subject Text
Body Text
ACCESS_WORKFLOW_COMPLETED
Subject Text
Body Text
ACCESS_WORKFLOW_REVIEWER_CHANGED
Subject Text
Body Text (Previous Reviewer)
Body Text (New Reviewer)
ACCESS_WORKFLOW_OWNER_CHANGED
Subject Text
Body Text
ACCESS_WORKFLOW_REMINDER_NO_ACTIVITY
Subject Text
Body Text
ACCESS_WORKFLOW_REMINDER_DUE
Subject Text
Body Text
ACCESS_WORKFLOW_ROW_ACCEPTED_AND_SIGNEDOFF
Subject Text
Body Text
ACCESS_WORKFLOW_ROW_REJECTED_AND_SIGNEDOFF
Subject Text
Body Text
ACCESS_WORKFLOW_DIGEST_NOTIFICATION
Subject Text
From the Veza UI, you can add images directly through the "Add images" option. These will be automatically encoded and included in your template.
For API-based template management, small images under 64kb can be attached when configuring a template. The image must be base64-encoded and specified in the attachments
field of the API request.
To use an attachment you have uploaded in a template, specify it by attachment.name
, for example:
To embed high-resolution images in your templates, you should serve the content from a public URL, and use HTML to link and style it.
Use placeholders to include dynamic information in templates, such as decision timestamps, reviewer names, and other review or configuration metadata. Some placeholders are available depending on the template usage
, and some are available for all templates, such as {{WORKFLOW_NAME}}
and {{WORKFLOW_URL}}
.
Summary
Placeholder
Configuration Name
{{WORKFLOW_NAME}}
Configuration Text
{{WORKFLOW_TEXT}}
Configuration URL
{{WORKFLOW_URL}}
Configuration Time
{{WORKFLOW_TIME}}
Configuration Owner
{{WORKFLOW_OWNER}}
Configuration Description
{{WORKFLOW_DESCRIPTION}}
If a review (certification
) exists for a configuration (workflow
), the following placeholders are available:
Summary
Placeholder
Review Due On Date
{{WORKFLOW_CERT_DUE_ON_DATE}}
Review Last Activity On Date
{{WORKFLOW_CERT_LAST_ACTIVITY_ON_DATE}}
Review Last Activity On Time
{{WORKFLOW_CERT_LAST_ACTIVITY_ON_TIME}}
Review Last Activity By
{{WORKFLOW_CERT_LAST_ACTIVITY_BY}}
Review Last Updated On
{{WORKFLOW_CERT_LAST_UPDATED_ON_DATE}}
Review Last Updated On Full
{{WORKFLOW_CERT_LAST_UPDATED_ON_TIME}}
Review Last Updated By
{{WORKFLOW_CERT_LAST_UPDATED_BY}}
Review Started On Date
{{WORKFLOW_CERT_STARTED_ON_DATE}}
Review Started On Time
{{WORKFLOW_CERT_STARTED_ON_TIME}}
Review Created By
{{WORKFLOW_CERT_CREATED_BY}}
Review Completed On Date
{{WORKFLOW_CERT_COMPLETED_ON_DATE}}
Review Completed On Time
{{WORKFLOW_CERT_COMPLETED_ON_TIME}}
Review Completed By
{{WORKFLOW_CERT_COMPLETED_BY}}
Review Phrase
{{WORKFLOW_CERT_PHRASE}}
Unique placeholders are available for the ACCESS_WORKFLOW_DIGEST_NOTIFICATION
usage:
Placeholder
Description
{{DIGEST_NOTIFICATION_PERIOD}}
The time period covered by the digest (e.g., "January 1 - January 7, 2024")
{{ACCESS_REVIEW_URL}}
Link to the Access Reviews overview (varies based on user role)
{{SETTINGS_URL}}
Link to the Access Review settings page where digest emails can be configured. Only admins and operators can view this page.
{{DIGEST_NOTIFICATION_TABLE}}
Formatted HTML table showing in-progress reviews.
The {{DIGEST_NOTIFICATION_TABLE}}
placeholder generates a tabular summary of assigned reviews, including the:
Review name and link to the review
Due date (if applicable)
Total items needing review
Status indicators (e.g., New, Overdue)
Summary
Placeholder
Workflow Old Owner
{{WORKFLOW_OLD_OWNER}}
Summary
Placeholder
Review Last Activity Days
{{WORKFLOW_CERT_LAST_ACTIVITY_DAYS}}
Review Last Activity Phrase
{{WORKFLOW_CERT_LAST_ACTIVITY_PHASE}}
Review Last Activity Reviewer
{{WORKFLOW_CERT_LAST_ACTIVITY_REVIEWER}}
Review Last Activity Rows Total
{{WORKFLOW_CERT_LAST_ACTIVITY_ROWS_TOTAL}}
Review Last Activity Rows Need Sign Off
{{WORKFLOW_CERT_LAST_ACTIVITY_ROWS_NEED_SIGN_OFF}}
Review Last Activity Rows Signed Off
{{WORKFLOW_CERT_LAST_ACTIVITY_ROWS_SIGNED_OFF}}
Summary
Placeholder
Review Due In Phrase
{{WORKFLOW_CERT_DUE_IN_PHRASE}}
Review Due Date Phrase
{{WORKFLOW_CERT_DUE_ON_PHRASE}}
Review Due Days
{{WORKFLOW_CERT_DUE_DAYS}}
Summary
Placeholder
Review Old Reviewers
{{WORKFLOW_CERT_OLD_REVIEWERS}}
Review Current Reviewers
{{WORKFLOW_CERT_REVIEWERS}}
Usages ACCESS_WORKFLOW_ROW_ACCEPTED_AND_SIGNEDOFF
and ACCESS_WORKFLOW_ROW_REJECTED_AND_SIGNEDOFF
have unique placeholders:
Summary
Placeholder
Number of impacted rows
{{REVIEW_ACCEPTED_REJECTED_ROWS_PHRASE}}
List of approved or rejected rows
{{REVIEW_ACCEPTED_REJECTED_ROWS_DATA}}
List of approved or rejected rows, including notes
{{REVIEW_ACCEPTED_REJECTED_ROWS_DATA_WITH_NOTES}}
List of approved or rejected rows without node IDs
{{REVIEW_ACCEPTED_REJECTED_ROWS_DATA_EXCLUDE_NODE_IDS}}
List of approved or rejected rows without node IDs, including notes
{{REVIEW_ACCEPTED_REJECTED_ROWS_DATA_WITH_NOTES_EXCLUDE_NODE_IDS}}
Examples:
Number of impacted rows:
List of approved or rejected rows:
List of approved or rejected rows, including notes:
When including notes, rows approved or rejected without a note will fall back to:
List of approved or rejected rows without node IDs:
List of approved or rejected rows without node IDs, including notes:
Some placeholders represent a collection of strings and variables and are used to construct the default messages:
Phrase
Default Message
{{ACCESS_WORKFLOW_STARTED_PHRASE}}
"Access Workflow --> Certification: A new certification was started on workflow {{WORKFLOW_NAME}}
"
{{ACCESS_WORKFLOW_COMPLETED_PHRASE}}
"Access Certification: A certification on workflow {{WORKFLOW_NAME}}
has been completed"
{{ACCESS_WORKFLOW_REVIEWER_CHANGED_PHRASE}}
"Access Workflow: A new owner assigned to workflow {{WORKFLOW_NAME}}
"
{{ACCESS_WORKFLOW_OWNER_CHANGED_PHRASE}}
"Access Certification Reminder: Certification has had no activity from {{WORKFLOW_CERT_LAST_ACTIVITY_REVIEWER}}
{{WORKFLOW_CERT_LAST_ACTIVITY_PHASE}}
on workflow {{WORKFLOW_NAME}}
"
{{ACCESS_WORKFLOW_REMINDER_NO_ACTIVITY_PHRASE}}
"Access Certification Reminder: Certification has had no activity from {{WORKFLOW_CERT_LAST_ACTIVITY_REVIEWER}}
{{WORKFLOW_CERT_LAST_ACTIVITY_PHASE}}
on workflow {{WORKFLOW_NAME}}
"
{{ACCESS_WORKFLOW_REMINDER_DUE_PHRASE}}
"Access Certification Reminder: Certification {{WORKFLOW_CERT_DUE_IN_PHRASE}}
on workflow {{WORKFLOW_NAME}}
"
{{WORKFLOW_CERT_DUE_IN_PHRASE}}
"is due on {{WORKFLOW_CERT_DUE_ON_DATE}}
" (if future)
"was due on {{WORKFLOW_CERT_DUE_ON_DATE}}
" (if past)
{{WORKFLOW_CERT_LAST_ACTIVITY_PHASE}}
"for {{WORKFLOW_CERT_LAST_ACTIVITY_DAYS}}
day" (if singular)
"for {{WORKFLOW_CERT_LAST_ACTIVITY_DAYS}}
days" (if plural)
See , and below for all usages and default email content.
Advanced users can also manage notification templates programmatically using the API. See the for details.
The following template is used by default for emails:
Body Text: See section for details.