HaloITSM Roadmap
Find out about all the exciting, up and coming developments in HaloITSM
In Progress
Whatsapp Business Integration
Integration with Whatsapp for end-user communication.
WorkDay Integration
Integration with Workday.
AI-powered Alert Management
Enhancements to the alert management module to provide AI-powered alert consolidation.
Slack Integration Enhancements
Slack Bot to allow viewing existing tickets, starting conversations on a ticket, adding actions or updates and closing tickets directly from Slack.
PowerBI Integration
Introducing a method to push Halo data to Power BI without needing an ad-hoc SQL connection
Incoming Email Service
Creation of a new background service that will handle processing of emails based on webhooks from Graph/Google instead of regular checks of the mailbox
Up Next
Power Automate Connector
Building a connector for Halo's API in Power Automate.
Machine Learning Ticket Assignment
Introduce the use of Machine Learning to automate assignment to ticket based on previous assignments.
Future
Documentation Management
New area for managing templated documents through Halo. Integrations with Sharepoint and Confluence.
SaaS Management
Management of SaaS accounts and usage.
Recently Completed
The Barracuda RMM integration is now available
ChatGPT Integration added
We've added an integration with OpenAI's ChatGPT. This integration has a number of built-in use cases that can be easily customised and can be extended further using Integration Runbooks.
The ChatGPT integration can be configured from Config > Integrations > ChatGPT, and set up requires an OpenAI API Key. ChatGPT Plus is recommended to ensure prompt response times from the OpenAI api.
1. Using ChatGPT to Improve an Agent Note or Email
In Action config, in the ChatGPT group, set Operation to "Improve Agent Note". Then write some instructions for ChatGPT in the ChatGPT Prompt field, making use of $-variables.
E.g The following is some HTML text, please correct any spelling and grammar errors, make it polite, and preserve the html tags and br tags: $-RICHACTIONNOTE
This will allow an Agent to write a brief email response to the customer, which ChatGPT will correct any spelling or grammar issues, and re-write the email to sound more polite. The updated email is shown on the Email Preview screen before the email is sent.
2. Using ChatGPT to write a response to the User
In Action config, in the ChatGPT group, set Operation to "Generate User Response". Then write some instructions to tell ChatGPT how it should behave in the System Message field.
E.g You are a friendly chat bot that replies to HTML emails in HTML.
When starting this action, ChatGPT will be given this instruction as well as the conversation with the user so far, and will generate a response. This response will show in the Note field of the Action and allow the Agent to edit the response before sending it to the User.
3. Adding ChatGPT to the Halo Chat bot
An option has been added to Chat Bot flows to allow the Halo Chat Bot to reply using ChatGPT.
On a step set Type as Action, and Action Type as Generate Response with ChatGPT. Then you'll be able to set the behaviour of ChatGPT with a System Message.
E.g You are a friendly chat bot answering generic queries on a website.
This will mean that at this step ChatGPT will be sent the conversation so far with the system message telling it how to behave, and will generate a response and reply to the user.
4. Custom Integrations and Integration Runbooks
Further use cases of integrating with ChatGPT can be added by using Integration Runbooks.
E.g Setting up a runbook to ask ChatGPT to do something and post the response back onto the ticket.
A system-use ChatGPT Custom Integration record has been added which shares the API Key as the built-in integration, and will show when the ChatGPT module is enabled. This comes with an example of how to use the OpenAI API to ask ChatGPT a question and map the response to an Output Variable.
Planning screen added
When you navigate to timesheets you can now find a planning button in the top right which will show the following:
This is the total amount of time each agent has booked into appointments and tickets on a given day and behaves much the same as timesheets. There are 2 settings in project management to determine the percentage thresholds on when each block changes colour from orange then to red.
Redesigned the Halo Integrator
The Halo Integrator's layout has been redesigned so that it is easier to use, and now contains only 4 tabs:
- Basic Configuration
- Integrations
- Processing
- About
Instead of each integration having its own tab, all integrations can now be activated from the integrations tab. It is also possible to break up an integration sync further by allowing certain instances of a particular Integrator to only process certain parts of an integration:
The processing tab now allows you to choose which active integration you would like to sync from a drop-down field, allowing for easier first-time testing when manually setting up a new integration sync.
Alongside the layout changes, many improvements have been made to the way in which each integration sync runs.
Custom integrations and Integration Runbooks are now available
Custom Integrations & Integration Runbooks allow you to define your own set of API calls to third-party applications and chain them together using the results of the previous API calls.
A new "Custom Integrations" config area has been added to Config > Integrations. Here you can configure 3 new entities;
- Custom Integration: this record holds a collection of Methods, and defines the authentication used for each Method.
- Method: this is a single API call where the request can be customised
- Integration Runbook: this contains a workflow (similar to the Chatbot flow) that the automation follows, and includes steps to either execute a method or advance based on Conditions.
Custom Integrations
The Custom Integration record acts as a group for methods and is where Authorisation on its methods is defined. A base URL for all methods in the Integration can also be set here. The available Authorization types are;
- None
- API Key
- Bearer Token
- Basic Authentication
- OAuth2 - Client Credentials, Password Credentials or Authorization Code
- Signature with X.509 Certificate
- Signature with a Secret Key
Methods
In a Method you can choose between a HTTP GET, POST, PUT, PATCH or DELETE, and customise the Url, Query Parameters, Request Headers, Authentication (inherited from the Custom integration record), the Request Body and Define output variables. The available content types for the body of a method are;
- None
- Json
- XML
- x-www-form-urlencoded
- Plain
Variables can be used in any part of the request. These variables are separate from ordinary $-variables, and start and end with << and >>. Variables include the Halo API json response for the /tickets and /actions endpoints and nested properties in those responses, and the responses of other methods that have been run already in the Runbook. Available variables show on the right-hand side of the method config screen and are split into categories. You can click a variable to insert it to wherever you are typing.
These variables accept a few different operations to access nested objects/properties and array indexes in a response;
- ^ can be used to access a property of an object
- [x] where x is an integer can be used to access a specific index of an array
- [id=value] where id is a property name in an object in an array and value is a value can be used to find a specific object in an array
- ! can be used at the end of a variable to remove start/end string characters from the variable output
For example, if a ticket level field doesn't show in the variables list you can still access it using knowledge of the Halo API, E.g <<ticket^tickettype^name>> will give the ticket type name.
Each method automatically has a variable which represents the entire response of the request, but more variables can be defined in Output Variables for a method. This allows you to create an easy way of accessing a particular value from a response across the runbook without typing out the full calculation, and Conditions in a runbook can be based on these Output variables.
In the example screenshot above, this will assign a nested property called summary in the response of the method to the variable <<ResultSummary>>, and the value of <<ResultSummary>> can be used in Integration Runbook Conditions and other Methods in the same runbook.
The method config screen has a test button, where variable values can be manually input to try out different values for variables.
Integration Runbooks
In an Integration runbook you can define the following types of steps;
- Condition: create a set of conditions from either Variable value or Ticket field values, and advance the flow based on whether the condition is met or not. These conditions are like rule criteria, with some additional rule types specifically for Runbooks.
- Action: Execute a method, and advance the flow based on whether a response with a status code between 200-299 was returned or not
- End: The end of the runbook has been reached.
Custom Integrations and methods can be added and modified on the Runbook config screen as you go. As you add methods to a runbook a set of Runbook-level variables will become available on the Method details screen showing which variables are accessible in that Runbook, and Conditions will only contain variables for methods in the runbook.
Integration runbook's run in the background using the same engine as Action Automations, with a queue and retries on failure.
An integration runbook can be started in a few different ways;
1. From a Workflow, choose an Automation and choose the type of Integration Runbook instead of the usual Quick action automation. This can be used to advance a workflow upon completion of the runbook.
2. From an Action, you can use the system use "Send Webhook/Queue Automation" and the Runbook will be queued when the action is done.
3. From an Event, in the same way that a Webhook can be queued from an Event, such as "New Ticket Logged". This is configured from the Integration Runbook config screen.
4. From a third party. In the Integration runbook config screen, you can choose to expose an API URL to start the Runbook, which allows third-party apps to start a Halo runbook by doing a HTTP POST to that URL. This URL can be protected with Basic Authentication, or by Verifying a signed payload with a Secret Key (No authentication is not recommended for use in production).
When using method 4, since there is no Ticket linked to the runbook, you can instead use the initial payload that started the runbook as a variable and define more variables based on this on the Integration Runbook config screen. Using this method you can get Halo to accept webhooks from a third party by adding Halo as a custom integration.
Request logs can be viewed from the Integration Runbook, a Method, or an Automation record. The new entities have change tracking enabled and can be exported to/imported from JSON. Minor improvements to Webhooks and other related features have also been made.
Requires NHServer v13.55+ for compatibility for queueing from a workflow when using email.
Milestones are now available
Milestones can now be added to tickets. First you need to enable the setting at ticket type level to turn them on.
Once enabled, a new milestone tab will appear on that ticket type and you can add milestones to each ticket. Each milestone can be made dependent on milestones and can have a list of tickets within it. All tickets that are against a milestone that is dependent on another that has yet to be finished will be locked until that milestone is completed.
LogicMonitor integration is now available
End-user chat can now be used in Microsoft Teams
End-user chat can be enabled in Microsoft Teams so that end-users can communicate with a chatbot that sits in Microsoft Teams based on a chat profile that you have created.
The chat profile you choose must allow access to anyone (must not be restricted to authenticated users only).
It is possible to add your own branding to the chatbot, as well as personalize the welcome message that is sent to an end-user when they install the app in Microsoft Teams from your organization's app library. In addition to this, you can also modify the help command's text, allowing you to personalize the chatbot's instructions as well as include other contact information that may be useful to the user if they don't get the response they need from the chatbot.
To add your own branding to the chatbot, you can use the manifest generator (click the Create Manifest button). This will allow you to add two descriptions and two logos that will be used for the chatbot in Microsoft Teams and visible to your end users.
Saving this input screen will download a manifest.zip file. This zip file can be manually installed into Microsoft Teams for personal use, or for your entire organization. To install the app, open Microsoft Teams and navigate to Apps > Manage your apps > Upload an app and select your desired option. You will then be prompted to select your manifest.zip file. Please note that Microsoft Teams will reject any naming variation of this folder, so the name must be exactly manifest.zip.
Once selected, you will be prompted to install the app.
After installation of the app is successful, the chatbot will send you the configured welcome message. If, for whatever reason, the chatbot is not successful in recognising your Halo instance, a default welcome message will be displayed.
There are three bot commands available to the user: the help command, Start a new conversation, or End the conversation.
Once a new conversation is started, the user can begin conversing with the chatbot following the chat profile you have created.
The user can end the conversation at any point by using the End the conversation command.
All current chat profile functionality is supported in the Microsoft Teams chatbot, including speaking to an agent via live chat. In the above chat, if the user selects I'd like to speak to someone, the chatbot will attempt to connect them to an available agent. The agent can then communicate to the user in Microsoft Teams through the chatbot using live chat in Halo.
Drag and drop Email and PDF HTML template builder added
You can now build email template HTML and pdf template page HTML using a new drag-and-drop HTML designer component.
Set "HTML Template Editor Type" to "HTML Designer" in Advanced Settings to activate this. This will migrate your templates to a new format that is compatible with the HTML Designer.
The designer allows you to add Columns, Text, and Images via drag and drop from a toolbar, as well as add HTML Code for anything more advanced.
Please note that if you edit a template using the HTML Designer and then revert to the standard Rich Editor method for editing templates, editing a template will cause the HTML Designer design to be lost.
Improvements to the editor will come in future.
Improvements to the HaloCRM to HaloITSM integration
This integration will allow you to create Tickets in HaloITSM from your HaloCRM instance and manage updates between the two.
Priorities and statuses can be mapped for Tickets being created in HaloITSM. Basic information about the linked Ticket will be displayed in its own tab on the Ticket Details screen. Information includes Assigned Agent, current Status and current Priority.
A new system action has been added to create a Ticket in HaloITSM. (Only available in HaloCRM)
A new field has been added to Actions which allows you to send Notes to linked Tickets. This also includes a new default in the action configuration to send the Note. (Available in both products)