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.

&lt;td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-right: none;"&gt;
Workflow
&lt;/td&gt;

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 nameDescriptionLevelSamples
ActionDateDate when a task has been performed.Action 
ActionTypeName of the action that have been performed.Action

Activity Completed
Task Assigned
Task Canceled
Task Delegated
Task Due Soon
Task Initiator
Task Overdue
Task Overridden
Workflow Cancelled
Workflow Completed
Workflow With Error

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

ActivityDescriptionThe contents of the activity description field. This value does not appear in any of the default notification templates.  
ActivityTitleThe 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.

ApprovalStatusText describing the approval status.Action

Not Submitted For Approval,
Pending Approval,
Approved,
Not Approved

Approval Postponed

Cancelled

AssignedDateDate when a task has been assigned to a user.Action 
CancelledDateDate when a task/workflow has been canceled.Action 
CompletedActivitiesCountNumber of activities that already have been completed in the workflow.Action 
DocumentNameName of a document related to the workflow.Not used 
DueDateBefore date when a task should be performed.Action 
FriendlyNameReplaced with the friendly name value. This is set in the System configuration > Settings > Notifications area.  
InformationEmailReplaced with the information email value. This is set in the System configuration > Settings > Notifications area.  
InitialDocumentNameThe 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.

InitiationDateDate when a workflow has been initiated.Action 
InitiatorName of a user that has initiated the current workflow.Action 
IsApprovedInformation if a task has been approved or not.ActionYes
No
NotificationTypeText describing the notification frequency.NotificationDaily Summary,
Immediately,
Weekly Summary
NumberNotificationNumber of task notifications that have been included in the one email message.Notification 
OnBehalfOfName of a user on whose behalf a task is performed.Action 
OverriddenDateDate when a task has been overridden.Action 
ParticipantResponsesA table listing all participants that completed tasks for the activity. The attachment link is a direct web client download.  
ParticipantRoleType of a specified user role in a workflow.ActionDelegated,
Specified
PerformerName of a user who has overridden or canceled a task.Action 
TaskDescriptionDescription of a task.Action 
TaskLinkLink 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.”

TaskTrueUserName of the user who did not approve the workflow when a task was performed in behalf of other user.Action 
TaskTypeType of activity for the assigned task.Action

Approve
Review

One-time Review

TotalActivitiesCountTotal number of activities in a workflow.Action 
VariableDateColorAs 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)

VariableStatusColorThis 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)

WorkflowDocumentsThe 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.

WorkflowHistoryA 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.

See the example below for more information.

WorkflowLinkThis 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>&lt;table cellpadding="0" cellspacing="0" width="100%" style="font-family:Arial;font-size:10pt;"&gt;
    &lt;tr&gt;
        &lt;td colspan="3" style="background-color: #4AAD52; color: white; padding: 3px 3px;"&gt;
            Action: [TaskType] [ActionType]
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td colspan="3" style="padding: 5px 5px;"&gt;[NotificationRecipient] View task in [TaskLink].&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-right: none;"&gt;
            Workflow
        &lt;/td&gt;
        &lt;td style="border: solid 1px #000000; padding: 3px 3px; border-right: none;"&gt;
            [WorkflowName|WebLink,Value]
        &lt;/td&gt;
        &lt;td align="right" style="border: solid 1px #000000; padding: 3px 3px; border-left: none;"&gt;
            ([WorkflowName|FdaLink])
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;"&gt;
            Initial document
        &lt;/td&gt;
        &lt;td style="border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;"&gt;
            [InitialDocumentName|Value,WebLink]
        &lt;/td&gt;
        &lt;td align="right" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; border-left: none;"&gt;
            ([InitialDocumentName|MobileLink]) ([InitialDocumentName|FdaLink])
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;"&gt;
            Due by
        &lt;/td&gt;
        &lt;td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; "&gt;
            [DueDate]
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;"&gt;
            Task instructions
        &lt;/td&gt;
        &lt;td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; "&gt;
            [TaskDescription]
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;"&gt;
            On behalf of
        &lt;/td&gt;
        &lt;td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; "&gt;
            [OnBehalfOf]
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width="25%" style="width:150px; border: solid 1px #000000; padding: 3px 3px; border-top: none; border-right: none;"&gt;
            Initiated on
        &lt;/td&gt;
        &lt;td colspan="2" style="border: solid 1px #000000; padding: 3px 3px; border-top: none; "&gt;
            [InitiationDate]
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td colspan="3" width="100%"&gt;[WorkflowHistory]&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;</value>
  </data>