
HaloITSM Guides
Documentation to assist with the setup and configuration of the HaloITSM platform
Slack Integration
In this lesson we will cover:
- How to connect to Slack Channels
- How to configure Slack notifications
- How to create tickets from Slack messages
- Version 2 functionality
- Creating Channels and Messaging
- Shortcuts and Slash Commands
The Slack integration can be used to connect your Slack instance to your Halo instance allowing you to create and and update Slack channels from within Halo. The integration also allows notifications to be sent into Slack based on events that occur in Halo and tickets to be created in Halo using information from a Slack message.
The version 2 functionality also supports the use of shortcuts and slash commands to perform Halo operations from within Slack. As well as creating new and updating existing Slack channels from within Halo. From v2.176 you can connect a Halo chat bot profile to your Slack workspace, allowing users to work through a chat flow via Slack, which can facilitate users to completing actions available through the chat flow.
Connecting to Channels
To connect a Slack channel to Halo, navigate to Configuration > Integrations and enable the Slack module. Once enabled, click into the module, under the 'Workspaces and channels' tab you will need to select which Slack application you would like to use 'Halo Service solutions' or 'Halo Service solutions v2'. The v2 application is available as of v2.152.1 and has some additional functionality, such as being able to use shortcuts and slash commands within slack as well as the ability to create channels and send/receive messages to these channels to and from tickets in Halo.
To connect to a slack channel use the 'Workspace and Channels' button.
Fig 1. Workspaces and Channels tab in slack setup
This screen allows you to see all of the current authorized Slack channels, as well as connect to new ones.
Fig 2. slack channels list
Select the new button in the top right corner of the screen and press connect. You will be redirected to the Slack login page, where you can select a channel to connect. After choosing a channel and selection allow, you will be redirected back to Halo.
A new set of options will now be displayed.
Fig 3. New Slack channel
The channel name and team are non-editable as these values are set by Slack.
Under the 'Notifications' tab you will have an option to set which agents can use this channel for notifications. By choosing a specific agent for the channel, then the channel will only be available for use for agent notifications for that particular agent. If all is selected, then all agents can create notifications for the channel.
Configuring Notifications
To add new notifications, navigate to Configuration > Notifications. There are two types of Slack notifications that can be configured.
Slack Notification type
Choose the notification type "Slack Notification". This gives an additional option to choose a channel that you want to post a notification to.
Fig 4. Slack notification type
This will send a notification to the chosen Slack channel when the trigger for the notification occurs.
Agent notification type-sending to Slack
Choose the notification type "Agent Notification (Single Agent)" and then choose the "Send to Slack" delivery method.
Fig 5. Send to Slack delivery method
This will send a notification to the chosen Slack channel but only for the selected agent when the trigger for the notification occurs.
For more information on configuring notifications and what trigger does see our lesson here.
Creating Tickets from Slack
Once the Halo Service Solutions app has been installed into your Slack workspace, you will have the option to create a ticket directly from Slack messages.
It is important to note the user in Slack who is creating the ticket must have an email address that matches a user in Halo. If their email address does not match a user they will not have permission to create/update tickets.
To enable this functionality, you first need to enable the feature against each individual Slack channel that you've connected to in Halo. Then you will need to choose the ticket type and user that tickets created from Slack will be creates as/assigned to, this is set per channel.
Fig 6. overriding ticket type for slack channel
The chosen ticket type must not have any mandatory fields on it, so it is recommended that you create a new ticket type for this feature.
Now in Slack, find the message you'd like to create a ticket from, select the three dots against the message and select the "Create Ticket" shortcut. This will pop open an input screen.
Fig 7. Create a ticket shortcut in Slack
At the top of the input screen will be some details about the channel/user and the selected message. Any attachments will also appear as hyperlinks. This gives a brief overview of what your ticket will look like once created in Halo.
You then have a summary field and additional notes field to add more detail to the ticket you are about to create.
Once submitted, a message will be posted back to the channel with a hyperlink containing the ticket ID if successful.
Fig 8. New ticket creation message
Everything contained within the input screen will then be displayed as the opening note of your ticket.
Fig 9. New ticket created in Halo
Version 2 Functionality
When the version 2 app is selected in the Slack setup screen additional functionality is enabled. This includes the use of shortcuts and slash commands within Slack, as well as the ability to create channels and send/receive messages to these channels to and from tickets in Halo.
Once you have changed the Slack application, any previously authorized workspaces/channels must be reauthorized. Each channel configuration has configuration options that override the options on the main integration setup screen.
Shortcuts & Slash Commands
Once the v2 application is installed in your Slack instance, users can use the /halo slash command to perform Halo operations within Slack.
A list of workspaces that can utilize this functionality are listed at the top of the page. There are also configuration options allowing you to choose the ticket type/user that should be used for new tickets, as well as an action that should be used for any updates received from Slack. These settings can be overridden per channel in the Workspaces and Channels area.
Fig 10. Configuration options for shortcuts and Slash commands
The following extensions to the slash command are available:
/halo login
This command initiates the login process. If you attempt to perform an action that requires authorization before you have completed this step, this step will be automatically triggered for you.
Fig 11. Log in command
/halo logout
This command can be used to disconnect from your Halo instance at any time.
Fig 12. Disconnecting command
/halo create
This command opens a window to create a ticket in Halo.
Fig 13. Create a ticket command
Similar functionality can also be achieved using the Create a ticket message shortcut. The only difference is that the message the shortcut is used on is included in the ticket details.
Fig 14. Create a ticket message shortcut
/halo update {id}
This command allows you to update a ticket in Halo from within Slack. {id} must be replaced with the ID of the ticket you want to update. The window allows you to write a note, as well as change the ticket's status. The status list is dynamic, and will only allow you to change the status to one of the current statuses available for the ticket.
Fig 15. Update a ticket command
Similarly, you can use the Add to ticket message shortcut to add a message to a ticket. The main difference is that the ticket ID is input on the update screen.
Fig 16. Update a ticket message shortcut
/halo follow {id}
This command will add you as the follower of a ticket. The {id} should be replaced with the ID of the ticket you would like to follow. Once completed, a message will show in Slack to confirm the ticket update was successful. An action will also show on the ticket in Halo confirming the follower addition.
Fig 17. Ticket updated message
Fig 18. Action in Halo with update from Slack
/halo unfollow {id}
This is the same as above, but for unfollowing tickets instead.
/halo find {id}
This returns some brief information about a particular ticket. Some additional action buttons are also returned.
Fig 19. Find command
The action buttons perform as follows:
- View - opens the ticket in your Halo instance.
- Update - opens the ticket update window (the same as the slash command).
- Follow - adds you as a follower of the ticket. If you are currently a follower, the follow button will be replaced with an unfollow button instead.
Creating Channels and Messaging
Once the v2 application is installed in your Slack instance, you can create channels from within tickets in Halo. To to this head to the 'Creating Channels and Messaging' tab and check 'Enable creating channels and sending messages to channels from HaloPSA'. You will need to choose the default workspace that is used for new channels (but this can be overridden at ticket type level. A default channel name can be configured (use of $-variables is supported), as well as choosing the visibility options of any new channels.:
Fig 20. Creating channels and messaging tab
Once enabled in the integration configuration, channel creation must be enabled at ticket type level. Head to configuration > tickets > ticket types > select a ticket type > settings tab > Slack channels section, here enable 'Allow Slack channels to be created from this Ticket Type'. Once enabled the default workspace, channel visibility and channel name can be set for channels created from this ticket type (this will override the global settings).
Fig 21. Ticket type new channel settings
Once configured, on the quick actions for a ticket, you will now see a 'Create Slack Channel' option. This will open a channel creation screen which will vary depending on the configuration you have chosen. This screen also allows you to add additional members to the channel.
Fig 22. Quick actions on a ticket
Fig 23. Channel creation screen
Once created (and if configured at ticket type level), the chat will display on a tab within the ticket
Fig 24. Chat from Slack in Halo ticket
Any new messages added to Slack will automatically be added here. Similarly, you can use the plus icon in the top right-hand corner to post a message to Slack from Halo.
Connecting the end user chatbot to your Slack (v2.176+)
End user chat profiles in Halo can be connected to Slack. This allows users in your Slack workspace to interact with pre-configured bot flows created in Halo, to ask questions/complete actions. Much like when users interact with the chat through your Halo self-service portal, the chat bot can be used to complete various actions such as, asking questions, return knowledge base articles, log a ticket, etc. When the chatbot is integrated to your Slack users will be able to complete these actions in Slack too via the chatbot. For a comprehensive list of the chat bot's functionality see our lesson here.
Note: At present the AI virtual agent functionality is not supported when integrating/accessing the chatbot through Slack, Iframes returned by the chatbot are also not supported.
Configuring Slack chatbot
To connect the chatbot to Slack you will need to create a new Slack application that is linked to a chat profile in Halo. We will run through how to do this.
To head to configuration > integrations > slack > End-User Chat tab, select 'Create Manifest'.
Fig 25. End-User chat Slack configuration page
This button is used to create a JSON manifest file that can be copied and pasted to create a Slack app, t ensure the app is configured with the correct permissions and endpoints. When this button is selected you can enter a name and descriptions, these will be used to name/describe the app in Slack.
Fig 26. Manifest setup
Once you hit save a JSON file will be downloaded, you will be able to see this in your browser downloads. Open this file up in the desired format and keep it to hand.
Now head to https://api.slack.com/ head to 'Your apps', on this page you will be prompted to log into your Slack account. Once you have signed in you will have the option to 'Create New App' on this page.
Fig 27. Create new Slack app
Choose the option 'From a manifest' then choose the Slack workspace you would like the chatbot to be used in.
Now you will be able to enter the JSON from the manifest we created earlier. The Slack pop-up will contain some JSON already, remove this and replace it with the JSON from your manifest (copy and paste). It should look similar to the figure x example.
Fig 28. Enter manifest for app creation (our instance domain has been redacted here)
Then hit 'next' and 'create'.
Now the app has been created you will be taken to a page containing your app credentials. This app will need to be installed to your Slack workspace, head to the 'OAuth and Permissions' tab and hit 'Install to YOURWORKSPACE'. Once installed the app will appear under the 'Apps' area of your Slack.
Fig 29. Install app to workspace
Keep this page open and head back into Halo.
Head to the Slack integration configuration page > End user chat tab, here click 'Configure Slack Apps' and create a new app.
Fig 30. Configure Slack app in Halo
Here, you will need to enter the details of the Slack app you have just created. These details are obtained from Slack API seen in figure x.
Fig 31. Slack app credentials
Name- Give the app your desired name
App ID - This is obtained from the 'App ID' field under the 'Basic information' section of your Slack app.
Bot User OAuth Token - This is obtained from the 'Bot User OAuth Token' field under the 'OAuth and Permissions' section of your Slack app.
Signing secret - This is obtained from the 'Signing Secret' field under the 'Basic information' section of your Slack app.
Chat profile - Here choose the chat profile you would like to be used when users start a chat in this application. We recommend choosing a simple out of the box chat profile when first setting this connection up to test the chat has connected successfully. The chat profile set here can be changed anytime without the need to re-authorise so once the connection is confirmed you can create a new/customise your chat profile and set it here.
Save this and the configuration is complete!
To have multiple chat profiles available in your Slack workspace you will need to create multiple Slack apps (one for each chat profile).
Using the Chatbot in Slack
Head to the application you created in Slack for your chatbot, here you can start the chat bot flow.
The slash commands /Startchat and /endchat are used to start and end the bot flow in the Slack application. Once the user uses the /startchat command the chat will be started, some text input will need to be entered into the chat to prompt the first step of the bot flow will begin .
Fig 32. Chat started using slash command
Fig 33. First step of chat bot flow triggered
Popular Guides
- Asset Import - CSV/XLS/Spreadsheet Method
- Call Management in Halo
- Creating a New Application for API Connections
- Creating Agents and Editing Agent Details
- Departments and Teams
- Halo Integrator
- Importing Data
- Multiple New Portals with different branding for one customer [Hosted]
- NHServer Deprecation User Guide
- Organisation Basics
- Organising Teams of Agents
- Step-by-Step Configuration Walk Through