Skip to main content
Version: 3.1.0

Notifications

AME Notifications are helpful when users or other systems need to be informed about new events or changes for events.

Notification Schemes define when a notification should be triggered by which criteria and to which targets (channels) they are sent.

The following image shows the Notifications UI:

Managing Notifications

info

See Role Overview for capabilities required to manage notifications.

Use the following buttons to manage notifications:

ButtonFunction
Add Notification Scheme
Clone Notification Scheme
Save Notification Scheme
Edit custom tag
Add Flow
Add Notification Target
Add Template Target

The search field can be used to filter by notification name. The dropdown allows filtering by a Notification Scheme.

info

Only an admin or a user with the role ame.admin can see this page and use its features.

Set up a notification scheme

To create a notifications scheme that will apply to all events managed by AME:

  1. Click the Create Notification Scheme button at the bottom of the list. A Modal will open:

  2. Give the notification a unique name.

  3. Click on Add flow.

  4. Give the flow a unique name.

  5. Select a trigger

  6. Add a trigger condition (subscription required)

  7. Add a configuration to add a notification target and notification template to the flow.

Triggers

The following notification triggers are available:

  • Event created
  • Event updated
  • Event assigned
  • Event appended
  • Event commented
  • Event deleted
  • Bulk update
  • Bulk delete

Trigger Conditions

Trigger conditions work similarly as in rules.

Additionally, for the following triggers, changes to the event can be used for notification conditions:

  • Event updated
  • Rule matched
  • Bulk update

The following fields are available for Trigger Conditions on source.

FieldTypeDescriptionExamples
changesStringThe fields that have changedstatus_name, assignee
valuesStringThe values that have changednew, admin
keywordStringThe keyword set in a rulerule_number_one

Example:

Let's assume we want to notify only on status updates for in_progress and resolved statuses. In pseudo code the condition looks like this:

(changed contains “ame.status_name” ) AND (values contains “resolved” OR values contains “in_progress")

Note that we use contains as changes and values are lists. Using the UI it looks like this:

The available fields can be shown by clicking on the Trigger Condition Scheme button.

Limitations for Community Edition

Following Trigger Conditions are available for the Community Edition:

TriggerConditions
Event created none
Event assigned none
Event updatedame.status_name
Event appendedame.status_name
BulkUpdateame.status_name

Update and delete a notification scheme

To update a notification scheme, revise the information and press the Save button. To delete a notification scheme, press the Delete button button.

Notification Targets

The Notification Target tab is used to configure where notifications are sent to.

Currently, AME Supports the following targets:

  • Mail
  • Slack
  • Webhook
  • MS Teams
  • Alert Action

The Mail target is already preconfigured. Additional targets can be added by pressing the Add Notification Target button.

A modal will be opened.

Depending on the target, different configuration options are available. For some targets, a Squash Updates selector is available. Enabling this option will combine multiple notifications into one notification.

Mail

Mail sends an email to the recipients, as well as the cc and bcc entries. You can choose a user name from the dropdown or enter a valid email address by hand.

info

The keyword assignee will translate into the assignee's email if it is available to Splunk.

Slack

Slack sends a Slack message to Slack. The channel supports Slack App notifications. Enter the URL and if messages should be squashed.

Webhook

Webhook will send a POST request to a specified URL. Additionally, Headers can be configured.

info

To create an Incoming Webhook, follow this guide from Slack: Sending messages using incoming webhooks

Teams

Teams will send an MS Teams message to an MS Teams URL with a specified channel. Teams' messages can be squashed.

info

To create an Incoming Webhook, follow this guide from Microsoft: Create an Incoming Webhook - Teams

Alert Action

Alert Action will allow the usage of existing Alert Actions. The results of an AME event will be passed to the selected Alert Action command.

The Alert Action Channel supports parametrization. Static values can be used for parameters, or results can be referenced using the $<result.field>$ syntax.

See more examples below.

Update and delete a notification targets

To update a notification target, revise the information and press the Save button. To delete a notification target, press the Delete button.

Examples

Automatically open a Jira Task with Atlassian Jira Issue Alerts

The goal in this example is to create a Jira Task when the status of an AME event is automatically changed.

Step-by-step Configuration
[Prerequisites]

The Atlassian JIRA Issue Alerts add-on for Splunk is used to send events to Jira. The add-on should be appropriately installed and configured.

An alert action can be run manually if all parameters are correctly provided to the sendalerts command. Typically, all params are listed in the app directory in README/alert_actions.conf.spec. For this, the following parameters are available:

[jira_issue_alert]
param.project = <string> Project. It's a required parameter.
param.summary = <string> Summary. It's a required parameter.
param.issue_type = <string> Issue Type. It's a required parameter. Its default value is Task.
param.priority = <string> Priority. It's a required parameter.
param.description = <string> Description. It's a required parameter.
param.assignee = <string> Assignee.
param.labels = <string> Labels.
param.components = <string> Component/s.
param.additional_field_1_name = <string> Additional field 1 - name.
param.additional_field_1_value = <string> Additional field 1 - value.
param.append_alert_result = <list> Append alert result. Its default value is 1.

The sendalert command takes the alert_action name as the first parameter. All further parameters are found in the spec file. Note that search results can be accessed with the $result.<field>$ syntax:

| makeresults 
| eval summary="foo", description="bar"
| sendalert jira_issue_alert param.priority="Medium" param.project="SCRUMTEST" param.summary="$result.summary$" param.append_alert_result="2" param.description="$result.description"

If the search runs successfully, a notification scheme can be created, e.g., using internal AME fields for parametrization.

ParameterValue
projectSOC
prioritymedium
summary$result.ame.event_title$
append_alert_result1
descriptionEventId=$result.ame._key$

Automatically send a Splunk Mobile Alert

The goal in this example is to automatically send a Splunk Mobile Alert when changing the status of an AME event.

Step-by-step Configuration
[Prerequisites]

Splunk Secure Gateway must be appropriately installed and configured.

An alert action can be run manually if all parameters are correctly provided to the sendalerts command. For this alert following parameters are available:

[ssg_mobile_alert]
param.alert_message = <string>
param.alert_recipients = <string>
param.alert_severity = <int> # 0=info, 1=Low, 2=Medium, 3=High, 4=Critical
param.alert_subject = <string>
param.alert.dashboard_toggle = <bool>

# (Optional) Following settings are used if dashboard_toggle is set to true
param.alert.alert_dashboard_id = <url> # The url of the dashboard
param.token_name = <string> # (Optional) Dashboard token
param.result_fieldname = <string> # (Optional ) Dashboard result fieldname

# (Optional) The following settings are used for alert calls to action
parameters.alert_call_to_action_label = <string>
param.alert_call_to_action_url = <url>

With this information, a search command can be created to validate all params. The sendalert command takes the alert_action nameas the first parameter. All further parameters are found in the spec file. Note that search results can be accessed with the $result.<field>$ syntax:

| makeresults 
| eval summary="foo", description="foobarbaz"
| sendalert ssg_mobile_alert param.alert_message="foo" param.alert_recipients="admin" param.alert_subject="bar" param.dashboard_toggle="0" param.alert_severity="4"

If the search runs successfully, a notification scheme can be created, e.g., using internal AME fields for parametrization.

ParameterValue
alert_subject"AME Alert - Status $result.ame.status$"
alert_message$result.ame.event_title$
alert_recipientsadmin
alert_severity0
dashboard_toggle1
alert_dashboard_idhttps://127.0.0.1:8089/servicesNS/nobody/alert_manager_enterprise/data/ui/views/splunk_mobile_event_summary
result_fieldnameame._key
token_nameevent_id_token
info

If an assignee is set you can set the alert_recipients dynamically with $result.ame.assignee$

When the notification is triggered, the Splunk Mobile Event Summary will be shown:

Notification Templates

Notification Templates specify the format of notifications. AME provides.

AME comes with a Template Library for all triggers as well as all targets.

Using the arrow down button on the right of the Add Notification Target, the template library modal will be opened:

  1. Give the template a name
  2. Select the target type for the template
  3. Add a flow type (trigger) for which the template should be used.

It is also possible to create your own templates (subscription required).

Click on Add Notification Target and a modal will open.

  1. Give the template a name
  2. Select the target type for the template
  3. Add a flow type (trigger) for which the template should be used.
  4. Add the template in text and (where available) structured format.

The template uses Jinja templating. See Jijna Docs for syntax.

See the existing templates on how to loop through updates.

The following substitutions are available:

All Contexts

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app

Event Update Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
link_to_eventDeep-Link to the event
commentComment on the action that caused the change (if applicable)
updatesList of fields that were updated

Event Updates-Item

FieldDescription
attributeField that was updated
old_valueOld value
new_valueNew value

Event Assigned Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
link_to_eventDeep-Link to the event
assigneeNew assigned user

Event Appended Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
link_to_eventDeep-Link to the event
countNew count

Event Commented Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
link_to_eventDeep-Link to the event
commentsList of new comments

Event Comment-Item

FieldDescription
textComment
actorUser
timestamp_formattedTimestamp of the comment

Rule Matched Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
link_to_eventDeep-Link to the event
keywordDefined keyword
messageDefined message
rule_nameRule that was matched

Event Deleted Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
link_to_eventDeep-Link to the event

Event Created Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
search_nameName of the search that created the event
fieldsAlert - fields
info

To access event fields, use following Syntax: {{ alert_data.<field_name> or 'n/a' }}

Bulk Update Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
event_countNumber of events that were affected
updatesList of events that were updated

Bulk Updates-Item

FieldDescription
attributeField that was updated
new_valueNew value

Bulk Delete Context

FieldDescription
actorUser that invoked the action
ame_hostHostname
ame_linkLink to instance / app
event_countNumber of events that were affected

Additional Single-Event Notification Contexts

FieldDescription
ame._keyUnique identifier for the event
ame._indexIndex of the event in the database
ame.event_titleTitle of the event
ame.tenant_uidTenant identifier
ame.impactImpact of the event
ame.urgencyUrgency of the event
ame.priorityPriority of the event
ame.assigneeUser assigned to the event
ame.search_nameSearch name of the event
ame.countNumber of events
ame.statusStatus of the event
ame.notificationsNotifications for the event
ame.resolutionResolution of the event (optional)
ame.tagsTags for the event
ame.notable_fieldsNotable fields for the event
ame.first_seenTimestamp of the first event
ame.most_recentTimestamp of the most recent event
ame.event_ttlTime-to-live for the event
ame.ttl_targetTarget for the time-to-live
ame.templateTemplate for the event (optional)
ame.priority_nameName of the priority
ame.status_nameName of the status
ame.template_nameName of the template (optional)
ame.resolution_nameName of the resolution (optional)
link_to_eventDeep-Link to the event
commentComment on the action that caused the change (if applicable)