Browse Guides

AI Article Creation
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><p id="isPasted"><strong>In this guide we will cover:</strong></p><p><strong>-&nbsp;Configuring KB Articles to be Created by AI</strong></p><p><span style="font-size: 13px;"><strong>-&nbsp;</strong></span><strong>Trigger using an action</strong></p><p><strong>- Trigger using an event</strong></p><p><br></p><p><br></p><p id="isPasted">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.&nbsp;</p><p><br></p><p>This functionality can assist you in creating a comprehensive knowledge base to assist agents in resolving incident tickets.&nbsp;</p><p><br></p><p><strong>Prerequisites</strong></p><ul><li>&#39;Azure OpenAI&#39; or &#39;Own OpenAI&#39; as your default AI connection (See our guide on <a data-fr-linked="true" href="https://usehalo.com/haloitsm/guides/2385" id="isPasted" target="_blank" rel="noopener noreferrer"><strong>Connecting AI to Halo</strong></a>).</li></ul><p><br></p><p><strong><span style="font-size: 14pt;">Configuring KB Articles to be Created by AI</span></strong></p><p>A runbook is used to have AI create knowledge base articles, and this is available out-of-the-box in Halo. To download and enable this runbook head to Configuration &gt; AI and enable &quot;Create knowledge base articles using AI&quot;.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImFiMDViYjBmLTM5NDUtNDExNi1iZDRhLWQwYWY3NjM4NTg4OSJ9.XTqIPDKfj1Oph0w1NyqQf4iaFIstQuEBruRtPhEH02g" class="fr-fic fr-fil fr-dib" width="508" style="width: 510px; height: 295.652px;" height="296"></p><p><strong><span style="font-size: 10pt;">Fig 1. Create knowledge base articles using AI setting.</span></strong></p><p><br></p><p>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.&nbsp;</p><p><br></p><p><strong><span style="font-size: 14pt;">Trigger using an action</span></strong></p><p><br></p><p data-pasted="true">An action in Halo is a step that can be added to a ticket workflow, such as resolving a ticket, adding a note, or sending an email. AI article creation can be triggered automatically when an agent uses one of these actions, meaning an article is generated as a natural part of the agent&#39;s existing workflow without any additional steps required.</p><p><br></p><p>There are two ways to configure this depending on whether you want article creation to happen automatically every time an action is used, or only when the agent explicitly opts in.</p><p><br></p><p><strong>Automatic Trigger on Action</strong></p><p><br></p><p>To have article creation trigger automatically every time a specific action is used, navigate to Configuration &gt; Tickets &gt; Actions and create a new action or edit an existing one. Set the system use of the action to &quot;Send Webhook/Queue Integration Runbook&quot; and select either the Azure OpenAI or OpenAI create knowledge base article runbook in the field below, depending on which AI connection you are using.</p><p><br></p><p>This approach is useful where you always want an article created when a certain action is taken, with no agent input required. It is recommended to add the Note field to the action and set its default value to $-allactions. This pulls in a summary of all ticket actions as context for the AI model, resulting in a more accurate article description and resolution.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdmNTYzNzM3LTEyNzQtNGQzMS04NzMyLTVmMzllMmZhODRmNyJ9.Qc2rMzFcPcLKzI37frc2brcHAt37B2jO4xAn0SXvnmk" class="fr-fic fr-fil fr-dib" width="763" style="width: 765px; height: 384.632px;" height="385"></p><p><strong><span style="font-size: 10pt;">Fig 2. Action to create a knowledge base article.</span></strong></p><p><br></p><p>When the runbook is triggered using an action it is advised to add the &quot;Note&quot; 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.&nbsp;</p><p><br></p><p data-pasted="true"><strong>Agent Driven Creation on Resolve Ticket</strong></p><p><br></p><p>The second approach, which is added to the Resolve Ticket action by default, gives agents control over whether an article should be created at the point of resolution. To configure this, navigate to Configuration &gt; Tickets &gt; Actions and edit your Resolve Ticket action. Add a checkbox field to the action with a label such as &quot;Would you like to create a Knowledge Base Article using AI?&quot; When an agent resolves a ticket, this checkbox appears on the action alongside the standard fields such as Closure Code and Time Taken. If the agent checks it, the article creation process is triggered automatically.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdlYzVhZDgxLTg4NTQtNGNhYi04MTQyLTMxMTk0YThiZGUyNyJ9.zz2vXheLy6esMnvmxl6wpbuKEzL42d_7uAj1Z4yr5lo" class="fr-fic fr-fil fr-dib" width="814" style="width: 816px; height: 358.722px;" height="359"></p><p><strong data-pasted="true"><span style="font-size: 10pt;">Fig 3a. Checkbox on resolve ticket action to trigger KB creation process.</span></strong></p><p><br></p><p>The runbook monitors for this condition via a trigger event configured under Configuration &gt; Integrations &gt; Custom Integrations &gt; Integration Runbooks. Select the &quot; Create knowledge base article&quot; runbook matching your connection type and open the Events table. The event is set to fire when an action of type &quot;Action added by Agent&quot; is added to the ticket, with the specific action set to Resolved (Resolve Ticket), and the additional condition that the &quot;Would you like to create a Knowledge Base Article using AI?&quot; field is equal to Yes. This means the runbook only fires when an agent explicitly opts in at the point of resolution, and tickets resolved without checking the box will not generate an article.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImE1N2FiYzU2LWYxNGItNDUxYy05N2JmLWE5M2E5Njc5MTQ0YSJ9.qaTEze-5HluGaqWAO_CHxU5VrzmCbH_9Cp6fY5MRtjY" class="fr-fic fr-fil fr-dib" width="853" style="width: 855px; height: 506.359px;" height="506"></p><p><strong data-pasted="true"><span style="font-size: 10pt;">Fig 3b. An event to trigger the runbook when triggered from the resolve ticket action.</span></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">Trigger using an event</span></strong></p><p>To have the runbook trigger (and article created automatically) when a set event occurs head to Configuration &gt; Integrations &gt; Custom Integrations &gt; Integration Runbooks &gt; select the &#39;Create knowledge base article&#39; 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 &#39;problem&#39; ticket type is closed.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJlMWQ1NTc5LTRmYzEtNGUzMy05MmYxLTY0ODUyNzc5NjM3MCJ9.2Wnc9HlykLVWV4BUglEqVEqy0cSPO2X0QqcKyWpg208" class="fr-fic fr-fil fr-dib" width="1194" style="width: 1196px; height: 645.53px;" height="646"></p><p><strong><span style="font-size: 10pt;">Fig 4a. Event to trigger runbook when ticket &#39;closed&#39;.</span></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ1NzkyMzc5LTAwYjctNGU4MC1hOTNhLTQ0YzExYzQ5ZTkxMyJ9.7E-RsJFUvdrgWqIqVBGMqrN5Mtv5oDp-NAI5zLGia9Q" class="fr-fic fr-fil fr-dib" width="578" style="width: 580px; height: 386.366px;" height="386"></p><p><strong><span style="font-size: 10pt;">Fig 4b. Additional event criteria - ticket type = problem.</span></strong></p><p><br></p><p>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.&nbsp;</p><p><br></p><p>The created article will have a title of &#39;Article Created from Ticket X&#39; 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 &gt; 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 guide <a data-fr-linked="true" href="https://usehalo.com/haloitsm/guides/2047" target="_blank" rel="noopener noreferrer"><strong>here</strong></a>.&nbsp;</p><p><br></p><p><br></p><p data-pasted="true"><strong>How the Ticket Data is Gathered</strong></p><p><br></p><p>When the runbook fires, it runs an SQL query against the Halo database to retrieve all agent and end user notes from the ticket&#39;s action history, ordered sequentially. Each note is labelled with its origin, either Technician Note, End User Note, or Automation, giving the AI model full structured context of the conversation and resolution steps. System messages and notes without meaningful content are excluded from the query to keep the context clean.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMzOTg1MWE5LTdlNzItNDg1OS1iZWExLTBmYWRiNGUxYWUzZiJ9.id559FEkoMVjOqxddraVHtIIdO0wDcr1ooTKlQFf1Tc" class="fr-fic fr-fil fr-dib" width="779" style="width: 781px; height: 473.031px;" height="473"></p><p><strong data-pasted="true"><span style="font-size: 10pt;">Fig 5a. SQL Step to consolidate actions completed on the ticket.</span></strong></p><p><br></p><p>This compiled note history is then used as the source input across a series of separate API calls made during the article creation process. Each call targets a specific part of the article, with the runbook making individual requests to generate the article title, the problem description, and the resolution separately. Each call passes the same ticket note context to the model but uses a tailored system prompt instructing the model on what to produce for that specific field. For example the description prompt instructs the model to identify the core issue and summarise it as a structured problem statement, while the resolution prompt instructs it to extract the steps taken to resolve the issue. The response from each API call is fed into the next as additional context, ensuring coherency across the article so that the title, description, and resolution are consistent with each other rather than being generated in isolation. Sensitive data such as names, emails, and passwords is explicitly excluded across all prompts. The outputs from each call are then written to their respective fields on the knowledge base article via the Halo API.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBjZjVhNDZkLTlkNjctNDY2ZC1hY2JkLTE2MGNmNmY0NGEyZSJ9.jSpmP4oPjWzVO1vo5J8T7IspxYJluHLZbw5dPpn21vw" class="fr-fic fr-fil fr-dib" width="775" style="width: 777px; height: 418.349px;" height="418"></p><p><strong data-pasted="true"><span style="font-size: 10pt;">Fig 5b.Runbook flow structure for KB creation</span></strong></p><p><br></p><p>The integration call is made to the configured AI connection using the provider&#39;s API endpoint, with the integration field in the runbook step controlling which provider is used, either OpenAI or Azure OpenAI out of the box. This is where multi-model support is applied. The runbook can be duplicated and the integration method updated to point to any LLM accessible via an API, such as Anthropic Claude, Google Gemini, or any other model with an accessible HTTP endpoint, without changing any other part of the workflow.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU2NDZkMWFmLWVkMWUtNDZkNi04MTEzLWJmODBkMmEwZjJlZiJ9.-SO90pVipkVNrm2kbzuQ9jS3qKYksDEVSeHVOc56jzw" class="fr-fic fr-fil fr-dib" width="833" style="width: 835px; height: 502.589px;" height="503"><strong data-pasted="true"><span style="font-size: 10pt;">Fig 5c. Article Summary/Title step showcasing multi-model/ BYOAI Capabilities</span></strong></p>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.