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 API Key.
API Reference
The Notification Templates API provides programmatic access to manage email templates for Access Reviews and Lifecycle Management workflows. The API supports creating, updating, listing, and testing custom email templates.
List email templates
get
Authorizations
AuthorizationstringRequired
Bearer token authentication using a Veza Personal API key.
Generate a new API key and save the value securely
Body
Responses
200
OK
application/json
default
Default error response
application/json
post
/api/preview/notifications/email_templates
Add a new email template, including a subject line template, body template, and any attachments. See Custom Templates for template usage and placeholders.
Converting to Base64
The body template and any image attachments are expected as base64-encoded strings. Most environments provide a simple method to encode an HTML file, for example:
Update an existing template. The PUT method requires an update_mask indicating the fields to update.
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).
Delete email template
delete
Authorizations
AuthorizationstringRequired
Bearer token authentication using a Veza Personal API key.
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
Test a new template
To send an email using a new template, the template object must contain values for body_template_base64, name, usage, and subject_template.
Note that the HTML template must be converted to a base64-encoded string. Replace template.txt with the path to the actual template file.
Test an existing template
Test the default template for a usage
When default is true, the email uses the original Veza-provided template for a valid usage:
Test the current template for a usage
When default is false or not provided, the email uses the current template for a valid usage:
Attachments
Email templates can include image attachments up to 64KB in size. Attachments must be base64-encoded and included in the attachments array when creating or updating templates.
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.
Attachment Schema
Field
Type
Description
type
AttachmentType
Optional attachment type.
name
string
Attachment name.
contents_base64
string
Base64-encoded contents.
Valid EmailTemplateAttachmentType values:
IMAGE (default)
Using Attachments in Templates
To reference uploaded attachments in your HTML template:
Template Usage Types
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.
Error Handling
The API returns standard HTTP status codes and detailed error messages:
200 - Success
400 - Bad Request (invalid parameters)
401 - Unauthorized (invalid API key)
404 - Not Found (template doesn't exist)
409 - Conflict (template with usage already exists)
Rate Limits
API requests are subject to rate limiting. When the limit is exceeded, the API returns a 429 Too Many Requests status code with retry-after headers.