Email Template Design Guide
Overview
The nFORM system supports the ability to define custom content to be delivered via automated emails sent from the nFORM system. The content in the emails can be static or dynamically driven based on data provided in the submission. This capability allows agencies to provide a highly formatted and targeted emails to online submitters.
This document provides the details of the configuration options for these email messages.
Templates
In this section you will find a list all the templates that can be modified by to customize the email messages sent from nFORM to best suit the agency. Most of these templates have their content decided during the configuration of the system and do not ever need to be modified after initial deployment.
A compiled version of the current email content/attributes can be found in the nFORM Email Base Template Attributes document.
External User Emails
The following are system generated emails that are sent to external users.
Template Name | Recipient | Description |
---|---|---|
ChangeEmailMessage.vm | User with Changed Email (old and new email addresses) | Message sent to submitter to have them confirm change of email. |
ChangePasswordMessage.vm | User with Changed Password | Message sent to submitter to have them confirm a change of password. |
FailedCopyOfRecordMessage.vm | All External Users Associated to the Submission | Message sent to the submitter when the COR creation fails for a submission. |
FailedSigningActivity.vm | User Who’s Submission Signature Failed | Message sent when a signature fails to complete. |
NewPassword.vm | User Changing/Receiving Password | Message sent to a user with a temporary password based on a password reset request from a user or an administrator. |
PendingDeleteMessage.vm | All External Users Associated to the Submission | Message sent to users who have draft submissions that are more than x days old, informing them that the draft submission will be deleted if they do not make a change to it. Number of days is configurable. |
RequestSubmissionInvitationMessage.vm | User Selected Authorized User | In some situations (e.g., authorization prefilled for a submission), when a user gets to the "Certify & Submit" step of the Submission Wizard, if he/she does not have rights to submit the form (for prefilled information - e.g., organization, permit, etc.) they will be presented with a list of users who are authorized to submit the form (for the prefilled information). That user will select an authorized user and click the "Email user" button next to their name. The user will be presented with the email message preview dialog and will click the "Send" button to send the email. |
ReviseApplicationUserMessage.vm | All External Users Associated to the Submission | Message sent when a submission begins the revision process (e.g., revision created). |
SigningCancellationMessage.vm | All Submission Signers (and invited to sign) | Message sent when a signing process is cancelled. |
SigningCompletionMessage.vm | All Submission Signers (and invited to sign) | Message sent when signing process is completed. |
SigningInvitationMessage.vm | User Invited to Sign | Message sent when an individual is invited to sign a submission. |
SigningInvitationRescindMessage.vm | All Submission Signers (and invited to sign) | Message sent when an individual’s invitation to sign a submission is rescinded. |
SigningSignatureReceivedMessage.vm | All Submission Signers (and invited to sign) | Message sent when a signature is received on a submission. |
SigningSignatureRemovalMessage.vm | All Submission Signers (and invited to sign) | Message sent when a signature is removed from a submission. |
SubmissionReviewCompleted.vm | All External Users Associated to the Submission | Message sent when a submission review is completed by a submission processor. |
SubmitApplicationUserMessage.vm | All External Users Associated to the Submission | Message sent when a submission is received by nFORM. |
UpdateAccountLockMessage.vm | Locked/Unlocked User | Message sent to user when their user account is locked or unlocked. |
UserAddedToSubmission.vm | Added User | Message sent when an additional submitter is invited to contribute on a submission by the submission's creator or users who have permissions to invite new users to work on the submission. |
UserRegMessage.vm | Registered User | Message sent when a new user successfully registers in nFORM. |
UserRoleAssignmentMessage.vm | User with Changed Role | Notifies user of changes to the authorization they have. |
Administrative Emails
The following email templates pertain to administrative tasks and are sent to the configured administrative email address.
Template Name | Recipient | Description |
---|---|---|
FailedSubmissionPaymentCalculation.vm | Administrator | Message sent when a payment cannot be calculated. |
RequestAuthorizedUserMessage.vm | Administrator | Message sent when a user requests verified user rights to submit forms. |
RequestAuthorizedSubmitterMessage.vm | Administrator | Message sent when a user requests authorized submitter user rights to submit forms. |
RequestElectronicSignatorMessage.vm | Administrator | Message sent when a user requests electronic signatory rights to submit forms. |
Submission Processing Emails
The following email templates pertain to submission processing workflow steps. When and to whom these emails are sent is dictated by the way a form’s processing steps and notifications are set up by the form designer.
Template Name | Recipient | Description |
---|---|---|
ActivateStepMessage.vm | Specified in Processing Step Manager | Message sent when a step is activated, and a notification is configured to be sent. |
CompleteStepMessage.vm | Specified in Processing Step Manager | Message sent when a step action of Send Email is attached to a workflow step with the activation of Step Completed and the step it is attached to is completed. |
StepApproachingTargetDateMessage.vm | Specified in Processing Step Manager (usually an internal user) | Message sent when a step action of Send Email is attached to a workflow step with the activation of Near Target Date and the step it is attached to is approaching its target date. |
StepFeeSatisfiedMessage.vm | Specified in Processing Step Manager | Message sent when a step action of Send Email is attached to a workflow step with the activation of Fee(s) Satisfied and this action occurs for a submission. |
StepPastTargetDateMessage.vm | Specified in Processing Step Manager (usually an internal user) | Message sent when a step action of Send Email is attached to a workflow step with the activation of Past Due and the step it is attached to has passed its completion date. |
Non-Email Documents
The following templates are not used for emails and SHOULD NOT BE CHANGED by customers.
Template Name | Description |
---|---|
CustomLogoutMessage.vm | Message sent to user when logging out of system. Note: this is a custom template only used by a select few customers. |
FirstTimeLogin.vm | This is not an e-mail. A first login message in a popup that the user must read and can close. This message can be set to “do not show again”. |
FormVersion.vm | Template used for downloaded Submission PDF document. |
SubmissionVersionCOR.vm | Template used for downloaded Submission PDF document. |
Available Properties
Placeholders may be used in email templates to refer to specific data that can only be supplied by nFORM at the time of the email’s generation. Such properties include the name of the recipient of the email, the submission or form triggering the email, etc. Properties of this type can be identified in the templates as they are preceded by a dollar sign ($).
The following is a list of available properties that can be referenced by the email templates. Note: properties are only available if in the context of a particular dataset. For example, Submission Properties are available in the context of a submission email (e.g., submission received), but are not available in the context of a user management email (e.g., change password).
Submission Properties
Property | Description |
---|---|
$Model.SubNumber | GUID Submission number in nFORM |
$Model.SubVersion | Model object for the current revision of the submission. |
$Model.SubVersion.Id | The ID for the current revision of the submission. |
$Model.FormattedSubmissionNumber | Formatted version of the submission number |
$Model.SubmissionVerison.Submission.CreatedOn | Date the draft submission was created. |
$Model.SubDate | Original Submission Date |
$Model.SubName | Submission Name assigned by submitter. |
$Model.SubmissionVersion.CreatedBy.FullName | Full name of user who created the submission. Not necessarily the submitter. |
$Model.SubSubmitter | Submitter Full Name. Not necessarily the same user who created the submission. |
$Model.SubStatus | Submission Status |
$Model.SubLockStatus | Submission Locked Status |
$Model.SubRefNumber | Internal Reference Number for submission. |
$Model.SubReason | Submission Reason |
$Model.SubmissionVerison.Submission.FinancialStatus.Description | Submission financial status description. |
$Model.SubmissionVerison.Submission.ProcessingFee | Submission Fee |
$Model.SubAltId | Alternate ID value for submission |
$Model.SubmissionVerison.Name | Name of form if not overridden by the submitter renaming the submission |
$Model.SubResponsibleStaff | Step Responsible Staff person’s full name. |
$Model.SubmissionVerison.SubmissionVersionCor.Id | The ID of the submissions COR document, if one exists. |
$!Model.SubmissionVerison.SubmissionVersionCertFile.Id | The ID of the submissions Hard Copy Signature document, if one exists. |
$!Model.SubmissionVerison.Submission.RemainingPaymentRequired | Indicates whether fee is still due. |
User Properties
Property | Description |
$Model.AppPrincipal.FullName | User receiving message's full name in nFORM. |
$Model.AppPrincipal.Login | User's login name. May be different from primary e-mail. |
$Model.AppPrincipal.PrimaryEmail | User's Primary Email. May be different from user's login. |
$Model.PhoneNumber | User's phone number as stored in the user profile. |
$Model.AppPrincipal.LockedDate | Date that a user was set to locked. |
$Model.ConfirmationURL | A temporary URL that can be used to automatically confirm a user account. |
$Model.ConfirmCode | The temporary user account registration confirmation code. |
$Model.TemporaryPassword | A temporary password value for a user which is provided during the password reset process. |
$Model.AppPrincipal.LockedDate | The date the user account was locked. |
Submission Processing Step Properties
Property | Description |
$Model.Step.Name | Processing Step Name |
$Model.Step.Days | The number of days after the prior “level” is completed that the current step is targeted for completion. |
$Model.FormVersion.SendReminderDays | The number of days prior to a step target completion date that an email will be sent to a user reminding them of the approaching target completion date. |
$Model.SubmissionVerison.NextStepTargetDate | Days to complete current processing step. |
$Model.EmailCustomText | The custom email text assigned to a process step action for inclusion in an email. |
$Model.AttachmentURL | URL to the associated document template. |
$Model.AttachmentDisplayName | Name of the associated document template. |
$Model.AttachmentDisplayName | The Name of a document generated during a submission step. |
${Model.AttachmentURL} | The URL for a generated document during a submission step. |
Administrative Properties
Property | Description |
$Model.AdminEmailAddress | Configured administrative email address. |
$Model.ReturnURL | Base install URL |
Form and Organization Properties
Property | Description |
$Model.SubmisionVerison.FormVersion.FormItem.Organization.LatestPublishedVersionName | The Organization published version name. |
$Model.SubmissionVerison.FormVersion.Name | The name of the form. |
$Model.SubmissionVersion.FormVersion.Addresses | List of all addresses associated with the form version. |
$Model.SubmissionVersion.FormVersion.FormItem.Organization.LatestPublishedVersion.Contacts | List of all contacts associated with the organization version. |
$Model.SubmissionVerison.FormVersion.FormItem.LatestPublishedVersion | The model object for the latest version of the current form. |
Other Properties
Property | Description |
$Model.Now | The current date and time. |
Configuration Properties
All properties available in the vars.config (or overrides) can be exposed to the email templates. These can be exposed by referencing the existing configuration properties in the email.template.config.settings attribute in the following format:
<add key="email.template.config.settings" value="
app.name,
app.organization.state,
app.organization.official,
app.organization,
email.admin.address,
email.support.address,
message.email.appBaseUrl,
security.externalLoginControllerName,
jobs.deleteOldDrafts.deleteDays
"/>
Any attributes referenced here can be accessed from within the email by referencing the configuration value without periods and capitalizing secondary words. For example:
The app.name configuration setting will be referenced as:
“$!Model.Config.AppName”
The security.externalLoginControllerName configuration setting will be referenced as:
“$!Model.Config.SecurityExternalLoginControllerName”
Subject Line Properties
The following properties are generally available for the subject line for an email. Note: Not all properties are available for To Emails (e.g., Submission Number is not available to submissions unrelated to a submission).
Property Reference | Property Name | Description |
Misc. Configuration Property | Misc. Configuration Property | Can be included as described in Configuration Properties section above. |
{0} | Submission Number | Submission Number can be included for submission emails. |
{1} | Full User Name | Full User Name can be included for user emails. |
Template Design
Designing an email template can be as simple or as complex as the designer wants the email template to be. By default, some of the email templates employ complex conditionality and formatting to present a clear and concise message to internal and external emails receiving the messages. The vm files can employ a combination of HMTL markup and Velocity Template Language to produce complex styling and conditionality.
HTML
When utilizing HTML in your email templates, you can user header files and styling just like you do when designing web pages. However, image/style management can be a challenge. It is best to do inline styling and use image references that are well established. Use of absolute paths to images that you can directly link to and styles that are embedded in the template itself are recommended.
For an example of some basic HTML used in an email template, see the default template for the SubmissionReviewUnLock.vm template. This template uses the following HTML markup.
<br /> - creates a line break
<h3></h3> - assign a header 3 style to text
<div> - creates a div box
Velocity Template Language
Most of the syntax you will see in the default templates is Velocity Template Language (VTL). For additional reference about the velocity engine, see here.
The following are a list of a few common VTL constructs that can be used in your templates.
Setting a Variable
The syntax for setting a variable is as follows:
Example: I want to set a default value of false for showing internal notations, to be potentially overwritten later:
Comments
The syntax for a single line comment is:
The syntax for a multi-line comment is:
Conditional Logic
Example: I want to display the contact email address associated with a form, if it exists.
Loops
Example: I want to display each address item that is associated with a form.