Workflow email notification templates
All FileHold System email notification templates are stored in resource files (.resx). The email messages are sent using HTML format which allows to prepare more readable information for users. Each of template can contain replacement fields that are described below and are replaced to appropriate values during email processing.
You should be skilled with XML, HTML, and CSS coding in order to use the information in this knowledge article.
When you upgrade FileHold from one version to another you should apply any notification customizations to the newly upgraded version when the upgrade is complete otherwise the default product notifications will be used.
FileHold Professional Services are available for any customer that would like changes made to their email notifications. FileHold Cloud customers will need the assistance of the professional services team to make changes.
All text and templates for this area are stored in: C:\Program Files\FileHold Systems\Application Server\LibraryManager\App_GlobalResources\WorkflowNotification.resx
Notification areas
There are several areas that have a separate notification for users. Notice that a key name of replacement field should be placed in [ ] signs and there should not be any space or white character between them, i.e. [KeyName]
Templates
There are email templates specified in the resource file. The action types for each template are listed below the template name.
- EmailBodyAction
- Task Assigned
- Task Delegated
- Task Restarted
- EmailBodyInformationWorkflow
- Workflow Canceled
- Workflow Completed
- Workflow Restarted
- EmailBodyInformationActivity
- Activity Completed
- Task Canceled
- Task Overridden
- EmailBodyInformation
- Task Blocked
- Task Voided
- EmailBodyInformationDue
- Task Due Soon (for participant)
- EmailBodyInformationWorkflowDue
- Task Due Soon (for workflow initiator)
- EmailBodyInformationDocument
- Document Added
- Document Removed
- Document Checked Out
- Document Checked In
- EmailBodyWarning
- Task Overdue
- EmailSubject - template for a subject of email message
- EmailBodyHeader - template for a header of email message
- EmailBodyFooter - template for a footer of email message includes [FriendlyName] and [InformationEmail] key names.
- WorkflowHistoryActivity - template for including previous workflow comments and feedback attachments. Used with the [WorkflowHistory] tag.
These templates should be prepared in HTML format with CSS styles with the exception of the EmailSubject template. CSS formatting should be included inline with the HTML to ensure the formatting is presented in a uniform way in a wide variety of email clients. The following is an example taken from a table cell in the EmailBodyAction template. The CSS is bold.
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-right: none;">
Workflow
</td>
The resource file is an XML file, so you cannot directly insert HTML code. All HTML characters that conflict with XML formatting characters must be escaped. The code snippet above would be written as follows inside the resource file.
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-right: none;">
Workflow
</td>
Keys
The following keys can be used in the template messages. The level describes the place in the notification where the information is valid: the overall notification or the individual action. The action level is only useful in the body of the notification. For example, a notification email can contain many action types for one or more workflows. As a result the workflow name would not be useful in the subject of the email.
Some keys may have modifiers. The modifiers are always option as there will be a default (no modifier) behavior for the key. The general format to include a tag in a resource file will be [<key>{|<modifierlist>}] where square braces are the tag delimiters as they are now. Greater and less characters mean the attribute is required and curly braces mean the attribute is not required. Multiple modifiers are separated by commas.
Key name | Description | Level | Samples |
---|---|---|---|
ActionDate | Date when a task has been performed. | Action | |
ActionType | Name of the action that have been performed. | Action | Activity Completed Document Removed Document Checked Out Document Checked In Document Added Task Voided Task Reserved by Someone Else Task Restarted Workflow Restarted One-time Review Added |
ActivityDescription | The contents of the activity description field. This value does not appear in any of the default notification templates. | ||
ActivityTitle | The contents of the activity title field. | If the title field is blank, the value is derived as follows: “<activity_type> <activity_number> of <total_activities>”. For example, Approve 3 of 9. A modifier can be used to control the behavior: Both – This is the default value described above. Title – Force the value to always be the title even if it is blank. Number – Force the value to be the derived name regardless of whether or not title is blank. | |
ApprovalStatus | Text describing the approval status. | Action | Not Submitted For Approval, Approval Postponed Cancelled |
AssignedDate | Date when a task has been assigned to a user. | Action | |
CancelledDate | Date when a task/workflow has been canceled. | Action | |
CompletedActivitiesCount | Number of activities that already have been completed in the workflow. | Action | |
DocumentName | Name of a document related to the workflow. | Not used | |
DueDate | Before date when a task should be performed. | Action | |
FriendlyName | Replaced with the friendly name value. This is set in the System configuration > Settings > Notifications area. | ||
InformationEmail | Replaced with the information email value. This is set in the System configuration > Settings > Notifications area. | ||
InitialDocumentName | The name of the initial document. | Modifiers include: Value – The name of the initial document. This is the default. MobileLink – Include a link to the initial document in the mobile web client. If there is no Value modifier the expanded value will be “Mobile”. FdaLink and WebLink as for the mobile web client. Note that link modifiers are exclusive. View – Used with the WebLink modifier to indicate that the document should be opened in the viewer if supported or downloaded if not. Download – Used with the WebLink modifier to indicate that the document should be downloaded. Locked – Used with the View modifier to open the viewer in locked user interface mode. For example, [InitialDocumentName|WebLink,View,Locked,Value] expands to ThisIsMyDocument. | |
InitiationDate | Date when a workflow has been initiated. | Action | |
Initiator | Name of a user that has initiated the current workflow. | Action | |
IsApproved | Information if a task has been approved or not. | Action | Yes No |
NotificationType | Text describing the notification frequency. | Notification | Daily Summary, Immediately, Weekly Summary |
NumberNotification | Number of task notifications that have been included in the one email message. | Notification | |
OnBehalfOf | Name of a user on whose behalf a task is performed. | Action | |
OverriddenDate | Date when a task has been overridden. | Action | |
ParticipantResponses | A table listing all participants that completed tasks for the activity. The attachment link is a direct web client download. | ||
ParticipantRole | Type of a specified user role in a workflow. | Action | Delegated, Specified |
Performer | Name of a user who has overridden or canceled a task. | Action | |
TaskDescription | Description of a task. | Action | |
TaskLink | Link to a specified task in the system. The actual value may include links for the Web Client, FDA, or Mobile FileHold based on the system configuration. | Action | Modifiers include Mobile, Web, and Desktop. For example, “View task in [TaskLink].” is replaced with “View task in Web, Mobile, or Desktop client.” When the modifiers are used the replacement value will be only a single link. For example, to emulate the 16.0 behavior use the following: “View task in [TaskLink|Web] or [TaskLink|Deskop] client.” |
TaskTrueUser | Name of the user who did not approve the workflow when a task was performed in behalf of other user. | Action | |
TaskType | Type of activity for the assigned task. | Action | Approve One-time Review |
TotalActivitiesCount | Total number of activities in a workflow. | Action | |
VariableDateColor | As for VariableStatusColor except the conditional colors are tied to the modifiers OnTime, Overdue, and Other. The Other case applies when the workflow is cancelled. | The actual color values would be in named resources with a name in the following format “VariableDateColor_<ontime_status>_<modifier>”. For example, [VariableDateColor|Foreground] would be replaced with a value in a resource named VariableDateColor_Overdue_Foreground if the activity was completed after it was due. By default, the Foreground colors will by #FFFFFF and Background colors will be defined as follows: VariableDateColor_OnTime_Background – rgb(200,255,214) VariableDateColor_Overdue_Background – rgb(255,205,206) | |
VariableStatusColor | This key is intended to provide a conditional processing for CSS to color the message differently depending on the actual status value. The actual values will be stored in resources that are a combination of constant text, the status name, and a modifier. It is intended to be used in combination with an inline CSS color, background-color or similar directive. | The actual value of the modifier is arbitrary and only needs to represent a portion of a valid resource name. All resource names will have the following format “VariableStatusColor_<status>_<modifier>”. For example, [VariableStatusColor|Background] would be replaced with the value in a resource named VariableStatusColor_Approved_Background if the status was approved. By default, all Foreground colors will be resource values will be “#FFFFFF” and all Background colors will be “#000000” except the following: VariableStatusColor_Approved_Background – rgb(200,255,214) VariableStatusColor_ApprovalPostponed_Background – rgb(255,255,204) VariableStatusColor_NotApproved_Background – rgb(255,205,206) | |
WorkflowDocuments | The total number of documents added to the workflow. | Modifiers include: Value – The number of documents will be expanded as text only. This is the default. WebLink – Include a link to the workflow documents in the web client. If there is no Value modifier the expanded value will be “Web”. MobileLink and FdaLink as for the web client. Note that link modifiers are exclusive. For example, [WorkflowDocuments|Value,FdaLink] expands to 7 assuming there are a total of seven documents in the workflow. | |
WorkflowHistory | A list of all completed activities at the point the notification is generated. If there are no completed activities the value is empty. | The list starts with the title “Workflow prior task history”. The remaining list is a table with three rows for each completed activity. The workflow history tag is not included in any default notification templates. The first row is the activity title as for [ActivityTitle|Both]. The second row is derived from the activity status and completed date as “<status> on <completed_date>”. The third row is the participant responses. CSS styles will be available for the title, activity row, status row, and participant responses row allowing the template designer to control the looks of those elements. | |
WorkflowLink | This is an existing key referring to the list of documents associated with the workflow and includes both web and desktop links. This key is no longer needed for the default notification templates, but it is maintained for backwards compatibility. Its current behavior will be unchanged regardless of other settings. | Not used | |
WorkflowName | Name of a workflow.
| Action | Modifiers include: Value – The workflow name will be expanded as text. This is the default when no modifiers are present. FdaLink – Include a link to the workflow status in the FDA. If there is no Value modifier the value will be “Desktop”. WebLink and MobileLink as for the FDA. Note that link modifiers are exclusive. For example, [WorkflowName|MobileLink] expands to Mobile. The value can be defined when the workflow is initiated if the workflow template allows it. |
Workflow template modification to include workflow history
In the EmailBodyAction section of the WorkflowNotification.resx add the keyname [WorkflowHistory]. For example:
<data name="EmailBodyAction" xml:space="preserve">
<value><table cellpadding="0" cellspacing="0" width="100%" style="font-family:Arial;font-size:10pt;">
<tr>
<td colspan="3" style="background-color: #4AAD52; color: white; padding: 3px 3px;">
Action: [TaskType] [ActionType]
</td>
</tr>
<tr>
<td colspan="3" style="padding: 5px 5px;">[NotificationRecipient] View task in [TaskLink].</td>
</tr>
<tr>
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-right: none;">
Workflow
</td>
<td style="border: solid 1px #000000; padding: 3px 3px; border-right: none;">
[WorkflowName|WebLink,Value]
</td>
<td align="right" style="border: solid 1px #000000; padding: 3px 3px; border-left: none;">
([WorkflowName|FdaLink])
</td>
</tr>
<tr>
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;">
Initial document
</td>
<td style="border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;">
[InitialDocumentName|Value,WebLink]
</td>
<td align="right" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; border-left: none;">
([InitialDocumentName|MobileLink]) ([InitialDocumentName|FdaLink])
</td>
</tr>
<tr>
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;">
Due by
</td>
<td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; ">
[DueDate]
</td>
</tr>
<tr>
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;">
Task instructions
</td>
<td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; ">
[TaskDescription]
</td>
</tr>
<tr>
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;">
On behalf of
</td>
<td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; ">
[OnBehalfOf]
</td>
</tr>
<tr>
<td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;">
Initiated on
</td>
<td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; ">
[InitiationDate]
</td>
</tr>
<tr>
<td colspan="3" width="100%">[WorkflowHistory]</td>
</tr>
</table><br/><br/></value>
</data>