--- title: "Notification Templates" slug: "notification-templates" updated: 2025-06-17T14:20:18Z published: 2025-06-17T14:20:18Z canonical: "support.controlup.com/notification-templates" --- > ## Documentation Index > Fetch the complete documentation index at: https://support.controlup.com/llms.txt > Use this file to discover all available pages before exploring further. # Notification Templates This article explains how to create custom notification templates to assign to triggers using the ControlUp Real-Time DX Console. From version 9.0.5, you can configure trigger notification templates with [PowerShell cmdlets](/v1/docs/powershell-cmdlets-for-trigger-templates). For a list of all the variables that you can use in the templates, see [here](/v1/docs/template-variables). ## Template Settings The console uses notification templates to either create follow-up e-mail notifications or to insert a log entry in the Windows Event Log when triggers are activated. You can use templates to configure the following types of follow-up actions: - Send an e-mail alert - Record an event in the Application Log - Send an e-mail alert using a local SMTP server - Run an action - Send a [RESTful API request](/tim-reorg/docs/using-webhooks-as-follow-up-action) Templates can include both text and variables. The variables are replaced by specific information about the trigger in the actual notification text. The message body might also include built-in text, before and/or after the template text, that you can't modify or remove (e.g., “This is an automated alert...”). You can create custom templates to add additional information to a notification, or for example, to create a notification whose text is in French. You can't edit or delete predefined templates, but you can duplicate them, and then edit or delete the duplicates. This is actually how you create custom templates: first you create a duplicate of an existing template, and then modify it. ## Using Variables in a Template Variables that you can use in notification templates have the form *$(…)*, where the name of the variable is in parentheses. For example $(ObjectName) is a variable whose name is ObjectName, and it is used to insert the name of the object whose behavior generated the trigger into a notification. Variables can be included anywhere in the subject line or the body of a template. For example, the template body could include this line: ``` The $(ObjectName) object has been disconnected from monitoring. ``` In the actual notification, it would then say something like: ``` The my-pc.domain.com object has been disconnected from monitoring. ``` Not all variables are relevant to all triggers. For example, if the trigger is related to machine stress, no process is directly connected to it, so the *$(ProcessName)* variable is not defined. For a complete list and descriptions of supported variables, see [here](/tim-reorg/docs/template-variables). ## Multi-Counter Variable In addition to the variables described above, another type of variable exists, *ListOfColumns*. This variable is invoked multiple times in multi-counter incidents, once for each counter involved. *ListOfColumns* is only used with Stress Level or Advanced triggers, because these are the only triggers that can include multiple conditions. *ListOfColumns* has a special syntax, in which you can include the text and variables you would like to see for each counter involved in the incident. All of the text must be placed within the variable’s parentheses, after a colon and between quotation marks (e.g., *$(ListOfColumns: "my text…”)*). In addition, the following variables exist only for use with the *ListOfColumns* variable: | $(Column) | $(ColumnSeverityLevel) | $(ColumnTimestamp) | | --- | --- | --- | | $(ColumnUTCTimestamp) | $(ColumnCrossedThreshold) | $(ColumnValueBefore) | | $(ColumnValueAfter) | | | **Note** The variables in this category are also marked as such in the variable list. The following is a sample of template text that uses the *ListOfColumns* variable: ``` $(ListOfColumns:" Column: $(Column) Value changed from $(ColumnValueBefore) to $(ColumnValueAfter) On ($(Timezone)): $(ColumnTimestamp) Threshold crossed: $(ColumnCrossedThreshold) ") ``` If two columns (CPU, Name) were involved in this incident, the code output in the notification would show as: ``` Column: CPU Value changed from 13% to 25% On (UTC +3 Jerusalem Standard Time): 13/05/2019 16:19:27 Threshold crossed: 20% Column: Name Value changed from CPUSTRES.EXE to CPUSTRES.EXE On (UTC +3 Jerusalem Standard Time): 13/05/2019 16:19:27 Threshold crossed: CPU* ``` ## Template Components Each template contains the following components: - **Template Name**: Name that identifies the template in the list of available templates. - **Subject** (General type templates only): Title that will appear in the notification. In an e-mail - the subject line, in a log entry - the first line. - **HTTP Headers** (RESTful API type templates only): List of strings that will be sent on the HTTP(S) header request. - **Body**: Text of the notification. The **Subject**, **HTTP Headers**, and **Body** fields of the template can include variables. To create a new template, you first duplicate an existing template, and then modify it. You can select any existing template to duplicate. If you create a new template by selecting **Add**, the ControlUp Advanced Trigger template is duplicated. ## Create a New Template **To create a new notification template:** 1. From the Real-Time DX Console, in either the **Home** or the **Settings** ribbon bar, click **Triggers**. The **Trigger Settings** window opens. !['Trigger Settings' window.](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/TriggerSettings.png) 2. Click **Templates**. The **Template Settings** dialog box opens and lists the currently defined notification templates. Predefined ControlUp templates are identified by a ![Down arrow](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/TemplateBuiltIn.png) icon, while user-defined templates are identified by a ![Person icon.](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/360003077557mceclip0.png) icon. You can only edit user-defined templates, not ControlUp templates. !['Template Settings' window displaying built-in and user-defined templates.](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/TemplateSettings.png) 1. Select an existing template to use as the basis for the custom template in one of the following options: - Click **Add**. The **Edit Template** window opens a copy of the ControlUp Advanced Trigger template. - Select an existing template and click **Duplicate**. The **Edit Template** window opens a copy of the selected template. 1. Under **Template Name**, enter a name for the custom template. 2. Under **Template type**, select either **General** or **RESTful API**. 3. Modify the **Subject** (General type) or **HTTP Headers** (RESTful API type) and **Body** fields as required: !['Edit Template' window displaying a sample template.](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/EditTemplate.png) For a list of all variables that you can use in the fields, see [here](/v1/docs/template-variables). 1. After you finish creating the template, click **OK**. The **Edit Template** dialog box closes, and the template is added to the list of available templates in the **Template Settings** dialog box. To assign the template to a trigger, see [below](/docs/notification-templates#assigning-a-template-to-a-trigger). ## Assigning a Template to a Trigger After you create a template, you can assign it to any trigger. This is done in the trigger’s settings. **E-mail alerts** For the **Run an action** follow-up action, if you choose to send an e-mail notification, you must ensure that the trigger also has the **Send an e-mail alert** or the **Send an e-mail alert using a local SMTP** server follow-up actions configured. This is because the recipients of the **Run an action** e-mail notification aren't specified in the **Run an action** settings. Rather, they are copied from the settings of the **Send an e-mail** and the **Send an e-mail alert using a local SMTP** server follow-up-actions. When the trigger is activated, the **Send an e-mail** and the **Send an e-mail alert using a local SMTP** server follow-up actions are implemented immediately; the **Run an action** notifications are sent to the same recipients, but after the **Run an action** follow-up action is completed (successfully or not). If no **Send an e-mail** and no **Send an e-mail alert using a local SMTP server** follow-up-actions are defined along with a **Run an action** follow-up action, no notification e-mails are sent for the trigger. **To assign a template to a trigger**: 1. In the **Trigger Settings** window, choose one of the following options: - Click **Add Trigger** to create a new trigger. - Select an existing trigger, and then click **Edit** to edit an existing trigger. The trigger configuration wizard opens. 1. Define or modify the trigger settings as required until you get to the **Follow-up Action** screen. 2. In the **Follow-up Action** screen, under **Type**, select the type of follow-up action. Template assignment is supported in any of the following types: