PowerShell Cmdlets for Trigger Templates
  • 04 May 2025
  • 4 Minutes to read
  • Dark
    Light
  • PDF

PowerShell Cmdlets for Trigger Templates

  • Dark
    Light
  • PDF

Article summary

From version 9.0.5 and higher, you can run the following PowerShell cmdlets to configure trigger notification templates on a machine with a ControlUp Monitor installed:

Add-CUTriggerTemplate

Adds a new trigger template to the template repository. Doesn't add a template to a trigger.

Syntax

Add-CUTriggerTemplate
-Name <string>
-Type <TriggerTemplateType>
-Body <string>
-Subject <string>
-HttpHeaders <string>
-DisableJSONValidation <string>

Add general trigger template example:

Add-CUTriggerTemplate -Name @QA-General-STRESS -Type General -Body 'Your monitored resource has crossed a configured Stress Level threshold.
	+Organization Name: $(OrgName)

	+Folder name: $(CUFolderName)

	+Reported by: $(ReportedBy)

	+Trigger name: $(TriggerName)

	Resource name: $(ObjectName)

	Resource type: $(ResourceType)

	=> Stress Level: $(StressLevel) <=

	Incident timestamp ($(Timezone)): $(Timestamp)

	Counters involved in this incident:

$(ListOfColumns:"		Counter: $(Column)

		Severity Level: $(ColumnSeverityLevel)

		Since ($(Timezone)): $(ColumnTimestamp)

		Threshold crossed: $(ColumnCrossedThreshold)")' -Subject 'STRESS >> ControlUp alert mail - $(TriggerType) - $(Object)'

Add webhook trigger template example:

Add-CUTriggerTemplate -Name @QA-Webhook02 -Type Webhook -Body '{
   "templateName":"---@QA-Webhook02",
   "type":"message",
   "attachments":[
	  {
  "contentType": "application/vnd.microsoft.card.adaptive",
  "content": {
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "001",
    "body": [
      {
        "type": "Container",
        "items": [
          {
            "type": "FactSet",
            "facts": [
              {
                "title": "Organization Name:",
                "value": "$(OrgName)"
              },
              {
                "title": "Folder name:",
                "value": "$(CUFolderName)"
              },
              {
                "title": "Reported by:",
                "value": "$(ReportedBy)"
              },
              {
                "title": "Trigger name:",
                "value": "$(TriggerName)"
              },
              {
                "title": "Object:",
                "value": "$(Object)"
              },
              {
                "title": "ComputerName:",
                "value": "$(CompName)"
              },
              {
                "title": "Resource name:",
                "value": "$(ObjectName)"
              },
              {
                "title": "Resource type:",
                "value": "$(ResourceType)"
              },
              {
                "title": "Stress Level:",
                "value": "$(StressLevel)"
              },
              {
                "title": "Incident timestamp ($(Timezone)):",
                "value": "$(Timestamp)"
              }
            ]
          },
		  {
            "type": "TextBlock",
            "text": "Columns involved in this incident:$(ListOfColumns:"\nColumn:$(Column),
				ValueBefore:$(ColumnValueBefore),
				ValueAfter:$(ColumnValueAfter),
				On ($(Timezone)):$(ColumnTimestamp),
				Threshold crossed:$(ColumnCrossedThreshold)")",
            "wrap": true
          },
        ]
      }
    ]
  }  
}
   ]
}' -HttpHeaders '{
   "Authorization":"access_token",
   "Content-Type":"application/json",
   "Source":"$(TriggerName)"
}'
ParametersDescriptionRequired
-NameName of the templateYes
-TypeType of templateYes
-BodyBody of templateNo
-SubjectSubject line of templateNo
-HttpHeadersHeaders of templateNo
-SourceBuilt-in or custom source of template. No
-DisableJSONValidation
If you use this parameter, JSON validation will be disabled.
No

Update-CUTriggerTemplate

Updates the properties of a specific trigger template, except for the ID.

Update-CUTriggerTemplate
-Id <string>
-Name <string>
-Body <string>
-Subject <string>
-HttpHeaders <string>
-DisableJSONValidation <string>

Update Name, Body, and Subject of general template example:

Update-CUTriggerTemplate -Id  d0e2f4b6-c1aa-464c-b2d8-9bf397ba1098 -Name '@QA-General -STRESS_UPDATED' -Body 'UPD!
Your monitored resource has crossed a configured Stress Level threshold.
	#Organization Name: $(OrgName)

	#Folder name: $(CUFolderName)

	#Reported by: $(ReportedBy)

	#Trigger name: $(TriggerName)

	Resource name: $(ObjectName)

	Resource type: $(ResourceType)

	=> Stress Level: $(StressLevel) <=

	Incident timestamp ($(Timezone)): $(Timestamp)

	Counters involved in this incident:

$(ListOfColumns:"		Counter: $(Column)

		Severity Level: $(ColumnSeverityLevel)

		Since ($(Timezone)): $(ColumnTimestamp)

		Threshold crossed: $(ColumnCrossedThreshold)")' -Subject 'UPD___STRESS >> ControlUp alert mail - $(TriggerType) - $(Object)'

Update Name, Body, and HttpHeaders of webhook template example:

Update-CUTriggerTemplate -Id  bd7903a3-f49c-43f1-b478-26a50f4e32b5 -Name 'nnnn@QA-Webhook02' -Body '{
   "templateName":"---nnnn@QA-Webhook02",
   "type":"message",
   "attachments":[
	  {
  "contentType": "application/vnd.microsoft.card.adaptive",
  "content": {
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "999",
    "body": [
      {
        "type": "Container",
        "items": [
          {
            "type": "FactSet",
            "facts": [
              {
                "title": "Organization Name:",
                "value": "$(OrgName)"
              },
              {
                "title": "Folder name:",
                "value": "$(CUFolderName)"
              },
              {
                "title": "Reported by:",
                "value": "$(ReportedBy)"
              },
              {
                "title": "Trigger name:",
                "value": "$(TriggerName)"
              },
              {
                "title": "Object:",
                "value": "$(Object)"
              },
              {
                "title": "ComputerName:",
                "value": "$(CompName)"
              },
              {
                "title": "Resource name:",
                "value": "$(ObjectName)"
              },
              {
                "title": "Resource type:",
                "value": "$(ResourceType)"
              },
              {
                "title": "Stress Level:",
                "value": "$(StressLevel)"
              },
              {
                "title": "Incident timestamp ($(Timezone)):",
                "value": "$(Timestamp)"
              }
            ]
          },
		  {
            "type": "TextBlock",
            "text": "+Columns involved in this incident:$(ListOfColumns:"\nColumn:$(Column),
				ValueBefore:$(ColumnValueBefore),
				ValueAfter:$(ColumnValueAfter),
				On ($(Timezone)):$(ColumnTimestamp),
				Threshold crossed:$(ColumnCrossedThreshold)")",
            "wrap": true
          },
        ]
      }
    ]
  }  
}
   ]
}' -HttpHeaders '{
   "Authorization":"access_token",
   "Content-Type":"application/json",
   "Source":"$(TriggerName)",
   "Test":"true"
}'
ParametersDescriptionRequired
-IdID of the templateYes
-NameName of the templateNo
-BodyBody of templateNo
-SubjectSubject line of templateNo
-HttpHeadersHeaders of templateNo
-DisableJSONValidation
If you use this parameter, JSON validation will be disabled.
No

Add-CUTriggerTemplate and Update-CUTriggerTemplate Results

Writes single result object to PowerShell with the following properties:

  • Error. In case of failure, the reason will be displayed.
  • Success. In case of success, properties will be displayed according to template type. General: ID, Name, Type, Source, Subject ,Body. Webhook: ID, Name, Type, Source, HttpHeaders, Body. 

Remove-CUTriggerTemplate

 Deletes a trigger template. Note that you can't delete a trigger template currently in use.

Syntax

Remove-CUTriggerTemplate
-Id <string>

Delete template example:

Remove-CUTriggerTemplate -Id "17155AFE-2F46-4775-B11B-EBC333279243"

Remove-CUTriggerTemplate Results

Writes single result object to PowerShell with the following properties:

  • Error. In case of failure, the reason will be displayed.
  • Success. In case of success, trigger is removed and the following message will be displayed: "Template '<TemplateName>' - <TemplateId> was deleted successfully."

Get-CUTriggerTemplates

Lists all available trigger templates, including both built-in and custom templates, or specific trigger templates. Note that running this cmdlet without any parameters returns results listing all local and community templates in your organization, including general and RESTful API (webhook) types.

Syntax

Get-CUTriggerTemplates [[-Source] {Unknown | Default | Custom}] [[-Type] {Unknown | General | WebHook}] [[-Name] <string>] [[-TemplateId] <string>] 

List only default templates example:

Get-CUTriggerTemplates -Source Default

List only custom templates example:

Get-CUTriggerTemplates -Source Custom

List only general type templates example:

Get-CUTriggerTemplates -Type General

List template by template ID example:

Get-CUTriggerTemplates -TemplateId "2b290d9b-de34-44f6-a5a8-68684cf188b3"

List templates with multiple parameters example:

Get-CUTriggerTemplates -Type General -Source Custom -Name "RMK_"
ParametersDescriptionRequired
-SourceBuilt-in or custom source of templateNo
-TypeType of templateNo
-NameName of the templateNo
-TemplateIdID of the templateNo

Get-CUTriggerTemplates Results

Writes multiple result objects to PowerShell with the following properties:

  • Error. In case of failure, the reason will be displayed.
  • Success. In case of success, returns list of templates with the following properties: 
PowerShell
-Id <string>
-Name <string>
-Type <string>
-Source <string>
-Body <string>
-Subject <string> General type only
-HttpHeaders <string> WebHook type only

List only general type results example:

Id      : 5D9F6047-6400-46E7-894A-BBAD85F39060
Name    : ControlUp Windows Event Trigger
Type    : General
Source  : Default
Subject : ControlUp alert mail - $(TriggerType) - $(Object)
Body    : A windows event log entry was recorded on one of your monitored computers.
          Organization Name: $(OrgName)
          
          TriggerName: $(TriggerName)
          
          Computer name: $(FQDN)
          
          Event Source: $(EventSource)
          
          Event Type: $(EventType)
          
          Event ID: $(EventID)
          
          User: $(Username)
          
          Full Message: $(EventFullMsg)
          
          Incident timestamp ($(Timezone)): $(Timestamp)

Was this article helpful?