Skip to main content

Template catalogue and parameters

These are the names you map. Each one is a message Ovok sends, with a fixed set of parameters that your template can use. GET /v1/email/templates returns the same list as JSON, with an example of every parameter set.

Messages​

TemplateReceives itSent when
INVITE_TO_PROJECTPractitionerA team member is invited to the project.
RESET_PASSWORDPractitionerA password reset is requested.
PATIENT_RESET_PASSWORDPatientA patient requests a password reset.
PATIENT_WELCOMEPatientA patient account is created, by registration or a first Apple or Google sign-in. Nothing is sent unless it is mapped.
CLINICIAN_SIGNUP_INVITEPractitionerA work-email registration becomes a practitioner invitation: business-email sign-up.
PATIENT_INVITEPatientA practitioner invites a new patient. Carries a set-password link.
PATIENT_ASSIGNMENT_REQUESTPatientA practitioner invites a patient who already has an account. Carries an accept link.
PRACTITIONER_INVITED_BY_PATIENTPractitionerA patient shares their record with a new address. Carries a set-password link.
PRACTITIONER_PATIENT_SHAREDPractitionerA patient shares their record with an existing practitioner. Carries an accept link.
VIDEO_CALL_APPOINTMENT_INVITEPatientA video-call appointment is created. Carries a TAN.
VIDEO_CALL_APPOINTMENT_UPDATEPatientA video-call appointment changes. Carries a TAN.
VIDEO_CALL_APPOINTMENT_CANCELPatientA video-call appointment is cancelled.
ACCOUNT_DELETIONPractitionerAn account is scheduled for deletion, or deleted; the deleted parameter says which.
PATIENT_ACCOUNT_DELETIONPatientThe same for a patient's account.
ACCOUNT_DELETION_IMMEDIATEPractitionerA dashboard user's account is deleted immediately.
OVOK_ORGANIZATION_CODESPractitionerSomeone asks for the tenant codes of their organizations and the first account found is not a patient.
PATIENT_ORGANIZATION_CODESPatientThe same, when the first account found is a patient.
TRENDS_PDF_EXPORTPractitionerA trends PDF export is emailed from the care dashboard.
CUSTOMER_SUPPORT_EMAILOvok supportA user sends a support message from the dashboard.
OVOK_WELCOME_TO_OVOKPractitionerThe Ovok dashboard welcome message.
OVOK_FREE_TRIAL_EXPIRES_IN_3_DAYSPractitionerA free trial ends in three days.
OVOK_FREE_TRIAL_ENDEDPractitionerA free trial has ended.

The OVOK_ messages belong to the Ovok dashboard. They can be customised like any other.

Patient variants​

Four patient messages fall back to the shared practitioner template when a mapping does not map them, so nothing breaks while you roll out patient wording. The parameters are the same either way.

Patient templateSent as, when it is not mapped
PATIENT_RESET_PASSWORDRESET_PASSWORD
PATIENT_ACCOUNT_DELETIONACCOUNT_DELETION
PATIENT_ORGANIZATION_CODESOVOK_ORGANIZATION_CODES
PATIENT_INVITEINVITE_TO_PROJECT

Parameters​

Every message carries three common parameters. They are always sent, and each is null when Ovok has nothing to put there:

ParameterValue
baseUrlThe app URL of the audience: the patient app for a patient message, the practitioner dashboard for a practitioner message. null when none is configured. Set PATIENT_APP_URL and PRACTITIONER_APP_URL.
projectNameThe name of the project.
tenantCodeThe project's tenant code.

The rest are per message. A parameter ending in ? can be null.

TemplateParameters
INVITE_TO_PROJECT, PATIENT_INVITE, PATIENT_ASSIGNMENT_REQUESTfirstName, lastName, inviterName, invitationUrl
PRACTITIONER_INVITED_BY_PATIENT, PRACTITIONER_PATIENT_SHAREDfirstName, lastName, patientName, invitationUrl
CLINICIAN_SIGNUP_INVITEfirstName, lastName, invitationUrl, continueAsPatientUrl
RESET_PASSWORD, PATIENT_RESET_PASSWORDfirstName, lastName, resetPasswordUrl?, userSecurityRequestId, userSecurityRequestSecret
PATIENT_WELCOME, OVOK_WELCOME_TO_OVOK, ACCOUNT_DELETION_IMMEDIATEfirstName
ACCOUNT_DELETION, PATIENT_ACCOUNT_DELETIONfirstName, days, wipe, deleted
OVOK_FREE_TRIAL_ENDED, OVOK_FREE_TRIAL_EXPIRES_IN_3_DAYSfirstName, lastName
OVOK_ORGANIZATION_CODES, PATIENT_ORGANIZATION_CODESfirstName, organizations (a list of name and code)
VIDEO_CALL_APPOINTMENT_INVITE, VIDEO_CALL_APPOINTMENT_UPDATEcomment, practitionerName, startDateCET, startTimeCET, endDateCET, endTimeCET, dashboardUrl, tan, tanExpirationDateCET, tanExpirationTimeCET
VIDEO_CALL_APPOINTMENT_CANCELcomment, practitionerName, startDateCET, startTimeCET, endDateCET, endTimeCET, dashboardUrl
TRENDS_PDF_EXPORTauthorName, patientName, startDate, endDate, practitionerName
CUSTOMER_SUPPORT_EMAILmessage, username, email, project, role, accessPolicy, version, environment

The invitation links in these messages point at your app: a set-password link is <app URL>/setpassword/<id>/<secret> and an accept link is <app URL>/accept-invite?invite=<id>&code=<code>. See Invitations.

A send whose parameters do not match is refused. Ovok checks the parameters against this list before anything goes out, and a message that fails is not sent.

Writing a parameter​

Each provider writes a parameter its own way. The table shows firstName:

ProviderSyntax
SendGrid{{firstName}}
Brevo{{ params.firstName }}
Resend{{{firstName}}}
SMTP{{firstName}}
  • SMTP templates use Handlebars. {{x}} is HTML-escaped, except in the subject, which is plain text. The templates are strict: a parameter the message does not have fails the render instead of printing blank.
  • Resend accepts text and numbers only. A list parameter x arrives as xList, one item per line, and a null arrives as an empty string. Resend reserves the names FIRST_NAME, LAST_NAME, EMAIL, UNSUBSCRIBE_URL, contact and this, and allows 50 variables per template.