HaloITSM
HaloITSM is an IT service management solution that helps businesses streamline the entire incident lifecycle, from ticket creation to issue resolution. By combining xMatters and Halo, you can automatically find and notify the right people to respond before an issue becomes an incident.
This workflow lets you send actionable alerts to on-call resources when xMatters gets a signal from HaloITSM. Responders can initiate an incident with the press of a button, or you can build on the flow to perform automated resolution tasks.
How it works
When an alert is generated in Halo, it sends a JSON-formatted webhook to xMatters, based on user-defined business rules. A HaloITSM Incidents trigger in xMatters parses the webhook based on whether a Halo ticket has an agent assigned or not, and initiates a flow that either creates a new incident or updates an existing one.
Install the workflow
- Go to the Workflow Templates page and click the HaloITSM tile.
- On the Set up the Workflow tab, give the workflow a name that identifies its purpose (this must be unique in your instance), add an optional description, and set the default incident type (if applicable). Any built-in Initiate Incident steps in the workflow will automatically be set to the selected incident type.
- You can edit these later, if needed.
- Click Next to set up the connection.
- Choose the authentication method. A trigger URL is generated based on the selected authentication method.
- Copy the trigger URLs — you’ll use them to configure the webhook in HaloITSM.
- The trigger URL includes the recipients parameter, which specifies who should be notified. By default, this parameter is set to notify you (the logged in user), but you can set it to target any user or group you want.
- Copy the Configuration Payload to configure the signal in HaloITSM.
- Click Open Workflow to view and customize the workflow, or Close to return to the Workflows page.
Configure HaloITSM
To have Halo send alerts to the flow trigger you need to generate an API authentication token to obtain your Client ID, Client Secret, and Authorization Tenant. Then you can configure a webhook and set it to use the trigger URL you obtained from Flow Designer.
First create the API token authentication in Halo.
- In Halo, go to Configuration > Integrations > HaloITSM API.
- In the Configuration tab, click View Applications.
- Click Add to add a new application.
- On the Details tab of the Add an Application window, fill in the following fields:
- Application Name: Give the application a unique name.
- Authentication Method: Select Client ID and Secret (Services).
- Click Generate.
- Copy the Client ID and Client Secret to an easy-to-find location.
- Login Type: From the drop-down menu, select Agent. Select an agent from the drop-down menu of options.
- Go to the Permission tab. Select the edit:tickets checkbox.
- Click Save.
- On the main API page, copy your Authorization Server and Tenant information to an easy-to-find location.
Now configure a webhook to send Halo tickets to xMatters.
To have HaloITSM send alerts to the flow trigger, you need to configure two webhooks and set them to use the trigger URLs. One webhook is for Halo tickets with an assigned agent, and the other is for tickets without an assigned agent.
First let's create a webhook for Halo tickets with assigned agents.
- In Halo, go to Configuration > Integrations > Webhooks.
- In the top-right corner, click New.
- On the New Webhook window, give the webhook a unique name. For example, "xMatters - Assigned" or "xMatters - Unassigned".
- In the Payload URL field, paste the trigger URL.
- Add the target names of any recipients you want to notify when the alert fires. You can either add them to the end of the URL, or in the Parameters tab.
- For URL authentication, use an ampersand to attach recipients. For example, if you want to notify Emma Pearson and the on-call members in the group responsible for the Antares service, you'd add &recipients=epearson,antares to the URL.
- For other authentication types, use a question mark to attach recipients. For example, if you want to notify Barry Gull and the on-call members in the group responsible for the Cassiopeia service, you'd add ?recipients=bgull,cassiopeia to the URL.
- You must URL-encode any special characters or spaces in the target names.
- Add the target names of any recipients you want to notify when the alert fires. You can either add them to the end of the URL, or in the Parameters tab.
- Ensure the Enabled checkbox is selected and the Use a custom payload is deselected.
- In the Events section click Add.
- On the New Event window, expand the Event drop-down menu and select New Ticket Logged.
- Click Add to add the following criteria to the event:
- For tickets with assigned agents:
- Field: Agent
- Rule Type: Is equal to
- Value: Name of the assigned agent.
- For tickets unassigned to agents:
- Field: Agent
- Rule Type: Is equal to
- Value: Unassigned
- For tickets with assigned agents:
- Click Save to save the Event and return to the New Webhook window.
- Click Save.
- Repeat steps 2 - 10 to create a webhook for the Unassigned Agent.
Use the Events section to add any business rules for the webhook. A business rule is logic that determines when the webhook is used. The following steps describe creating a business rule for when a new ticket is logged in Halo.
Configure xMatters to send updates to HaloITSM
To send updates to Halo, the workflow requires a valid Halo agent ID. The following instructions describe how to create a custom property for the agent ID, then store the information in constants in your xMatters workflow.
The xMatters custom user property associates the agent ID of your Halo account with your xMatters account. Once the property is created, any user can add their Halo agent ID to their xMatters profile to receive notifications.
- Open the xMatters Admin menu and select Custom User Properties.
- On the Custom User Properties window, click Add Property and fill in the following fields:
- Name: HaloITSM User ID
- For the workflow to successfully send updates to Halo, the name of the property must be HaloITSM User ID. If you give this property a different name, you must update the workflow constant with the new name.
- Type: Select Text from the drop-down menu.
- Name: HaloITSM User ID
- Click Save.
Now that the property is saved in your system, you need to populate the field with the users' Halo agent ID. There are two ways to do this:
- Batch upload:
- Export a list of all users in your system. The file will contain a column for the custom property you just created.
- Add the Halo agent ID for each user.
- To find an agent ID in Halo go to the Configuration >Teams & Agents > Agents. Open the record for the agent then copy the agent ID portion of the URL. For example in the URL: <your-instance>.haloitsm.com/config/agents/agents?agentid=20964 the agent ID is 20964.
- Upload the file to xMatters.
- Manually add each user's agent ID to their account.
Here's how to manually add a Halo agent ID to an xMatters account profile.
-
To access your user profile, click on your username at the top-right corner of the xMatters, then select Profile.
- Click Edit Profile.
- Scroll to the bottom of the Edit Profile screen to the new HaloITSM User ID field.
- Enter the Halo agent ID into the HaloITSM User ID field.
- Click Save.
The HaloITSM workflow comes with two pre-configured constants. The first constant uses the HaloITSM User ID for tickets with assigned agents. The second constant sends notifications for tickets without assigned agents to an xMatters group. You'll need to configure this constant with the name of the group.
- Open your HaloITSM workflow.
- Click the Flow Designer tab, and open the HaloITSM Alerts canvas.
- Expand the Components menu and select Constants.
- Select the Unassigned HaloITSM tickets tab.
- In the Value field, enter the name of a valid xMatters group.
- If you need to create a group, see Manage Groups for instructions on creating and populating groups.
- If you named the custom user property something other than "HaloITSM User ID", click the HaloITSM User ID Property tab and update the Value field.
- Click Save then Close.
The constant values are used in various steps throughout the workflow.
When you look at the workflow, you'll notice each Halo step has configuration error that must be resolved before the flow will work. To clear these errors, you'll need the Client ID, Client Secret, and Authorization Tenant you saved when you configured HaloITSM.
- Open each step by double-clicking on it, or click the pencil icon to edit.
- On the Setup tab, enter the Client ID, Client Secret, and Authorization Tenant.
- Click Done.
- Save your flow.
Continue adding the Client ID, Client Secret, and Authorization Tenant to each step in the flow to clear the configuration errors.
Set recipients in the trigger URL
The trigger expects the recipients in the trigger URL. When you copy the URL from xMatters, it includes the recipients parameter: recipients=<yourname>. Of course, you don’t want to receive all the alerts.
To change the recipients for alerts from this webhook, swap out your name for the people or groups you want to target.
- For URL authentication, use an ampersand to attach recipients. For example, if you want to notify Emma Pearson and the on-call members in the group responsible for the Antares service, you'd add &recipients=epearson,antares to the URL.
- For other authentication types, use a question mark to attach recipients. For example, if you want to notify Barry Gull and the on-call members in the group responsible for the Cassiopeia service, you'd add ?recipients=bgull,cassiopeia to the URL.
Remember to URL-encode any special characters, including spaces, in your group names.
We recommend using groups so you can take advantage of the xMatters group features — rotations, escalations, and absences — to reach the right on-call people to jump on an issue.
How to use the workflow
The HaloITSM workflow performs two-way communication between xMatters and HaloITSM. When condition you've set fires, it sends a signal to xMatters, which either creates a new incident or updates an existing one. When there is a change to the incident in xMatters, an update is sent back to HaloITSM.
When a signal is received from HaloITSM and a new incident is created, the person responding to the notification has the following response options available:
- Assign to me: Acknowledges the notifications and stops escalations. The HaloITSM incident is updated with a note containing the xMatters incident ID and information about the authenticating user.
- Escalate: Immediately escalates the alert to the next on-call resolver in a targeted group.
- Resolve: Ends the xMatters alert and stops notifying all targeted recipients. The HaloITSM incident is resolved and a note is added for the change in status.
- Close: Ends the xMatters alert and stops notifying all targeted recipients. Both the xMatters and HaloITSM incidents are closed and a note is added for the change in status.
Next Steps
Now that you've installed the workflow, you can use it as-is, or customize it to suit your needs better. Here are some examples of things you can add to the workflow to customize it:
- Use Slack, Zoom, and Microsoft Teams steps to add collaboration channels to the flow.
- Change the severity of incidents created when a recipient selects the Initiate Incident response.
- Update the message sent to resolvers to include the information most relevant to your team.
- Use the HaloITSM Incidents trigger to build your own custom flows.