Posting BMC Helix ITSM incident and work note updates in Slack by using MuleSoft Anypoint platform
BMC Helix iPaaS, powered by MuleSoft provides a prebuilt integration template that enables you to post Slack messages when an incident or an incident work note is created or updated in BMC Helix ITSM. To use the integration template with the values defined out of the box, you update the project configuration with details of your systems, create the required Webhook registrations, and deploy the integration template.
The template provides the following capabilities:
BMC Helix ITSM to Slack
|Create a Slack post|
Creates a Slack post when:
Depending on the fields defined in the project configuration, details are displayed in the Slack post. Refer to the following example of a message posted in Slack when a new BMC Helix ITSM incident is created.
BMC Helix ITSM to Slack data flow
The following image gives an overview of the data flow for posting Slack messages for an incident or work note created or updated in BMC Helix ITSM:
Before you begin
You require the following items to successfully set up and use this integration:
|Authentication and permissions|
|MuleSoft Anypoint platform subscription|
Important: BMC provides pre-build integration templates for the MuleSoft platform, targeting common integration use cases for BMC products. To obtain a MuleSoft platform license, contact MuleSoft support.
Task 1: To create the Slack channel and define scope for the BOT OAuth
- Create an App in Slack and assign a Slack Workspace (channel) to the app.
- When you create the App, on the Basic Information page, the App Credentials section displays the credentials that are required to access the App API.
- To be able to post messages to the Slack channel, define the scope for the app and install it to the Slack workspace.
- To add permissions for the app, on the OAuth & Permissions page, under Scopes, click Add an OAuth Scope.
- Add the chat:write permission.
- To generate the OAuth token to authenticate your app, click Install App to Workspace.
- To provide the permission required to access the Slack workspace, when prompted, click Allow.
The OAuth token is automatically generated and displayed on the OAuth Tokens & Redirect page. You need to add this value to the Target_BOT_OAuth_Token project variable.
Navigate to the Slack Workspace (channel) created for the App.
Enter the following message to join:
type msg : "invite @appName"
- When promoted, click Invite Them to enable users to add messages to the Slack channel.
For detailed information about creating the app and defining the scope for the BOT OAuth, see .
Task 2: To download and deploy the integration template project
- Download the file for the integration template.
Log in to the MuleSoft Anypoint Platform and select Runtime Manager.
To configure your integration template, click Deploy application.
To select the .jar file that you downloaded, and enter project details, on the Runtime tab of the Deploy Application page, select the following values:
Field name Value Application Name Enter a unique name for your application. Deployment Target Select the space for deploying the application, for example, CloudHub. Application File Select Choose File > Upload file, and select the Integration template .jar file. Runtime tab Runtime version Select the MuleSoft runtime version used to develop the application. Worker size
Select a core size for your application.
The core size defines resource allocation for your application and impacts performance.
For more information about worker size, see .
Select the number of dedicated instances of Mule for the application.
Deploying your application with more than one worker balances incoming load across allocated worker nodes. It also provides a backup if any of the worker nodes is not responding.
On the Properties tab of the Deploy Application page, add the following values:
key value ITSM properties
Enter the host URL For BMC Helix ITSM.
Enter the user ID to access BMC Helix ITSM.
Enter the password of the user to access BMC Helix ITSM. itsm.application.type
Enter the name of the application or form name; for example, SmartIT, Midtier
itsm.serverRoot.url Enter the root URL for the BMC ITSM Server, based on itsm.application.type value itsm.worknotes.viewaccess
Set the value to Public.
This value defines the permission for viewing the BMC Helix ITSM worknotes.
Slack properties slack.connector.token Enter the unique BOT OAuth Token UID for Slack.
Use the value generated in Task 1.
Enter the name of the Slack channel where the messages should be posted. MuleSoft API Webhook properties api.webhook.profile.type Enter Basic.
For Webhook Profile type as BASIC, provide the username for authentication.
For Webhook Profile type as BASIC, provide the password for authentication.
Optionally, if you want to enable email notifications, add the following values:
Email notification configurations email.property.smtp Enter the SMTP host details to configure the email. email.property.recipients Enter a comma separated list of email addresses for recipients who should receive the failure notification, if the request fails. email.property.sender
Enter the email address to be used for sending emails.
- Click Deploy Application.
While the application is being deployed, the log updates are displayed. After the application is successfully deployed, a green circle is displayed next to the template name.
Task 3: To register Webhooks for Incident and Worklog forms
Log in to Mid Tier.
- Enter the following URL to access the AR System Webhook Registration form:
Click New Request, and add the following values to the AR System Webhook Registration form:
Field name Action Form Name
- To add a Webhook for the BMC Helix ITSM incident form, enter HPD:Help Desk.
- To add a Webhook for the work notes, enter HPD:WorkLog.
Events Select Yes for the Create and Update events. Callback Information Callback URL Enter the callback URL in the format:
- serverURL— serverURL is the Domain url displayed on the application details page in Anypoint Platform
- basePath— http.listener.basePath defined in the # HTTP Listener Configuration section of the common.properties file in the Anypoint Studio project
- itsmPath— http.listener.itsmPath defined in the # HTTP Listener Configuration section of the common.properties file in the Anypoint Studio project
Authentication Type Select the api.webhook.profile.type defined in the # Mulesoft API Webhook Properties section of the common.properties file in the Anypoint Studio project User Name Select the api.webhook.profile.username defined in the # Mulesoft API Webhook Properties section of the common.properties file in the Anypoint Studio project Password Select the api.webhook.profile.password defined in the # Mulesoft API Webhook Properties section of the common.properties file in the Anypoint Studio project
Save the form.
Task 4: To enable the integration
To enable the integrations, you need to run the webhook creation scripts from your MuleSoft Anypoint Platform. These scripts automatically create the required webhooks for the integration.
Log in to the MuleSoft Anypoint Platform and select Runtime Manager.
On the Applications tab, click the project name.
On the application details page, click Schedules.
Select the appropriate option from the list displayed, and click Run Now. The following options are available:
ITSM-Create-Integration_Manual Trigger Creates the required Webhooks to enable creation of Slack posts from BMC Helix ITSM incidents or work notes ITSM-Pause-Integration_Manual Trigger Pauses the sync of incident and work notes between the BMC Helix ITSM incidents and Slack ITSM-Purge-Integration_Manual Trigger Deletes the Webhooks created to enable creation of Slack posts from BMC Helix ITSM incidents or work notes ITSM-Resume-Integration_Manual Trigger Resumes the sync of incident and work notes between the BMC Helix ITSM incidents and Slack
After you enable the integration, messages are posted on the Slack channel when an incident record or work note in an incident is created or updated in BMC Helix ITSM. The BMC Helix ITSM Incident ID is displayed is also displayed in the Slack message.