Notification Templates
Changing the default Veza reminder emails and notifications.
You can use the Notification Templates API to customize the subject and body contents of emails triggered by Access Reviews events, such as notifications when reviewers are reassigned, and reminders as a review due date approaches.
Emails can trigger based on actions, deadlines, and review states (mapped to the template's usage
). You can customize a template for each usage, such as when a reviewer is re-assigned, or for inactivity reminders. Each usage can have a single custom template.
This document describes the notification types that support custom templates, and the placeholders and default messages for each. See Notification Templates API for API operations and examples.
Templates support HTML and CSS. To use images in an email template, you can add small files as attachments, or reference an image hosted elsewhere
Each reminder and Orchestration Action enabled in a review configuration will trigger independently.
Templates for each notification type can use placeholders to include snippets of text and variables.
The template is not validated upon submission. Use the Test Email Template operation to ensure that placeholders and attachments are rendering as expected for each usage.
Example request body for adding a template:
Custom domains for email notifications By default, emails from Veza originate from noreply@vezacloud.com
. The Veza support team can help you change this to a domain for your organization. To enable a custom domain, you will need to provide Veza with credentials for a user account with permission to send email and an email relay Veza can authenticate to.
Default notifications and usage
The built-in template for all messages uses a {{WORKFLOW_TEXT}}
placeholder, representing an email body that depends on the usage
.
Usage
Subject
Body
ACCESS_WORKFLOW_STARTED
"Access Workflow --> Certification: A new certification was started on workflow {{WORKFLOW_NAME}}
"
"A new certification was started for workflow {{WORKFLOW_NAME}}
"
ACCESS_WORKFLOW_COMPLETED
"Access Certification: A certification on workflow {{WORKFLOW_NAME}}
has been completed"
"A certification has been completed on workflow {{WORKFLOW_NAME}}
"
ACCESS_WORKFLOW_REVIEWER_CHANGED
"Access Certification: Assigned reviewers changed on certification for workflow {{WORKFLOW_NAME}}
"
- When setting to email old reviewer: "On a certification for workflow {{WORKFLOW_NAME}}
the assigned reviewers has changed from {{WORKFLOW_CERT_OLD_REVIEWERS}}
to {{WORKFLOW_CERT_REVIEWERS}}
."
- Otherwise: "{{WORKFLOW_TEXT}}
: On a certification for workflow {{WORKFLOW_NAME}}
the assigned reviewers has changed to {{WORKFLOW_CERT_REVIEWERS}}
."
ACCESS_WORKFLOW_OWNER_CHANGED
"Access Workflow: A new owner assigned to workflow {{WORKFLOW_OWNER}}
"
"The owner of access workflow {{WORKFLOW_NAME}}
has changed from {{WORKFLOW_OLD_OWNER}}
to {{WORKFLOW_OWNER}}
."
ACCESS_WORKFLOW_REMINDER_NO_ACTIVITY
"Access Certification Reminder: Certification has had no activity from {{WORKFLOW_CERT_LAST_ACTIVITY_REVIEWER}}
{{WORKFLOW_CERT_LAST_ACTIVITY_PHASE}}
on workflow {{WORKFLOW_NAME}}
"
"User {{WORKFLOW_CERT_LAST_ACTIVITY_REVIEWER}}
hasn't made progress on the certification started on {{WORKFLOW_CERT_STARTED_ON_DATE}}
{{WORKFLOW_CERT_LAST_ACTIVITY_PHASE}}
. User {{WORKFLOW_CERT_LAST_ACTIVITY_REVIEWER}}
has {{WORKFLOW_CERT_LAST_ACTIVITY_ROWS_NEED_SIGN_OFF}}
of {{WORKFLOW_CERT_LAST_ACTIVITY_ROWS_TOTAL}}
rows that need to be signed off."
ACCESS_WORKFLOW_REMINDER_DUE
"Access Certification Reminder: Certification {{WORKFLOW_CERT_DUE_IN_PHRASE}}
on workflow {{WORKFLOW_NAME}}
"
"The certification started on {{WORKFLOW_CERT_STARTED_ON_DATE}}
for workflow {{WORKFLOW_NAME}}
{{WORKFLOW_CERT_DUE_ON_PHRASE}}
."
ACCESS_WORKFLOW_ROW_ACCEPTED_AND_SIGNEDOFF
"Access Review: Access for {{REVIEW_ACCEPTED_REJECTED_ROWS_PHRASE}}
was approved in {{WORKFLOW_NAME}}
Review"
"In the access review {{WORKFLOW_NAME}}
, access for {{REVIEW_ACCEPTED_REJECTED_ROWS_PHRASE}}
was approved.
Please find more details below:
{{REVIEW_ACCEPTED_REJECTED_ROWS_DATA}}
"
ACCESS_WORKFLOW_ROW_REJECTED_AND_SIGNEDOFF
"Access Review: Access for {{REVIEW_ACCEPTED_REJECTED_ROWS_PHRASE}}
was rejected in {{WORKFLOW_NAME}}
Review"
"In the access review {{WORKFLOW_NAME}}
, access for {{REVIEW_ACCEPTED_REJECTED_ROWS_PHRASE}}
was rejected.
Please revoke the access described below:
{{REVIEW_ACCEPTED_REJECTED_ROWS_DATA}}
"
Built-in template
The template following template applies for all notifications unless a custom template exists for the usage.
{{WORKFLOW_TEXT}}
is a placeholder for default text, which varies based on the usage.{{WORKFLOW_TIME}}
is the time in GMT
Note that depending on how you are submitting your request, you may have to escape any double quotes "
in your HTML templates for JSON compatibility, for example:
Attachments: Small images under 64kb can be included as attachments within the template. To embed high-resolution images in your templates, you should serve the content from a publicly available location, and use HTML to link and style it. Attachments must be base64-encoded and specified in the attachments
field of the API request. To use an attachment in a template, specify it by attachment.name
, for example:
Placeholders
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}}
.
Placeholders for all templates
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}}
Dates and Times: For placeholders that refer to a timestamp, you can show the full "Time" or simple "Date" format:
{{WORKFLOW_CERT_STARTED_ON_TIME}}
result: "Mon, Jan 2nd 2006, 3:04:05PM"{{WORKFLOW_CERT_STARTED_ON_DATE}}
result: "2006-01-02"
ACCESS_WORKFLOW_OWNER_CHANGED placeholders
Summary
Placeholder
Workflow Old Owner
{{WORKFLOW_OLD_OWNER}}
ACCESS_WORKFLOW_REMINDER_NO_ACTIVITY placeholders
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}}
ACCESS_WORKFLOW_REMINDER placeholders
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}}
ACCESS_WORKFLOW_REVIEWER_CHANGED placeholders
Summary
Placeholder
Review Old Reviewers
{{WORKFLOW_CERT_OLD_REVIEWERS}}
Review Current Reviewers
{{WORKFLOW_CERT_REVIEWERS}}
Placeholders: Rejected and Accepted Rows
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}}
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:
Placeholders: Phrases
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)
Last updated