Workflow notifications keep everyone involved in a workflow informed and prompt them to act when an Action Item requires their attention. When an Action Item is activated or completed, its notification can send an email, send a text message, open a new service record, or any combination of the three.
Available for:
Customers using SysAid Spaces. If you're using SysAid Classic, see Edit/Create New Notification.
IT team members with the Change Manager (Design Changes/Problems/Requests) permission. To learn more about permissions, see Managing Agent and Admin Permissions.
How it works
Setting up a workflow notification has two parts:
Create the notification. This defines what the notification contains and how it's delivered.
Connect the notification to an Action Item in the Workflow Designer. In the Action Item's attributes, you select the notification by its Name in the Notification ID field and choose whether it's sent when the Action Item is activated or completed.
The same notification can be connected to any number of Action Items across your workflows.
Notification channels
Each notification can use any combination of these channels:
Email: Sends an email to the recipients you define. You can also attach a PDF file with the full change details, which is useful for recipients who need to approve a change and must see its complete details.
Text message: Sends a text message to the recipients' mobile devices.
Service record: Opens a new service record with the details you define.
Dynamic tags
Notification content supports dynamic tags that pull information from the change, request, or problem the notification is sent from, such as its title, status, and category. Tags can also add links that let the recipient approve, deny, complete, or reopen the Action Item that triggered the notification. See the full list in the Tags for workflow notifications section below.
Create or edit a workflow notification
To create or edit a workflow notification:
Go to Settings > Customization > Notifications > Workflows. The list displays your existing workflow notifications and the channels each one uses.
Click the + icon to create a new notification, or click an existing notification to edit it.
In the General tab, enter a Name for the notification and select one or more delivery channels: Send Mail, Send SMS, or Insert a Service Record.
Fill in the details tab for each channel you selected (see below).
Click OK to save the notification and return to the list, or Apply to save and stay on the form.
(1).gif?sv=2026-02-06&spr=https&st=2026-07-12T01%3A25%3A39Z&se=2026-07-12T01%3A53%3A39Z&sr=c&sp=r&sig=AQW7bS9TIT1%2FtlBio3PGKCEmis%2BokoIzbrt1aKQzOtE%3D)
The notification's Name is how you'll identify it when connecting it to an Action Item, so use a name that describes what the notification does.
Mail details
Field | Description |
|---|---|
Mail Recipients | The email recipients. Click Browse to select users, or use dynamic tags (for example, $Assigned_to_sub or $RequestUser) to send the email to users based on their role in the service record. Click Clear to remove all recipients. |
Mail Subject | The email's subject line. You can use tags. |
Mail Body | The email's content. You can use tags. |
Select Attach to the email a PDF file which includes the change details to attach a PDF containing details from all Action Items on the change. This is useful for notifications sent to users who must approve a change and therefore need to see its complete details.
Text message details
Field | Description |
|---|---|
SMS recipients | The text message recipients. Click Browse to select users, or use dynamic tags. Click Clear to remove all recipients. |
SMS Subject | The text message's subject. You can use tags. |
SMS Body | The text message's content. You can use tags. |
Service record (SR) details
When the notification is triggered, it opens a new service record with the exact details you configure in this tab, including its Title, Service Record Type, Template, Category, Status, Urgency, Priority, Description, Assigned to, Request user, and other service record fields. The Title and Description fields support tags.
Tip!
Click Action Builder to define filter conditions in the pop-up that opens. For instructions on building filter conditions, see Expression Builder.
Connect a notification to an Action Item
Once a notification exists, you connect it to an Action Item in the Workflow Designer. The notification is then sent whenever that Action Item is activated or completed, depending on the method you choose.
To connect a notification to an Action Item:
Go to Settings > Templates & Fields > Ticket Templates & Workflows.
Open the template that contains the workflow.
In the Workflow Designer, click the Action Item for which you want to send the notification. The Attributes panel opens.
From the Notification ID drop-down list, select the notification by its Name.
From the Notification method drop-down list, choose whether the notification is sent when the Action Item is activated or when it's completed.
Click Done.
.gif?sv=2026-02-06&spr=https&st=2026-07-12T01%3A25%3A39Z&se=2026-07-12T01%3A53%3A39Z&sr=c&sp=r&sig=AQW7bS9TIT1%2FtlBio3PGKCEmis%2BokoIzbrt1aKQzOtE%3D)
Tip!
If you need a notification sent at a specific point in the workflow, but it doesn't belong to any existing Action Item, create an Action Item just for the notification and turn on the Auto Complete toggle in its attributes. The Action Item is then automatically marked as complete the moment it activates, right after sending its notification.
For more information about Action Item attributes, see Configure Action Items. For more information about designing workflows, see Workflows.
Tags for workflow notifications
Here is the list of tags available for workflow notifications. Unless specified otherwise, all tags refer to the main change, request, or problem, and not to the Action Item that triggered the notification.
Tag ID | Description |
|---|---|
$Approve | A link that the recipient can click to approve and complete the action item that triggered the notification.
|
$Deny | A link that the recipient can click to deny and complete the action item that triggered the notification.
|
$Complete | A link that the recipient can click to complete the action item that triggered the notification.
|
$Reopen | A link that the recipient can click reopen the action item that triggered the notification.
|
$LinkToSubTab | Provides a link to access the action item that triggered the notification.
|
$Approve-requires_login | A link that the recipient can click to approve and complete the action item that triggered the notification. |
$Deny-requires_login | A link that the recipient can click to deny and complete the action item that triggered the notification.
If a user who clicks this link is not logged in to SysAid, they are prompted to log in before the action is performed. |
$Complete-requires_login | A link that the recipient can click to complete the action item that triggered the notification.
If a user who clicks this link is not logged in to SysAid, they are prompted to log in before the action is performed. |
$Reopen-requires_login | A link that the recipient can click reopen the action item that triggered the notification. If a user who clicks this link is not logged in to SysAid, they are prompted to log in before the action is performed. |
$LinkToSubTab-requires_login | Provides a link to access the action item that triggered the notification.
If a user who clicks this link is not logged in to SysAid, they are prompted to log in before the action is performed. |
$Assigned_to_sub | This is the user assigned to the action item that triggered the notification. This tag can be used in the Mail/SMS Recipients field. |
$ProcessManager | This is the process manager for the change or problem. This tag can be used in the Mail/SMS Recipients field. |
$RequestUser | This is the request user for the change or problem. This tag can be used in the Mail/SMS Recipients field. |
$AdminGroup | This is the admin group for the action item that triggered the notification (and not the admin group for the entire change or problem). This tag can be used in the Mail/SMS Recipients field. |
$Title | This is the title of the change or problem |
$ModifyUser | This is the last user to modify the change or problem |
$Computer | This is the name of the asset attached to the change or problem |
$assetUpdateTime | This is the last time the asset attached to the SR sent an inventory update to SysAid |
$assetCompany | This is the company of the asset attached to the change or problem |
$ParentID | This is SR# of the parent service record. Will only display if the change or problem generating the notification is a child SR |
$Category | This is the top level category of the change or problem |
$SubCategory | This is the sub category of the change or problem |
$ThirdLevelCategory | This is the third level category of the change or problem |
$CloseTime | This is the time the change or problem was closed |
$CustDate1 | Displays the contents of custom date field 1 |
$CustDate2 | Displays the contents of custom date field 2 |
$Description | This is the change or problem's description |
$DueDate | This is the full due date of the change or problem, including hour |
$DueDateOnly | This is the date the change or problem is due |
$ID | This is the service record number for the change or problem |
$LinkToSurvey | Displays a link to fill out your survey for the change or problem. Recommended for use in conjunction with an "if" statement (see below) and the $isClosedSR tag |
$SubmitTime | Time the change or problem was submitted |
$NotesExternal | Displays the contents of the Note |
$Priority | Shows the priority of the change or problem |
$Urgency | Shows the urgency of the change or problem |
$Status | Shows the status of the change or problem |
$SrSubType | This is the sub type of the change or problem |
$Resolution | Displays the contents of the resolution field |
$Solution | Displays the contents of the solution field |
$SubmitUser | This is the user who submitted the change or problem |
$AssignedGroup | This is the group the change or problem has been assigned to |
$ModifyTime | This is the time the change or problem was last modified |
$Location | Shows the contents of the location field |
$LinkToSR | Includes a direct link to the change or problem. For administrators only |
$Escalation | Shows whether or not a change or problem is escalated |
$RequestUser | Shows the request user's username |
$ReqUser | Shows the request user's first name and last name |
$Company | Shows the request user's company |
$OrganizationName | The name of your organization as it's entered under Settings > Customize > Account Defaults |
$Phone | Shows the request user's phone number |
$Cellphone | Shows the request user's cellular phone number |
$SMS | Show the request user's text message number |
$SelfServicePortalURL | Inserts a link to the SysAid Server which can be used by end users to log in to the End-User Portal |
$CompanyPhone | Shows the phone number of the request user's company |
$CompanyAddress | Shows the first line of the address for the request user's company |
$CompanyAddress2 | Shows the second line of the address for the request user's company |
$AssignedTo | This is the process manager for the change or problem |
$AssignedToFirstName | This is the first name of the process manager for the change or problem |
$AssignedToLastName | This is the last name of the process manager for the change or problem |
$ResponsibleAdmin | This is the change or problem's responsible admin |
$ResponsibleAdminFirstName | This is the first name of the change or problem's responsible admin |
$ResponsibleAdminLastName | This is the last name of the change or problem's responsible admin |
$AccountTimeZone | Shows the default SysAid Server time zone |
$ActivitiesNum | Displays the number of activities that have been logged on the SR |
$ActivitiesTable | Displays the full contents of the activities table for the change or problem |
$ActivitiesTotalMinutes | Displays the total time of all activities that have been logged on the SR |
$custList1 | Shows the contents of custom list 1 for this change or problem |
$custList2 | Shows the contents of custom list 2 for this change or problem |
$OperatingTimesTable | Displays the list of operating times that apply to the current change or problem. Operating times are determined by SLA or by Company. If neither of these exists for the request user, then the default operating times are used. |
$LinkToAttachments | Adds links to download any attachments attached to the change or problem |
$Total_Active_Requests | Shows the total number of active SRs on the Service Desk |
$Active_requests_for_assigned_admin | Shows the total number of active SRs on the Service Desk that are assigned to the same admin as this change or problem |
Special tags that can be used in the Mail Recipients field for an email notification | |
$Assigned_to_sub | Sends the notification to whoever the action item is assigned to |
$ProcessManager | Sends the notification to the process manager for the change or problem |
$RequestUser | Sends the notification to the request user for the change or problem |
$AdminGroup | Sends the notification to all members of the admin group listed on the action item |
$RequestUserManager | The direct manager of the ticket's request user |
$AIAssigneeDirectManager | The direct manager of the user assigned to the action item |
Boolean tags for use in "if" statements (please see "If" statements in your notifications for more information) | |
$IsNewSr | Returns "true" if this is the new SR notification or "false" if this is an SR modified notification. |
$AfterHours | Returns "true" if the notification is sent while the Service Desk is closed, or "false" if the notification is sent while the Service Desk is open. Based upon operating times. |
$isClosedSR | Returns "true" if SR is closed or "false" if SR is open. |
Special tags that grant access to SysAid Entities | |
$ci | This allows you to pull any field on the CI attached to the service record, except for list fields. Note that you must use a special syntax with this tag: ${ci.getXXXX()}. Replace XXXX with the caption for any CI field. Please note that the tag is case-sensitive and the first word of the field caption must be lowercase. For example, to retrieve CI name: ${ci.getciName()}. Note that this will not work for list fields, and that there must be a CI attached to the SR. |
$asset | This allows you to pull any field on the asset attached to the service record, except for list fields. Note that you must use a special syntax with this tag: ${asset.getXXXX()}. Replace XXXX with the caption for any asset field. Please note that the tag is case-sensitive and the first word of the field caption must be lowercase. For example, to retrieve asset model: ${asset.getsystemModel()}. Note that this will not work for list fields, and that there must be an asset attached to the SR. |
$sr | This allows you to pull any field on the service record, except for list fields. Note that you must use a special syntax with this tag: ${sr.getXXXX()}. Replace XXXX with the caption for any SR field. Please note that the tag is case-sensitive and the first word of the field caption must be lowercase. For example, to retrieve Follow up Text: ${sr.getfollowupText()}. Note that this will not work for list fields. |
$resource | This allows you to insert a key from the translation file into your notification. This allows for notifications in multiple languages. Please see Custom notifications in multiple languages for more information about using this tag |
Get commands that can be used to display values of fields from the action item that generated the notification | |
$!AccountObj.getDisplayUserName | The value of the Additional User field |
$!AccountObj.getDisplayUserName | The user name of the last user to update the action item |
$CurrentActionItem.getReopenNote() | The value of the Re-open note |
$CurrentActionItem.getNotificationID() | The value of the Notification ID field in the action item's attributes |
$CurrentActionItem.getNotificationMethod() | The value of the Notification Method field in the action item's attributes |
$CurrentActionItem.getSrID() | The ID number of the action item’s service record |
$CurrentActionItem.getTaskID() | The value of the Task field |
$CurrentActionItem.getProjectID() | The value of the Project field |
$CurrentActionItem.getAssigned_group() | The value of the Admin group field |
$AccountObj.getCustValues('location',$resource).getCaption | The value of the Location field |
$AccountObj.getCompanies().getCaption($CurrentActionItem.getCompany()) | The value of the Company field |
$AccountObj.getDisplayUserName($CurrentActionItem.getAssignedTo(),null) | The value of the Assigned to field |
$AccountObj.getCustValues('Status',$resource).getCaption | The value of the Status field |
$CurrentActionItem.getTitle() | The value of the Title field |
$CurrentActionItem.getProposed_version() | The value of the Proposed Version field |
$CurrentActionItem.getDescription() | The value of the Description field |
$AccountObj.getCustValues('urgency',$resource).getCaption | The value of the Urgency field |
$AccountObj.getCustValues('priority',$resource).getCaption | The value of the Priority field |
$CurrentActionItem.getDue_date() | The value of the Due Date field |
$CurrentActionItem.getProposed_delivery_date() | The value of the Proposed Delivery Date field |
$CurrentActionItem.getExpected_downtime_start() | The value of the Expected Downtime Start field |
$CurrentActionItem.getExpected_downtime_end() | The value of the Expected Downtime End field |
$CurrentActionItem.getNotes() | The value of the Notes field |
$CurrentActionItem.getCab_meeting_reference() | The value of the CAB Meeting Reference field |
$!AccountObj.getDisplayUserName($CurrentActionItem.getSubmit_user(),null) | The value of the Submit field |
$CurrentActionItem.getDuration() | The value of the Duration field |
$CurrentActionItem.getPercent_completed() | The value of the Percent Completed field |
$CurrentActionItem.getCust_int1() | The value of the Action item custom Int 1 field |
$CurrentActionItem.getCust_int2() | The value of the Action item custom Int 2 field |
$CurrentActionItem.getCust_int3() | The value of the Action item custom Int 3 field |
$CurrentActionItem.getCust_int4() | The value of the Action item custom Int 4 field |
$CurrentActionItem.getCust_int5() | The value of the Action item custom Int 5 field |
$CurrentActionItem.getCust_int6() | The value of the Action item custom Int 6 field |
$CurrentActionItem.getCust_int7() | The value of the Action item custom Int 7 field |
$CurrentActionItem.getCust_int8() | The value of the Action item custom Int 8 field |
$CurrentActionItem.getCust_int9() | The value of the Action item custom Int 9 field |
$CurrentActionItem.getCust_int10() | The value of the Action item custom Int 10 field |
$CurrentActionItem.getCust_text1() | The value of the Action item custom Text 1 field |
$CurrentActionItem.getCust_text2() | The value of the Action item custom Text 2 field |
$CurrentActionItem.getCust_text3() | The value of the Action item custom Text 3 field |
$CurrentActionItem.getCust_text4() | The value of the Action item custom Text 4 field |
$CurrentActionItem.getCust_text5() | The value of the Action item custom Text 5 field |
$CurrentActionItem.getCust_text6() | The value of the Action item custom Text 6 field |
$CurrentActionItem.getCust_text7() | The value of the Action item custom Text 7 field |
$CurrentActionItem.getCust_text8() | The value of the Action item custom Text 8 field |
$CurrentActionItem.getCust_text9() | The value of the Action item custom Text 9 field |
$CurrentActionItem.getCust_text10() | The value of the Action item custom Text 10 field |
$CurrentActionItem.getCust_date1() | The value of the Action item custom Date 1 field |
$CurrentActionItem.getCust_date2() | The value of the Action item custom Date 2 field |
$CurrentActionItem.getCust_date3() | The value of the Action item custom Date 3 field |
$CurrentActionItem.getCust_date4() | The value of the Action item custom Date 4 field |
$CurrentActionItem.getCust_date5() | The value of the Action item custom Date 5 field |
$CurrentActionItem.getCust_date6() | The value of the Action item custom Date 6 field |
$CurrentActionItem.getCust_date7() | The value of the Action item custom Date 7 field |
$CurrentActionItem.getCust_date8() | The value of the Action item custom Date 8 field |
$CurrentActionItem.getCust_date9() | The value of the Action item custom Date 9 field |
$CurrentActionItem.getCust_date10() | The value of the Action item custom Date 10 field |
$CurrentActionItem.getDefaultCustDate('1') | The value of the Action item custom Date 1 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('2') | The value of the Action item custom Date 2 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('3') | The value of the Action item custom Date 3 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('4') | The value of the Action item custom Date 4 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('5') | The value of the Action item custom Date 5 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('6') | The value of the Action item custom Date 6 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('7') | The value of the Action item custom Date 7 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('8') | The value of the Action item custom Date 8 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('9') | The value of the Action item custom Date 9 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getDefaultCustDate('10') | The value of the Action item custom Date 10 field, adjusted to the time zone set for the SysAid account. |
$CurrentActionItem.getCompleted_time() | The value of the Completed Time field |
$CurrentActionItem.getEnabled_time() | The value of the Enabled Time field |
$CurrentActionItem.getModify_time() | The value of the Modify Time field |
$CurrentActionItem.getPolicy_compliance() | The value of the Policy Compliance field |
$CurrentActionItem.getBudgeted() | The value of the Budgeted field |
$CurrentActionItem.getApproved() | The value of the Approved field |
$CurrentActionItem.getUser_acceptance() | The value of the User Acceptance field |
$AccountObj.getCustValues('subTabList1',$resource).getCaption | The value of the Action item custom List 1 field |
$AccountObj.getCustValues('subTabList2',$resource).getCaption | The value of the Action item custom List 2 field |
$AccountObj.getCustValues('subTabList3',$resource).getCaption | The value of the Action item custom List 3 field |
$AccountObj.getCustValues('subTabList4',$resource).getCaption | The value of the Action item custom List 4 field |
$AccountObj.getCustValues('subTabList5',$resource).getCaption | The value of the Action item custom List 5 field |
$AccountObj.getCustValues('subTabList6',$resource).getCaption | The value of the Action item custom List 6 field |
$AccountObj.getCustValues('subTabList7',$resource).getCaption | The value of the Action item custom List 7 field |
$AccountObj.getCustValues('subTabList8',$resource).getCaption | The value of the Action item custom List 8 field |
$AccountObj.getCustValues('subTabList9',$resource).getCaption | The value of the Action item custom List 9 field |
$AccountObj.getCustValues('subTabList10',$resource).getCaption | The value of the Action item custom List 10 field |
$AccountObj.getCustValues('subTabComplexity',$resource).getCaption | The value of the Complexity field |
$AccountObj.getCustValues('subTabImpact',$resource).getCaption | The value of the Impact field |
$CurrentActionItem.getCust_notes1() | The value of the Action item custom Notes 1 field |
$CurrentActionItem.getCust_notes2() | The value of the Action item custom Notes 2 field |
$CurrentActionItem.getCust_notes3() | The value of the Action item custom Notes 3 field |
$CurrentActionItem.getCust_notes4() | The value of the Action item custom Notes 4 field |
$CurrentActionItem.getCust_notes5() | The value of the Action item custom Notes 5 field |
$CurrentActionItem.getCust_notes6() | The value of the Action item custom Notes 6 field |
$CurrentActionItem.getCust_notes7() | The value of the Action item custom Notes 7 field |
$CurrentActionItem.getCust_notes8() | The value of the Action item custom Notes 8 field |
$CurrentActionItem.getCust_notes9() | The value of the Action item custom Notes 9 field |
$CurrentActionItem.getCust_notes10() | The value of the Action item custom Notes 10 field |
$CurrentActionItem.getReopened() | The value of the Re-Opened field |
$CurrentActionItem.getCust_float1() | The value of the Action item custom Float 1 field |
$CurrentActionItem.getCust_float2() | The value of the Action item custom Float 2 field |
$CurrentActionItem.getCust_float3() | The value of the Action item custom Float 3 field |
$CurrentActionItem.getCust_float4() | The value of the Action item custom Float 4 field |
$CurrentActionItem.getCust_float5() | The value of the Action item custom Float 5 field |
$CurrentActionItem.getCust_float6() | The value of the Action item custom Float 6 field |
$CurrentActionItem.getCust_float7() | The value of the Action item custom Float 7 field |
$CurrentActionItem.getCust_float8() | The value of the Action item custom Float 8 field |
$CurrentActionItem.getCust_float9() | The value of the Action item custom Float 9 field |
$CurrentActionItem.getCust_float10() | The value of the Action item custom Float 10 field |
$CurrentActionItem.getResources_required_in_days() | The value of the Resources Required in Days field |
$CurrentActionItem.getHardware_costs() | The value of the Hardware Costs field |
$CurrentActionItem.getSoftware_costs() | The value of the Software Costs field |
$CurrentActionItem.getInstallation_costs() | The value of the Installation Costs field |
$CurrentActionItem.getTraining_costs() | The value of the Training Costs field |
$CurrentActionItem.getMaintenance_costs() | The value of the Maintenance Costs field |
$CurrentActionItem.getTotal_costs() | The value of the Total Costs field |
$CurrentActionItem.getInternal_manpower_in_hours() | The value of the Internal Manpower In Hours field |
$CurrentActionItem.getTotal_expected_downtime_hours() | The value of the Total Expected Downtime In Hours field |
$AccountObj.getCustValues('departments',$resource).getCaption | The value of the Department To Charge field |
$CurrentActionItem.getBack_out_plan() | The value of the Backout Plan Exists and Tested field |
$AccountObj.getCustValues('recurrenceList',$resource).getCaption | The value of the Recurrence field |
$CurrentActionItem.getAddonFieldValue('INTERNAL ATTRIBUTE NAME') | The value of text, text area, date, or integer fields added through fields customization. Enter the Internal Attribute name of the field in the parentheses.
|
$AccountObj.getCustValues('DB FIELD NAME',$resource).getCaption($CurrentActionItem.getAddonFieldValue | The value of list fields added through fields customization. Enter the field's database name and the Internal Attribute name in the relevant parentheses.
|