Leveraging AI in Halo - HALO

Leveraging AI in Halo

Overview


This knowledge base article is designed to help users harness the full potential of artificial intelligence (AI) within HaloITSM. Whether you are new to AI or looking to optimize your current use, this guide provides essential tips, best practices, and insights to enhance your experience and achieve superior results.


What You Will Learn

  • Understanding AI Capabilities: Gain a clear understanding of what AI can do within HaloITSM, including automation, data analysis, personalization, and predictive analytics.
  • Getting Started with AI: Step-by-step instructions on how to integrate and configure AI features to meet your specific needs.
  • Best Practices for AI Usage: Practical advice on how to use AI effectively.
  • Common Use Cases: Examples of how different industries and roles can leverage AI to solve problems and drive efficiency.
  • Troubleshooting and Support: Guidance on how to resolve common issues and where to find additional help and resources.

Understanding AI Capabilities

  • Types of AI (e.g., machine learning, natural language processing, computer vision)
  • Azure AI Search (a vector and full text information retrieval solution for the enterprise, and for traditional and generative AI scenarios)
  • Key features and their applications
  • How AI can transform your workflow and decision-making processes

Getting Started with AI

  • Initial setup and configuration
  • Connecting your data sources
  • Customization options to tailor AI to your specific requirements

Best Practices for AI Usage

  • Ensuring high-quality data input
  • Monitoring AI performance and accuracy
  • Ethical considerations and data privacy

Common Use Cases

  • Intelligent Summarisation
  • Intelligent Prioritisation
  • Intelligent Categorisation
  • AI Ticket Matching
  • AI Article Suggestion

Conclusion


By following the guidelines and best practices outlined in this article, users can unlock the full potential of AI on HaloITSM. This not only enhances productivity and efficiency but also drives innovation and competitive advantage. For ongoing support and updates, refer to our additional resources or contact our support team.

In this lesson we will cover:

– How to connect AI to your Halo instance

– Ticket Matching

– AI Insights

– AI Suggestions

– AI Article Creation

– Sentiment Analysis and Emotion Detection

– AI Report Builder 

– Thank you detection

– Improve agent Responses using AI

– AI Surveys

– Azure AI Search

– Logs and errors

This lesson will provide an overview for each of these functionalities but for more information on each functionality follow the link at the end of the associated section. 

How to connect AI to your Halo instance 

Before AI can be leveraged in your Halo instance you will first need to set up an AI connection. In this section we will run through how to connect using each connection type available.

Head to configuration > AI (ensure the AI module is turned on). Under the 'setup' section of this page you can choose which AI connection to use. 

Fig 1. Default AI connection 

Default AI Connection 

When this option is selected no further configuration needs to be set up. Note that when using this method you agree to your data being sent to Halo's OpenAI instance. Data is not stored by OpenAI or used to improve OpenAI.

Although this is the easiest method to setup and no additional cost is involved, not all AI functionality can be used with this connection method. The following AI functionalities will not be available. 

  • Knowledge Creation
  • Sentiment Analysis
  • Custom Integrations

Note: If you are using this connection method you will not be able to use the Azure OpenAI or OpenAI runbooks to run AI functionality. 

Azure OpenAI Connection

When this option is selected the Azure OpenAI model will be used. You will need to configure the connection to AzureOpenAI to use this. 

Hit the 'Configure Azure OpenAI connection' button to enter your connection details. 

To generate obtain the connection details required to connect to your Azure OpenAI see our dedicated lesson here

Own OpenAI connection

When this option is selected the OpenAI model will be used. You will need to configure the connection to OpenAI to use this. Note that free versions of OpenAI are limited in the connection they provide, although can be used for testing. If you are looking to use the OpenAI connection long term a paid account will be required. 

For details on how to connect using this model see our lesson ChatGPT Integration.

Ticket Matching

Before AI functionality can be used ticket matching must first be configured so embeddings and embedding scores are created for ticket data. Tickets will be 'scored' on similarity and will then be assigned a numerical value (embedding score) based on how similar they are, the more similar two tickets are the higher the score will be. 

Embedding scores are required to allow suggestions to be made, as suggestions will be given based on data from tickets that have a high embedding score with the new ticket. That is, if two tickets have a high embedding score suggestions will be made on the new ticket using data against the old ticket.

To set up ticket matching head to configuration > AI > ticket matching section. Here, enable 'Create Embedding Scores for Tickets'. 

Fig 2. AI ticket matching

Set the 'Ticket matching and AI insights method' field to be 'Built-in-functionality'. Then choose the vector search database that will be used to store the vectors (ticket data), Azure AI search is recommended if you have connected using Azure OpenAI. 

Note: AI suggestions can only be used when 'Built-in-functionality' is selected. 

Now you can configure the embeddings.

Embeddings

Use the 'AI Embedding Field' field to choose the field data that will be used to create an embedding. The data from this field will be passed to your AI connection to create the embedding. The field you choose here will be depend on the fields you use on your ticket types, the field selected must be present on the ticket types you would like AI suggestions to be used on. 

Fig 3. AI Embedding field 

Now choose the ticket types that embeddings will be created for in the 'Ticket Types with AI embeddings and insights enabled' field. Only the ticket types selected here will be able to have AI suggestions. 

Set the 'Minimum vector match score (Tickets)', this will be the minimum embedding score two tickets will need to have in order to be deemed a 'match'. Only data from 'matched' tickets will be used in suggestions. 

Embeddings will be created and indexed automatically each time a new ticket is created since enabling 'Create Embedding Scores for Tickets'. Before using AI functionality it is good practise to leave the embedding/indexing running for a while so suggestions are based on up to date accurate data. However, historical ticket data can be indexed using the 'Index tickets' button. When used you will be able to choose which ticket types embeddings are created for and indexed and schedule when the indexing will run. 

Fig 4. Creating embeddings for and indexing tickets

For more information on ticket matching and embeddings see our lesson here


AI Insights

Prerequisites

  • Setup ticket matching and embeddings

What are AI insights?

AI insights use AI to analyse a ticket to give further insights into the ticket, such as customer tonality, summarise the Ticket conversation, create a search term and suggest a priority. Insights can be created for any 'AI' system fields, this means if any of these fields are present on a ticket type they will be populated with AI insight data. 

AI insights can assist agents in managing and resolving tickets by automating various ticket processing procedures. Instead of requiring agents to manually read through ticket details and determine the summary and priority, AI can handle these tasks for them. Additionally, AI insights can enhance the user experience by reducing interpretation discrepancies between agents and providing consistent, data-driven recommendations. AI can also be utilized in resolution analysis to identify recurring patterns in logged issues, helping to improve overall service delivery and user satisfaction.

AI insights will automatically populate one of the following fields when the ticket is opened:

  • AI Tonality
  • AI Generated Summary
  • AI Satisfaction Level
  • AI Sentiment Analysis
  • AI Suggested Priority
  • AI Suggested Resolution
  • AI Suggested Type (Incident vs Request)

All you need to do is add the desired fields to the ticket type. 

Fig 5. AI insights fields

Dollar variables are also available for these fields (e.g. $-AITonality) so data from these fields can be pulled through to PDF/email templates. 

Configuring AI insights

AI insights can run either via Integration Runbooks or the Built-in functionality (recommended). Switching between the options above with automatically download and enable/disable the relevant runbooks. With 'Built-in-functionality selected, an AI Insights area will appear within the AI module. Head to configuration > AI > AI insights section.

Fig 6. AI insights configuration

This is already configured out-of-the-box but can be customised. 

AI Insights Context – Here you can give the AI model the context in which it is working, this improves the accuracy of the insights it returns. 

AI Insights Field – This determines the ticket fields AI insights are based on, data from this field will be sent to the AI model to run the evaluation. You can either use the 'Details' ticket field or customise what fields this is based on using $- variables. If customising with $-variables a free text box will appear next to this setting, here you can enter the $-variables for the fields you would like the insights to be based on. To see the $-variables for ticket fields head to https://YOURHALODOMAIN/variables

 Allow AI Insights to summarise the conversation – When checked, AI insights will be able to provide a summary of the conversation on the ticket. Once enabled you will be able to specify what ticket data is sent to the AI integration for it to summarise using $-variables.

Conversation AI Insights Data – Here, you can specify what ticket data is summarised by the AI, here you will need to enter $-variables. Using the variable $-ALLACTIONS will result in all actions on the ticket being summarised, but different variables can be used to limit what actions are summarised,  e.g. $ACTIONLISTPRIVATE will only summarise private actions.

Run AI insights using runbooks

To run AI insights using runbooks you can customise what data is analysed and how it is analysed by your AI model by editing the runbook. To edit the runbook head to configuration > integrations > custom integrations > integration runbooks > select the relevant runbook. The runbook will then either need to be triggered using an action or an event. To have the runbook trigger automatically after a particular event you will need to edit the runbook. To have the runbook be triggered by an action set the system use of the action to 'Send Webhook/Queue Integration Runbook' then in the 'Webhook/Integration Runbook' field choose the runbook you would like to trigger. 

Fig 7. Action configuration to trigger runbook

If running insights using runbooks the insights will be re-calculated each time the runbook is triggered. If you have the runbook set to trigger with the use of an action, this action will need to be used each time you would like the insights to be re-calculated. 

Re-running insights (Built in functionality)

When using the built in functionality insights will be calculated when the ticket is opened, however, they can be re-calculated manually against a ticket or using a ticket action. Allowing you to update the insights once there is more data available against the ticket/the ticket has progressed. Useful in giving insights into the ticket at point of closure. 

To re-calculate insights manually against any ticket hover over the '…' in the top right and select 'Re-index and re-run AI insights'.

Fig 8. Re-run AI insights in ticket details

To configure an action that will re-run insights head to configuration > tickets > actions > new > details tab. Here check 'Is a Quick Action' (as no fields are required). Then under the defaults tab enable 'Run AI Insights' and save the action.

Fig 9. Re-run AI insights 

Now ensure this action is added to the relevant workflows. When used AI insights and suggestions will be re-calculated based on the current data. 

Alternatively if you would like insights to be re-calculated after certain actions are used (such as email user, private note), just enable the setting highlighted in figure 5 against the action and each time this action is used the insights will be re-calculated.

For more information on AI insights see our lesson here.


AI Suggestions

Pre-requisites (Config > AI);

  • Ticket matching and AI insights method must be set to "Built-in functionality"

AI can be used to match a ticket to an existing ticket in your database and suggest values that should be applied to your current ticket based on historical ticket data. This can be used to automate ticket processing. In this section we will cover how to configure AI suggestions and what these can be used for. These are essentially a set of rules that are run after AI Insights and AI Matching. The matches are evaluated and if they contain similar values for fields like estimate, agent, and linked problem ticket, a prompt to set the fields to the same value will be shown, or they can be applied automatically.

Configuring Ticket Suggestions

Ticket suggestions are essentially a set of rules that are run after AI Insights and AI Matching. The matches are evaluated and if they contain similar values for fields like estimate, agent, and linked problem ticket, a prompt to set the fields to the same value will be shown, or they can be applied automatically. 

To configure the suggestions that can be made hit the 'configure AI suggestions' button to take you the suggestions page. We have some suggestions configured out-of-the-box but these can be customised and new ones can be made. An example suggestion is shown in figure 10. 

Fig 10. Example suggestion – Assigned agent

AI Suggestions have a precedence, only one of each type of suggestion that matches can apply. Suggestions will be checked in order of precedence, once a ticket meets criteria for a suggestion type this suggestion will be made/applied, no further suggestions of this type will be made. 

The following types of suggestion are available:

Set Estimate to the Estimate of matched tickets – This will allow you to set the estimate of the ticket based on the average, maximum or minimum estimate on the matching tickets.

Set the assigned Agent based on matched tickets – This will allow you to assign the ticket to the same agent as the matched tickets based on the agent's default team if multiple of the matching tickets are assigned to the same agent.

Set Category based on matched tickets – This will allow you to set the category (1, 2, 3 or 4) of the ticket if the matches have a frequently used category.

Set Priority based on matched tickets – This will allow you to set the priority of the ticket if the matches share a similar priority level.

Set Priority to the AI suggested priority – This will allow you to set the priority to what the AI interprets the priority as.

Run an automation if AI suggests the ticket is an incident – This will allow you to trigger an action automation if the AI evaluates the ticket as an incident, allowing you to triage it as such.

Run an automation if AI suggests the ticket is a request – This will allow you to trigger an action automation if the AI evaluates the ticket as a request, allowing you to triage it as such.

Create a problem ticket for incident matches – If the matching tickets are incidents that are not linked to a problem, you can set a threshold to automatically create a problem ticket and link them to it.

Link to an existing problem ticket based on the problem ticket of incident matches – Similar to creating a problem ticket, if the majority of matches are linked to the same problem already, it will identify that the current ticket should be linked to the problem ticket as well.

Run an automation if there are Ticket matches – If there are any ticket matches above a certain match score, run an action automation.

Run an automation if there are Articles matches – If there are any article matches above a certain match score, run an action automation. Link this to action that can write a response using the article suggestions from the recently added AI Knowledge matching feature to easily generate a response based on the matched articles.

In the 'Suggestion Information' field you will need to set what you would like to appear in the suggestion information field, this tells the agent what the suggestion is for. You will need to include $-SUGGESTEDVALUE  here to ensure the field is populated with the value that is being suggested. 

You can also set conditions against each suggestion, these restrict when this suggestion will be made. 

Fig 11. Suggestion conditions

Suggestions can be restricted by ticket type, end user of the ticket and strength of match. 

The field 'Include Open/Closed/All Tickets' is used to determine what ticket data will be used for the suggestion. If 'All tickets' is selected suggestions can be made based on data from both open and closed tickets. If you are including closed tickets in your suggestion database you can also set which closed tickets will be used based on when they were closed, allowing you to filter out ticket data that is outdated.  


For any Suggestion types that depend on the strength of the matched tickets you can choose the following conditions to determine whether to run the suggestion;

Minimum match score – This can be used to filter out weaker matches from further conditions. E.g if you only want to show/run the suggestion if there is a really strong match, increase this to above 0.9.

Minimum number of matches – Ensure there is at least X matches above your specified score. E.g you may only want to create a problem if there are 5 or more strong matches

Required number of matches that have the same value for this match to apply – If set to 3, at least 3 of the matches must have the same value for this suggestion to applied. For assigning agents, in this scenario if there are 5 matching tickets, the agent with the most of those 5 tickets will be recommended but only if they have more than 3 already.

Required % of matches that have the same value for this match to apply – This does the same as the above but as a % of the total matches instead of a minimum number.

These conditions are especially useful when the setting 'Automatically apply this suggestion' is enabled. As this ensures suggestions are only applied automatically when strict criteria are met, such has having a very high minimum score and high number of matches.

Using AI Ticket Suggestions

Once AI ticket suggestions are configured a new tab will be available against the ticket types that AI embeddings and insights are enabled for, called 'AI Insights'.

Fig 12. AI Insights tab against ticket

In addition to this tab, if a ticket has AI suggestions a pop-up notification will appear at the bottom of the ticket, when this notification is selected you will be taken to the AI insights tab. If you would rather not have a pop-up notification and instead have notifications available in the problem/resolution finder, head to configuration > AI and toggle the 'AI suggestion notification' setting. 

Fig 13. AI suggestion notification

The AI insights tab will contain all the suggestions that can be made for the ticket. The 'Apply suggestion' button is used to apply the suggestion to the ticket. Once a suggestion is applied the date/time the suggestion was applied will show. 

Article Suggestions

AI can be used to suggest relevant knowledge base  articles for tickets. This can assist agents in resolving tickets, saving them having to find relevant articles themselves to read/send to users. 

Article suggestions require Azure AI search to be enabled and configured due to the way article suggestions are returned. When a ticket is logged a search term is created based off the matched tickets, this search term is used to perform a vector search on indexed knowledge base articles.

Prerequisites: 

  • Ticket matching and AI insights method must be set to "Built-in functionality"
  • AI knowledge search – Vector search database must be set to "Azure AI Search"

To set this up head to configuration > AI > AI Knowledge search section. Set the 'Vector search database' to be 'Azure AI Search', you will need to configure an Azure AI search connection for this. Details on how to obtain connection details from Azure can be found here.  Now ensure 'Enable AI Article Suggestions' is enabled. 

Fig 14. AI knowledge search settings

If you would like to restrict which articles can be indexed based on their FAQ list enable this setting, a field will then appear against each FAQ list to determine if this FAQ list can be indexed. 

Articles will be indexed each time a new article is created but the 'Index articles' button can be used to index historical article data. 

Now AI article suggestions are active, when a ticket is logged article suggestions for the ticket will appear in the problem/resolution finder. 

Fig 15. AI article suggestions in the problem/resolution finder

Article suggestions will also appear under the 'AI insights' tab against the ticket with a matched score. 

Fig 16. Matched articles

For more information on AI suggestions see our lesson here


AI Article Creation

Knowledge base articles can be created automatically using AI, taking in the correspondence between the user and the agent of the ticket and creating a description and resolution for the article. This can either directly create an article or create an article draft ticket, depending on your Halo settings. 

This functionality can assist you in creating a comprehensive knowledge base to assist agents in resolving incident tickets. 

Prerequisites

  • 'Azure OpenAI' or 'Own OpenAI' as your default AI connection (See our lesson on Connecting AI Halo)

Configuring KB articles to be created by AI

A runbook is used to have AI create knowledge base articles, this runbook is available out-of-the-box in Halo. To download and enable this runbook head to configuration > AI and enable 'Create knowledge base articles using AI'.

Fig 17. Create knowledge base articles using AI setting

You will now need to configure how/when this runbook is triggered. It can either be triggered manually, by using an action on a ticket, or you can have the runbook trigger automatically from a determined event in Halo. 

Trigger using an action

To have this trigger using an action head to configuration > tickets > actions, create new or edit and existing action. The system use of the action will need to be 'Send webhook/Queue integration Runbook' then you will be able to choose in the field below the runbook to trigger. You will either need to select 'Azure OpenAI create knowledge base article' or 'OpenAI create knowledge base article' depending on the AI model you have connected with. 

Fig 18. Action to create a knowledge base article 

This could be set against your 'resolved' action, for example, this would ensure when the agent closes the ticket a KB article is created automatically without them having to complete an additional action.

When the runbook is triggered using an action it is advised to add the 'Note' field to the action and default this to contain $-allactions. This will summarise all the ticket actions within the same action that triggers the runbook, resulting in a more accurate article description/resolution. 

Trigger using an event

To have the runbook trigger (and article created automatically) when a set event occurs head to configuration > integrations > custom integrations > integration runbooks > select the 'Create knowledge base article' runbook associated to the connection type you are using. Then in the events table you can determine what event causes this runbook to trigger. In the figure 3 example the runbook will be triggered each time a 'problem' ticket type is closed. 

Fig 19. Event to trigger runbook when ticket 'closed'

Fig 20. Additional event criteria – ticket type = problem

Now each time the configured action is used, or the set event occurs a knowledge base article will be created in your instance based on the ticket data. 

The created article will have a title of 'Article Created from Ticket X' and will be created under the default FAQ list (this is the FAQ list with the lowest system ID). If you are using the article drafts functionality (enabled under configuration > knowledge base) a new article draft ticket will be logged. With AI populating the article description and resolution fields on the ticket. For more information on article drafts see our lesson here

For more information on creating KB articles using AI see our lesson here.


Sentiment Analysis and Emotion Detection

Sentiment analysis and emotion detection takes into consideration every message from the user on the ticket and summarises how they are feeling, as well as estimating a satisfaction level from 1 to 10. The result of the analysis will then show in the closure details of the ticket in the following fields when the ticket is closed:

  • AI Satisfaction Level
  • AI Sentiment Analysis 

Fig 21. Sentiment analysis and satisfaction level fields against ticket

All you will need to do to set this up is add the above fields to the ticket type. The fields will not be populated or show in ticket details until the ticket is closed, but once the ticket is in a closed status these insights will appear. 

If you would like these fields to be populated prior to ticket closure, you will need to edit the runbook that carries out this analysis, setting the event that will cause the runbook to trigger. 

For more information on sentiment analysis and emotion detection see our lesson here


AI Report Builder 

(Only available for hosted customers)

Use AI to write reports on various aspects of Halo such as tickets, users, assets, and orders. For more information, see here.

Thank you detection

AI can be used to detect whether a user update on a closed ticket should re-open the ticket, or if the user is just thanking the agent. 

Prerequisites

  • Incoming service must be enabled (configuration > advanced settings) 

To enable this functionality head to configuration > AI, enable 'Enable AI 'Thank you' email detection on closed/pending closure Tickets'.

Fig 22. Enable AI 'Thank you' email detection on closed/pending closure Tickets setting

This will override the settings shown in figure 11, in ticket type settings.

Fig 23. Ticket type closure settings

Once enabled any incoming email from users to a ticket that has a closed/pending closure status will ne evaluated by AI to determine if further action is required on the ticket or the user is just saying thank you. If the AI model determines the user is just saying thank you the ticket's status will not be updated. If the AI model determines further action is required the ticket status will be updated in line with the ticket type settings (in figure 23). 

Improve Agent Responses using AI

AI can be used to enhance the responses written by agents to improve spelling, vocabulary, tone, etc. and even generate an automatic response based on the details of the ticket. 

Prerequisites

  • Own Azure OpenAI must be used as the AI connection method

Generate automatic responses

Actions can be configured to generate a response to be sent to the user. This can be used to provide a more personal/tailored response to the user to confirm their ticket has been logged. Information/resources can also be sent to the user to assist them with their request/issue. 

To configure this head to configuration > tickets > actions > create new or edit an existing action, ensure the action you have chosen or have created is configured to send an email to the user. Now under the AI section of the details tab set the 'Operations' field to be 'Generate User response'. Once chosen you will need to enter your 'Azure OpenAI Deployment' and a prompt in the 'system message' field for the AI model to use to generate a response. 

Fig 24. AI action configuration

Dollar variables can be included in the system message field too. This allows you to provide details of matched articles to assist the AI in writing an answer, you may find the following variables particularly useful:

  • $-BESTARTICLEMATCHES – Can be used to show a table of AI matched articles.
  • $-BESTARTICLEMATCHESJSON – Can be used to show the AI matched articles and the content of the articles in JSON format.

If using '$BESTARTICLEMATCHESJSON' you will need to specify in the prompt that you are giving data in JSON format but the response needs to be generated on HTML. For example the following prompt will allow the AI to attempt to answer the ticket using the details of the matched knowledge base articles:

You will be given a conversation between an Agent and a User on a service desk ticket. The user may be asking for help, or have an issue. The following JSON is an array of matched knowledge base articles regarding the topic, where title is the name of the article, description is the content of the article, and the resolution contains details on the resolution where applicable. Please read these and write a response to the user in HTML format using the articles provided. Do not answer in Markdown.


$-BESTARTICLEMATCHESJSON

Note: Consistent use of large articles here may result in OpenAI rate limits being breached or additional cost in OpenAI.

We recommend also enabling 'Preview the OpenAI/ChatGPT response before saving the action' if you would like to preview the AI generated response before sending the email to the user. 

Improve responses

AI can be used to improve agent responses to users, such as correcting spelling and grammar and making language more concise/user friendly. 

Each action will need to be configured to allow AI to make these improvements. Head to configuration > tickets > actions > edit an action (such as email user) > see AI section under details tab. Set the 'Operation' field to be 'Improve agent note'.

Fig 25. Improve agent note action configuration

Now you will need to enter your 'Azure OpenAI Deployment' and enter a prompt for what improvements the AI model should make. The dollar variable for each field against this action that you would like the improvements to be made to should be added into the prompt. In the figure 8 example I would like the text entered into the 'Note' field on the action to be improved, the variable for this field is $-RICHACTIONNOTE, therefore this variable has been given in the AI prompt. Rich text fields use HTML therefore variables for these fields will be passed to the AI model in HTML format, this will need to be specified to the AI prompt to ensure the formatting of the field remains after improvements are made. 

If you are not using rich text fields you do not need to specify that the field is in a HTML format in the prompt. The associated variable for each ticket field can be found at https://YOURHALODOMAIN.halopsa.com/variables.

Now when completing the note action against the field an 'Improve agent note' option will appear.

Fig 26. Improve agent note button

When selected the text in the rich text box will be improved, shown in figure 27.

Fig 27. AI improved response

Note: Improvements to other (non rich text) fields will be visible on the preview screen. The preview screen will appear once the action is saved, you will then need to save it again on the preview screen for it to send. 

For more information on how you can improve agent responses/ticket processing using AI see our lesson here

AI Surveys

The AI-powered survey functionality can analyze ticket data to estimate the satisfaction score and potential comments a user might give, based on the interaction between the user and the agent. This provides additional feedback data beyond what users typically submit. While actual user feedback remains essential, AI can offer valuable insights, especially when user feedback records are sparse.

To enable AI surveys head to configuration > AI, enable 'Use AI to survey User satisfaction'. When enabled you will also be able to set what percentage of tickets are surveyed, to keep survey data concise you may wish to reduce the percentage of tickets that have AI feedback generated. 

Fig 28. Enable AI surveys

Surveys will also need to be enabled against each ticket type you would like AI to generate a survey for. This can be enabled/disabled under the settings tab of each ticket type using the setting 'Include in AI surveys' (see figure 29).

Fig 29. Enable survey functionality against ticket type

Note: The AI satisfaction and satisfaction comment field do not need to be present against the ticket types you would like to conduct AI surveys on. 

Once enabled, the conversation between the agent and user will be sent to the AI when the ticket is closed and it will evaluate the satisfaction score for the user and summarise why it has given this score. These will be added as a feedback record against the ticket that will show in the ticket's details under the section 'AI Survey'. 

Fig 30. AI survey section in ticket details


If negative feedback is recorded by AI the behaviour set in Configuration > Tickets > Surveys will be followed in terms of creating a ticket for Negative Feedback. The setting here will apply to negative feedback logged by users and AI. 

Fig 31. Negative feedback set to log an incident ticket type

For more information on AI surveys see our lesson here


Azure AI Search

Search functionality in Halo, including searching for tickets, knowledge base articles, and services, can be enhanced with Azure AI Search. By leveraging AI, Azure AI Search delivers more accurate results by analysing the context and underlying concepts of the content, rather than relying solely on keyword matching. This functionality is particularly useful for the virtual agents functionality, as it allows AI agents to provide responses to users based on content from knowledge base articles. In this lesson we will cover how to set up Azure AI search and how it can be used. 

To use this functionality, you must first configure Azure AI Search within the Azure Admin Console. Please refer to the following Microsoft Documentation https://learn.microsoft.com/en-us/azure/search/search-create-service-portal


Once the resource is available, you will need to capture the URL from the Overview tab.

Fig 32. URL endpoint

The API key can then be taken from the 'Keys' tab on the left drop down within 'Settings';

Fig 33. API keys

These details should then be added to the 'Azure AI Search' module in Configuration > Integrations. The most recent 'API Version' will be suggested in the placeholder.

Fig 34. Azure AI search connection details


The Azure AI Search integration allows you to create a search index for Knowledge Base Articles and Services to perform AI similarity-matching searches.


This can be configured from Config > AI – AI Knowledge Search, and choosing Vector search database as Azure AI Search.

Fig 35. AI knowledge search configuration 


Once configured, the indexing of all articles and services currently in the database can be scheduled. When articles and services are created, edited or deleted, the search indexes in Azure AI Search are automatically updated with the embeddings in the background.


Using AI Search

The search screen then allows you to do an AI search using the AI button in the search bar. When active, all filters are cancelled and search as you type is disabled, and the search becomes text only. An embedding is created for the search term, and an AI similarity search is run in Azure AI Search. The match score is also shown in the results.

Fig 36. AI search in search bar

For example searching for "Signing In" doesn't return any search results when I do not have AI search enabled:

Fig 37. Searching with AI search disabled

When enabling Azure AI Search, more results are returned, the similarity score is also visible underneath the article views. This particular articles have been returned as they meet the minimum vector match score with the search prompt:

Fig 38. Searching with AI search enabled

The main use case for this functionality is the Virtual Agent feature, which use Azure AI Search to search the knowledge base for answers to users' queries. Virtual Agents can be used without Azure AI Search, but there will be limitations with the search results. For more information on using virtual agents see our dedicated lesson here

The main use case for this functionality is the new Virtual Agent feature, which uses Azure AI Search to search the knowledge base for answers. Virtual Agents can be used without Azure AI Search, but there will be limitations with the search results.

For more information on AI searching see our lesson here.

Virtual Agents 

"Virtual Agents" can be configured in Config > AI > Virtual Agents, or Config > Chat > Virtual Agents. These currently integrate with Open AI and Azure OpenAI Assistants.


Fig 39. Virtual agent configuration


Creating a new Virtual Support Agent will create a new Assistant in OpenAI and create the functions implemented in Halo. A built-in Virtual Agent is provided out of the box for hosted customers.


Fig 40. Built-in virtual agent


Plug a Virtual Agent into a Chat flow, and the chat conversation will stay on the same step but alternate between the Virtual Agent and user.


Additional instructions can also be provided at step level. This allows you to provide some additional context if you are using the generic out of the box Virtual Agent, or provide additional step-specific information.


Fig 41. Step specific prompt


The following functions are currently implemented for the virtual agent:

  • Knowledge search – the agent will search the knowledge base using Azure AI Search, and receive the descriptions and resolutions of matched articles, and formulate a response based on the results where appropriate
  • Service search – the agent will search services using Azure AI Search, and receive the names and links to any matched services, and direct the user to the service where appropriate
  • Log an incident – the agent will log a ticket for the user once it knows the user's information and details of an issue
  • Check my tickets – the agent will provide the user information about their open tickets when requested, or a specific open ticket
  • Update a ticket – the agent will add an update to one of the user's tickets when requested
  • Speak to an agent – the agent will begin a transfer to a human agent
  • End chat – the agent will end the chat

For more information on virtual agents see our lesson here.

Logs & Errors

If there are any issues with either OpenAI or Azure AI Search (if enabled) then full audit history of each API query / search can be viewed through the 'Logs' section at the bottom of the page.


Fig 42. Logs