
HaloITSM Guides
Documentation to assist with the setup and configuration of the HaloITSM platform
Chat Bot and Chat Profiles
In this guide we will cover:
- What is the Chat Bot?
- How to Configure a Chat Profile
- User Verification
- Start Live Chat
- Translate Live Chat (Using Azure Translator)
- Example Bot Flow
- Customising the Chat Bot Profile
- Setting which Chat Profile is used
- Chatbot Variables
- The Chat Area
- Virtual Agents
Associated Administrator Guide:
Related Guides:
What is the Chat Bot?
The chat bot in Halo PSA is a functionality which allows users and agents to view information/complete actions through a chat. A chat profile will need to be configured to control the direction of the chat and return pre-defined responses and outcomes.
In Halo, the chat bot can appear on the self service portal as an additional way for users to ask questions, log tickets, view information etc. It can also be configured in Halo and then embedded to an external website, allowing users to log/ tickets outside of Halo. The chat bot can also be used in the agent application, by agents, to assist agents in finding information.
How to Configure a Chat Profile
The chat profile determines how the chat bot operates, in terms of the responses it gives and the actions it can carry out.
Head to Configuration > Chat > Chat profiles > New, here give the profile a name then head to the 'Bot Flow' tab. It is within this tab that the responses/actions of the bot are configured.
Similarly to Halo workflows, each step of the chat can be configured, as the user works their way through the chat they will be taken to different steps depending on their responses. When creating a new step you will need to give the step a name and select the type of step.
As of v2.182+ each step in the bot flow will have the setting 'Chat can start from this step', when this is enabled the starting step of the chat can be overridden to be this step instead when the chat is embedded into other sites. See Halo Live Chat - embedded on other sites for more information on this.
Fig 1. Step setup
Step Types
Action:
When selected you will be able to choose an action type, each of these can be used to have the chat bot complete a particular process. Such as logging a ticket, searching the knowledge base etc. Steps of this type will be within a blue box.
The action types complete action as follows:
Send a message - Will post a message into the chat, when selected a message field will appear, allowing you to set the message you would like to be sent into the chat at this step. $-variables can be used here to pull certain information into the message, a link to the available variables will be provided on the page.
KB Search - This will search the knowledge base and return an article to the user. The criteria that is searched can be set using the 'KB search method' field.
Log a ticket - This will log a ticket of a set ticket type or template. If the setting 'Send a link to a form awaiting completion' is enabled the user can be sent a link to complete a form for the ticket type/template in the portal, only once this is complete will the chat continue. To give them the link to the form $-LOGTICKET must be added to the ticket link message field.
Start Live Chat- This will start a live chat with an agent through the chat bot. The user will be able to message an agent in real time. When selected you will be able to choose the teams the live chat can be assigned to. It is recommended to run a condition before this action to check an agent is available to avoid the user waiting long periods for an agent response.
End Chat - This will end the chat flow. This should be used as the last step in the flow.
Service Issues - The user will be shown the services that have issues of those they are subscribed to.
Open Tickets - The user will be shown a list of their open tickets.
Walk Through logging a ticket - This will log a ticket of the type/template selected. The user will be prompted to enter each field on the ticket one by one. Once all the fields are complete the ticket will be logged.
Log a Service - This will log the ticket type associated to the service selected below. The user will be prompted to enter each field for the service one by one, if the service contains the option to log optional services the user will be directed to the portal.
Start a new chat flow - This will begin a new chat flow, the chat will then continue using the flow selected. Under 'outcome' you will need to choose the step the chat moves to if it fails to start this flow.
Verify User- This will prompt the user to answer a series of questions and the answers must match a user-level field. If all questions are answered correctly the chat will become associated with that user account. When selected a table will appear in which you can add questions and their associated field. For example, if I add the question 'what is your email' with the matching field 'email address' the user will be asked this question, need to type in their email, if the email they enter matches that in the 'email address' field against the user account the outcome will be deemed as successful.
AI Response - This uses AI functionality to return a text response to the user, it cannot carry out system actions. You will need to enter a prompt in the 'OpenAI System Message' field to give the model the context in which it is functioning. You will need to be connected to an AI model to use this functionality.
Virtual agent Conversation - When selected you can choose a virtual agent the user can converse with. Virtual agents use AI functionality, this is covered in more detail here.
Execute a Runbook (v2.188+)- When selected you can choose a runbook to be triggered when the chat reaches this step. This allows you to run automations at set chat steps. For more infomation on this functionality check out our guide Execute Automation runbooks from the chatbot.
Input:
This step type will prompt the user for input of some sort to help you determine the direction the chat should move in. This input may be stored in a set field for the duration of the chat, or can be used as part of an action e.g. to complete a search. Steps of this type will be within an orange box.
The Input Types are used as follows:
Free Text - The input required is prompted using text in the 'message' field, this is typically used to complete input based searches.
Selection - Allows you to ask the user a question, giving them a selection of answers to choose from. The chat will move on based on the users selection. Enter the question to ask in the 'message' field and enter the selection options in the outcome table, setting which step the selection moves the chat to.
User Display Name- Prompts the user to enter enter their name. The text in the 'message' field will be used to give the prompt, once the user has entered their name this will be stored for if/when the user logs a ticket. When logging a ticket this will be attempted to match on an existing user, otherwise the ticket will be logged with this name as the end user.
User Email address- Prompts the user to enter enter their email. The text in the 'message' field will be used to give the prompt, once the user has entered their email this will be stored for if/when the user logs a ticket. When logging a ticket this will be attempted to match on an existing user, otherwise the ticket will be logged with this email as the end user.
Summary- This will prompt the user to enter some text and stores the text under the 'summary' field. If the user logs a ticket this input will be used as the summary.
Details - This will prompt the user to enter some text and stores the text within the 'details' field. If the user logs a ticket this field will be added to the ticket and the input will be visible to the agent. The details field does not need to be against the ticket type being logged.
All Custom fields - This will prompt the user to complete a custom field. If the user logs a ticket this field will be added to the ticket and the input will be visible to the agent. The field does not need to be against the ticket type being logged.
Feedback (v2.184+) - This will prompt the user to leave feedback on the chat so far. One-click feedback will be used in line with your current configuration for this. If feedback is logged at this step the user will not be asked to give feedback at the end of the chat.
Condition:
When selected you will be able to enter rule criteria for the step, and an outcome. Steps of this type will be within a white box. This criteria will be checked at this step of the chat and if met the user will be moved to a set step in the chat, if not met they will be moved to another step. In the Fig 2 example the working hours will be checked, if the chat is taking place within the working hours chosen here the chat will move to the step 'Log ticket'. If the chat is not taking place within working hours it will move to the step 'OOH ticket'.
Fig 2. Condition step type example - evaluating working hours
User Verification action (v2.172.1+)
The action 'User Verification' can now be chosen as an action type. This action type allows you to ask the user a series of questions in order for them to verify who they are. The chat can then move the a step depending on the outcome of the verification, e.g. successful > log a ticket, unsuccessful > end chat.
When setting this step up you will need to map a question to a matching field, this is the field the user's answer will be matched to. For example, in Fig 3 the user will be asked 'What is your email?', the answer they give will be attempted to be matched to an existing users email address field. If the answer they give matches data in this field this will be deemed as a match.
Fig 3. Verify user question example
In order for the outcome of the verification to be deemed as successful a number of conditions must be met:
- At least two fields will need to be matched successfully (full name does not count towards this).
- One of the fields must be email address
- All questions must be answered correctly
User verification is typically used on chatbots that are embedded into external sites as users will be accessing them anonymously. This provides you with a way of verifying a user who has not logged in before giving out any personal information. Allowing you to maintain the functionality of the chatbot (i.e. allow users to see their tickets) without compromising user data.
Add webpages and videos into chat
The chat flow can be configured to return a webpage or video to the user. Useful if you have existing resources for troubleshooting that you would like to make use of in your chat flow.
This is done by adding an Iframe into the message that the chat posts to the user. For example, add an action or input step to your chat flow and add an Iframe to the message field containing the webpage you would like to be shown to the user at this step, shown in figure 4.
Fig 4. Have chat return an Iframe
In the above example the chat will return a video to the user at step 2, then the user will be given some multiple choice options and the chat flow will move on based on their selection.
Fig 5. Chat returning video
You may find it useful to add the following formatting to your Iframe here
- allowfullscreen -This will allow the user to open the video/webpage in fullscreen.
- width ="" and height ="" - These will allow you to set the size of the video/webpage. If this is not set the iframe may exceed the size of the chat box.
Start Live Chat
This action will begin a chat between an agent and a user. The way in which live chat behaves/can be accessed by agents is determined by the setting 'New live chat display' under Configuration > Chat.
For more information on the live chat functionality, how this is used and how to set this up, check out our article Live Chat in Halo.
Note: From v2.186+ a chat module can be enabled to assist agents in managing live chats. See the article linked above for more information on this.
Example chat profile bot flow
You will have a pre-configured chat profile available in your Halo out-of-the-box. This can be found under Configuration > Chat > Chat profiles > HaloPSA Bot > Bot flow, this provides an excellent example on how the above step types can be used in conjunction with each other to create a chat flow. We will run through a few basic starting steps:
The starting step of the flow is indicated by a green box. Any step can be set as the starting step by enabling 'This is the start step' against the step.
Fig 6. HaloPSA bot flow example
In the HaloPSA bot example our starting step is a condition. This means when the chat is started an evaluation will run to see if the criteria is met. In this condition we are checking if the user is authenticated, in order for a user to be authenticated their name/email must match an existing end user. If the condition is met the chat will move to step 'Menu Input', if not met it will move to 'Name Input'.
The Name input path has an input step type and prompts the user to enter their name. This information will be stored in the 'username' field for the duration of the chat. Then an action step sends a message into the chat, another input step prompts the user to enter their email, this will be stored in the 'email address' field. Both fields will be used in the event the user needs to log a ticket.
The 'Menu Input' step provides the user with a multiple choice selection, the path the chat follows will depend on the option the user selects.
Fig 7. Input step type with selection
If the user selects 'I have a question' they will be asked for a free text input, this input will then be used to complete a search of the knowledge base. If a relevant KB article is found a link to this article will be posted into the chat.
If the users selects 'I'd like to report an issue' they will be prompted to enter some details (these will be stored in the 'details' field). Once entered the chat will send a message before logging a ticket, the incident ticket type will be logged. In this example the user is not prompted to enter any more fields so even though the incident ticket type has more mandatory fields only the details field will be populated when the ticket is logged. If you would like to ensure the user fills out all fields either enable 'Send a link to a form awaiting completion' against the step or use that action type 'walk through logging a ticket'.
Fig 8. Action step type to log a ticket
If the user selects 'I'd like to speak to someone' a condition will run to see if an agent is available for live chat a live chat will be started with an agent. At this point the flow will end as the agent will manage the chat. If an agent is not available for a chat the user will be prompted to advise if they would like a call back, if so to enter their phone number. A ticket will then be logged with the phone number the customer has provided.
Customising the Chat Bot Profile
Under the 'details' tab of the chat profile are various settings that allow you to customise how this chat profile appears/functions.
Access
Access - Determines where the chat profile can be used. For example, if agent app is chosen, you will not be able to set this chat profile to appear on the portal.
Working Hours - (Only applicable when this profile can appear on the portal) This determines when this chat profile can be used. For example if working hours are selected, this profile will not be able to be used outside of these working hours. This allows you to use different chat profiles depending on the working hours.
Appearance
Under the 'Chat Customisation' section of the Details tab, you can set how this chat profile looks.
Fig 9. Chat appearance customisation options
The bubble pop-up message can be customised so that the message differs depending on the URL the customer is accessing the chat through. This is useful when you have multiple portals set up, or the chat is embedded onto other websites as this allows the message to be customised to the site the customer is on. To do this enable 'Use URL mappings to show different bubble popup messages depending on current browser URL' then map a URL to the desired message in the table below.
To set the icon that is used for the chat bot add the URL of a hosted image into the 'Icon URL' field. You can also set the size of the icon using the 'icon size' field, this will set the size for all chatbots across both the agent app and portal.
User Chat banners can be added to each chat profile (v2.176+). These are banners of text that appear under the name of the chat profile, as seen in figure 11.
Note: banners can only be configured for chat profiles used on the self-service portal and external websites.
Fig 10. Chat profile banner
Multiple banners can be created against a chat profile, each configured to display at a different date/time. Precedence can also be applied to banners, the banner with the highest precedence (lowest number) will show on the chat, unless the chat is opened outside the start/end time of the banner, then the banner with the next precedence will be used. This allows you to configure banners to change automatically at a set date/time in the future, useful to alert users to scheduled maintenance. In the figure 12 example the banner with precedence 2 will show until the 31/01/25, at which point the banner with precedence 1 will take affect (as the start date of this banner will have begun). After the end date of banner 1 (03/02/25) banner 2 will resume showing.
Fig 11. Chat banner example
You will see there is also a field below this table that shows which banner message is currently being displayed against this chat profile.
Ticket Creation
Under the 'ticket settings' section of the details tab you can set when/how tickets are logged from the chat.
Ticket Creation - This setting determines when tickets are logged, whether they are only logged when configured in the flow, or automatically logged at the end of the chat. If set to log automatically at the end of the chat you will be able to choose the ticket type that is logged, this will be logged with all the information the user has provided within the chat.
Default Customer/Site of Ticket for unmatched Users - This determines which customer and site the ticket is logged under if the user of the chat cannot be matched to an existing user.
Feedback
Under the 'Feedback' section of the details tab you can set feedback to be requested at the end of the chat.
To enable the use of feedback, enable 'Request one-click feedback when a chat is ended', this will cause the user to be prompted to leave one-click feedback when the chat ends. YOu can also set the message that appears when requesting this feedback in the 'Message before feedback' field. If you would like users to leave comments following feedback enable 'Request additional comments after one-click feedback'. (Comments are only available on v2.172+).
Setting which Chat Profile is used
Agent app chat profiles will appear for all agents that have access to them. Allowing agents to have multiple chat profiles available.
Only one chat profile can appear on the portal, therefore the profile that appears can be set in a few places, allowing the chat profile to change based on the portal organisation or customer. The global default chat is set under Configuration > Chat, see Fig 7.
Fig 12. Chat profile that will appear on the portal (global setting)
This can be overridden at organisation level too (applicable if using Multi-Tenancy). Under Configuration > Organisation > Configure My Organisations > select an organisation > Settings tab, here the field 'Self Service Portal Chat Profile Override' can be used to override the global default. The chat profile set here will be used for any portals that use the branding of this organisation.
This can also be overridden per customer under the customer profile > Settings tab > Self Service Portal, 'Self-Service Portal Chat Profile'. The chat profile set here will be used for any users under this customer logging into the portal, this will override the default and organisation settings.
Chat bot Variables
$-WAITTIME
This variable can be used in tickets, for example in an acknowledgement email and in the chat as part of a "Send a message" action. This variable will show an estimated wait time for a response/for an Agent to join a Chat based on the historical average for a set period. This can be used before or as a live chat is started to give the user an idea of how long they can expect to wait for an agent to be available for live chat.
For more information on this variable, how it can be used and calculated, see Live Chat in Halo.
$- CHATTRANSCRIPT (v2.178+)
This variable is used to populate a ticket with the transcript of a chat when a ticket has been logged from a a chat bot.
If a ticket is logged from a chat and the chat has ended successfully (reached the end of the flow) the chat transcript will automatically show against the ticket. However, if a ticket has been logged and the chat is still ongoing the chat transcript will not show against the ticket yet. Therefore, the variable $-CHATTRANSCRIPT can be used to populate a field in the ticket that has been logged from the chat with the chat transcript. This will only show the transcript up to the point the ticket is logged, if the chat continues following the ticket being logged the transcript against the ticket will not be updated. This allows agents to start working on a ticket (with the chat context) before the chat has ended.
If you are looking to use this variable you will need to add a field to the ticket that the chatbot logs and set this variable as the default value for this field (ideally making the field unable to be edited).
Note: This variable will only populate when a ticket is logged from a chat at the point of the ticket being logged.
The Chat Area (v2.186+)
From v2.186+ of Halo you can enable the Chat area. This is a new module where agents can see active and historical chats, allowing them to manage chats more effectively. The chat area can be used to:
- Allow agents to join, respond to and manage all their chats within a single module/area of Halo.
- Allow agents to log and partake in chats with other agents, or with AI virtual agents.
- See team members' chats.
For more information on the chat area see Live Chat in Halo.
Virtual Agents
Virtual agents use AI technology to process requests from users and agents. They can be plugged into a chat profile to increase the functionality of a chat profile. For more information on virtual agents, how to set them up and what they can be used for, see our guide here.
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