Browse Guides

Connecting To External MCP Servers Use Case: Procuring & Installing Software In Halo
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<style> .chartjs-size-monitor { display: none !important; height: 0 !important; overflow: hidden !important; }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> .chartjs-size-monitor { display: none !important; height: 0 !important; overflow: hidden !important; } 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> .chartjs-size-monitor { display: none !important; height: 0 !important; overflow: hidden !important; } 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> .chartjs-size-monitor { display: none !important; height: 0 !important; overflow: hidden !important; } 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 data-pasted="true"><span style="font-size: 11pt;"><strong>In this guide we will cover:</strong></span></p><p><strong>- How It Works</strong></p><p><strong>- AI Features Used</strong></p><p style="margin-left: 20px;"><strong>- External MCP Server</strong></p><p style="margin-left: 20px;"><strong>- AI Agent</strong></p><p><span style="font-size: 11pt;"><strong><br></strong></span></p><p><span style="font-size: 11pt;"><strong>Related Guides:</strong></span></p><ul><li style="font-size: 11pt; font-weight: bold;"><strong><a href="https://www.usehalo.com/guides/2597" target="_blank" rel="noopener noreferrer" style="font-size: 11pt; font-weight: bold;">Halo MCP Server Connection</a></strong></li><li style="font-size: 11pt; font-weight: bold;"><strong><a href="https://www.usehalo.com/guides/1532" target="_blank" rel="noopener noreferrer" style="font-size: 11pt; font-weight: bold;">Pax8 Integration</a></strong></li><li style="font-size: 11pt; font-weight: bold;"><strong><a href="https://www.usehalo.com/guides/2783" target="_blank" rel="noopener noreferrer" style="font-size: 11pt; font-weight: bold;">AI Agents</a></strong></li><li style="font-size: 11pt; font-weight: bold;"><a href="https://www.usehalo.com/guides/1630" target="_blank" rel="noopener noreferrer" style="font-size: 11pt; font-weight: bold;"><strong>Custom Integrations/Runbooks</strong></a></li></ul><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This guide illustrates an example use case for connecting external MCP servers to Halo.</span></p><p><span style="font-size: 11pt;">In this example, using both ImmyBot MCP and the Pax8 integration, you can create a software marketplace from within Halo to automatically sell and bill for licences procured via Pax8, and then install the software using the ImmyBot MCP server.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">To see this functionality in action, please view the video below:</span></p><p><br></p><p><span class="fr-video fr-deletable fr-fvc fr-dvi fr-draggable" contenteditable="false">&nbsp;<iframe src="https://www.linkedin.com/embed/feed/update/urn:li:ugcPost:7472948074508845058?compact=1" height="499" width="604" frameborder="0" allowfullscreen="" title="Embedded post" class="fr-draggable"><span class="fr-mk" style="display: none;">&nbsp;</span></iframe>&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This guide assumes an understanding of Custom Integration Runbooks, AI Agents, and how to trigger AI Agents from a Runbook - to learn about any of these features, please do refer to the relevant guides linked in the Related Guides section above.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong><em>Note: What is illustrated in this guide is an example use case, it is not a step by step configuration guide. This is not a feature that is available out of the box, please use this guide as reference when creating your own similar process that has been adapted to fit your company&#39;s needs.</em></strong></span></p><p><br></p><p><br></p><p><strong><span style="font-size: 14pt;">How It Works</span></strong></p><p><span style="font-size: 11pt;">The &quot;New Software&quot; service is provided as part of my <a href="https://www.usehalo.com/guides/2365" target="_blank" rel="noopener noreferrer">Service Catalogue</a> on the end-user portal. When a User selects this service they can request additional or new software for their devices. In Figure 1 you can see that the User has requested a new Microsoft Project 365 license for their device. Note that they have specified the license in the details of the request, and chosen their device from the list of Assets available to them.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM2OTM1MzAzLThhOTgtNGQzNy04ZjUxLThiNWJlYjIxNWZlOSJ9.Hqo_jLFk42ndH4tS4Llw0WN-BxRkG2TMhzDzj4tp1kI" class="fr-fic fr-fil fr-dib" width="1069" style="width: 1071px; height: 672.559px;" height="673"></p><p><strong><span style="font-size: 10pt;">Fig 1. A User raising a new software request</span></strong></p><p><br></p><p>Once the Ticket comes into the service desk, the license procurement is routed for approval via an automated Approval Process on the Ticket.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjgyMWVlYTIzLTg2NDMtNGYxOS1iYWMyLWNjOWUzNzA1ODZmNCJ9.GERf92jjsLoOIGB8z5m-qClPzPqjRlWdZqx8fpcaxRk" class="fr-fic fr-fil fr-dib" style="width: 989px; height: 790.985px;" width="987" height="791"></p><p><strong><span style="font-size: 10pt;">Fig 2. Approval for a new license</span></strong></p><p><br></p><p>Once the Ticket is approved, a Runbook in Halo is automatically triggered to run my AI Agent.&nbsp;</p><p>The AI Agent then goes through the following steps</p><ol><li>Read the Ticket</li><li>Confirm the Client and the name of the License being requested</li><li>Retrieve the ID for the requested License and the Client&#39;s current count for that License</li><li>Calculate the quantity to add and the new total</li><li>Update the license quantity in Pax8</li><li>Query ImmyBot MCP server to deploy the software to the device</li><li>Post a formatted note back to the Ticket detailing steps taken</li></ol><p>Once the process is complete, I will see the note in the Ticket.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImE2M2UyYjliLTAyOGItNGRmNi1iZTNhLTUwN2QzY2Y0ZWQwZCJ9.NIlBwVl-IfDhqEWVbX14ggp7hGAPI4lYJ61_OmGgAy0" class="fr-fic fr-fil fr-dib" width="834" style="width: 836px; height: 622.792px;" height="623"></p><p><strong><span style="font-size: 10pt;">Fig 3. The note posted by the Software Procurement AI Agent</span></strong></p><p><br></p><p>When the license count is automatically increased by this process, this is also reflected in the Client&#39;s associated recurring invoice by showing a pro-rated quantity increase on the line connected to that license.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM3NzdiZGI0LWYzNTMtNDExMC1iNmRlLWFhZDFkNGM1ZmM2NSJ9.Or6g3H4BiKQs_caHfLnBhlwnxnJEUCYWPWkn7WBsqTQ" class="fr-fic fr-fil fr-dib" width="777" style="width: 779px; height: 638.987px;" height="639"></p><p><strong><span style="font-size: 10pt;">Fig 4. Recurring invoicing is updated due to <a href="https://www.usehalo.com/guides/2319" target="_blank" rel="noopener noreferrer" style="font-size: 10pt;">calculated quantities</a> based on the subscription count</span></strong></p><p><br></p><p><strong><em>Note: The pro-rata behaviour will differ depending on how you have configured it in your environment.</em></strong></p><p><br></p><p><span style="font-size: 11pt;">With this process, I am now able to provide a fully automated software marketplace with both procurement and installation handled by the automation.</span></p><p><br></p><p><br></p><p><strong><span style="font-size: 14pt;">AI Features Used</span></strong></p><p>The two main AI features used in this process are connection to <a href="https://www.usehalo.com/guides/2597" target="_blank" rel="noopener noreferrer">external MCP servers</a> and the use of <a href="https://www.usehalo.com/guides/2783" target="_blank" rel="noopener noreferrer">AI Agents</a>. In this following section you can find the setup of these two features specific to this use case.&nbsp;</p><p><br></p><p><strong><span style="font-size: 12pt;">External MCP Server</span></strong></p><p><span style="font-size: 11pt;">To provide the AI Agent the ability to deploy newly procured software, Halo has been connected to ImmyBot&#39;s MCP server, allowing the AI Agent to trigger the scripts in ImmyBot that deploy software onto users&#39; devices.</span></p><p><br></p><p data-pasted="true"><span style="font-size: 11pt;">To be able to configure a new MCP server connection, navigate to Configuration &gt; AI and locate the &#39;External MCP Servers&#39; section towards the bottom of the page.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQyOWI4YTM0LWNmMjktNDU0NS1hODQ5LWJiZGRhZmYzMmJhMCJ9.k4EDN_b6YxO6BQUaV2xTokczS-hp2mcFxsvL-AvUYpU" width="1079" style="width: 1081px; height: 692.827px;" height="693" class="fr-fic fr-dii"></span></p><p><span style="font-size: 10pt;"><strong>Fig 5. The &#39;external MCP servers&#39; section of AI config in Halo</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This is where you can connect MCP servers of third party tools, such as ImmyBot, to Halo. To connect a new MCP connection, select the &quot;+ Add&quot; button.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">For the ImmyBot MCP connection:</span></p><ol><li style="font-size: 11pt;">Give the new connection a relevant name</li><li style="font-size: 11pt;">Set the MCP URL</li><li style="font-size: 11pt;">Enter in the API key with &quot;Authorization&quot; as the Header Name</li></ol><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMwZDZiMzg3LTkzMDUtNGYzMy1hYWY2LTEyOWZiMjE4YjQ2MSJ9.UOIA4qIp_t4ECDt2Q4sFYXfvKiv8wN2itNJ3QQ3Sw_0" width="732" style="width: 734px; height: 483.889px;" height="484" class="fr-fic fr-dii"></span></p><p><span style="font-size: 10pt;"><strong>Fig 6. Creating a new ImmyBot MCP server connection</strong></span></p><p><br></p><p><span style="font-size: 11pt;">Select &quot;Save&quot; and you now have a connection to ImmyBot&#39;s MCP that can leveraged by AI Agents in Halo.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImUzMDAxZDZmLWU5MGEtNDllNS05OTE2LTgyYzMwNzkwYWNjOSJ9.NWyvwMx75_pRmQja-w9raAkF76VDj_8duOZIKhF4kc8" class="fr-fic fr-fil fr-dib" width="916" style="width: 918px; height: 649.845px;" height="650"></span></p><p><strong><span style="font-size: 10pt;">Fig 7. Available external MCP server connections in Halo</span></strong></p><p><br></p><p><br></p><p><span style="font-size: 12pt;"><strong>AI Agent</strong></span></p><p><span style="font-size: 11pt;">The Agentic driver behind the entire process is a Software Procurement specific <a href="https://www.usehalo.com/guides/2783" target="_blank" rel="noopener noreferrer">AI Agent</a>.&nbsp;</span></p><p><span style="font-size: 11pt;">This AI Agent processes the requests being made by the Agent in Halo, and leverages its available functions to return data or trigger scripts and actions, both in Halo and in tools to which it is connected via their MCP servers. &nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;">To set up an Agent of this type, navigate to Configuration &gt; AI, locate the AI Agents section of the page and select the &quot;AI Agents&quot; button.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM5ZjgyZmIzLWNiYmMtNDg2Yy04ZDI3LWE1YWMwNjQ2OTRkOSJ9.umjrmxGTLZQc9emeoflwiUz1Z7O4JOTnRAtHj4ugDS0" class="fr-fic fr-fil fr-dib" width="964" style="width: 966px; height: 791.613px;" height="792"></span></p><p><strong>Fig 8. The AI Agents configuration area</strong></p><p><br></p><p><span style="font-size: 11pt;">Select the &quot;+ New&quot; button in the top right corner to create a new AI Agent.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Give the Agent a name relevant to its purpose.&nbsp;</span></p><p><span style="font-size: 11pt;">Set the connection to your preference (Built-in OpenAI connection can be used, for more information on the connection methods please visit this guide: <a href="https://www.usehalo.com/guides/2385" target="_blank" rel="noopener noreferrer" style="font-size: 11pt;">Connecting AI to Halo</a>).&nbsp;</span></p><p><span style="font-size: 11pt;">Set the &#39;Halo application to authorise as&#39; to be an API application that uses the &quot;Halo Automation Identity&quot; authentication method, and has &quot;all:standard&quot; permissions. For more information on creating API applications, please refer to the guide: <a href="https://www.usehalo.com/guides/1823" target="_blank" rel="noopener noreferrer">Creating API Applications</a>.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM4ODNhN2RiLTVlYjktNDE3NC1hNzkwLWExY2MwYjFiNzA4ZSJ9.1C3dDZgF61eoJVXAqHpu5-qLSRlgT_gOHM6XDYyq0J4" width="760" style="width: 762px; height: 462.666px;" height="463" class="fr-fic fr-dii"></span></p><p><span style="font-size: 10pt;"><strong>Fig 9. Setting the details of the software procurement agent</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">For the AI Agent&#39;s instructions, you will find attached to this article an example set of instructions. <a href="https://support.haloservicedesk.com/portal/kb?btn=46&id=2915" target="_blank" rel="noopener noreferrer">You will need to access this article on our portal to download the attachment</a>.</span></p><p><span style="font-size: 11pt;">In the first part of the instructions, the context of the Ticket is provided to the Agent, along with rules that it must follow for the duration of its task.&nbsp;</span></p><p><span style="font-size: 11pt;">For the task itself, it is given steps to follow:&nbsp;</span></p><p style="margin-left: 20px;"><span style="font-size: 11pt;">Retrieve the current license information for that Customer using a Pax8 report &gt; Find the Customer&#39;s current license count for the license being requested &gt; Determine the quantity being requested &gt; Update the licence quantity in Pax8 via a runbook &gt; Deploy the licence on the device selected by the User, using ImmyBot MCP &gt; Post a formatted note to the Ticket in Halo, detailing the steps it has carried out.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;"><strong><em>Note: The attached instructions are provided as an example. It is recommended to create your own instructions or adapt the example instructions to fit your needs and company processes.</em></strong></span></p><p><br></p><p><span style="font-size: 11pt;">Using the example instructions, you would need to create the following input variables:</span></p><ul><li style="font-size: 11pt;">ticket_summary (string, not mandatory)</li><li style="font-size: 11pt;">ticket_details (string, not mandatory)</li><li style="font-size: 11pt;">ticket_clientname (string, not mandatory)</li><li style="font-size: 11pt;">ticket_id (number, not mandatory)</li><li style="font-size: 11pt;">license_id (number, not mandatory)</li><li style="font-size: 11pt;">updated_quantity (number, not mandatory)</li><li style="font-size: 11pt;">current_count (number, not mandatory)</li></ul><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjljMWYzOGZlLTNjN2YtNDlmNy1iNGQ2LTQ1NGNkMTUxNmIzMyJ9.lhOodbXwCC1JPUsinw4TyNlt-1gLk_Js5q3qySVAV64" class="fr-fic fr-fil fr-dib" width="907" style="width: 909px; height: 418.481px;" height="418"></span><br></p><p><span style="font-size: 10pt;"><strong>Fig 10. The input variables for the software procurement agent</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">In the Functions section of the Agent configuration, you should enable all system functions and then create two additional functions.&nbsp;</span></p><p><span style="font-size: 11pt;">The first function will run the Pax8 License report that you can download from the <a href="https://www.usehalo.com/guides/2425" target="_blank" rel="noopener noreferrer">reporting online repository</a>. This report facilitates the Agent&#39;s ability to gather current license data for the Customer.&nbsp;</span></p><ul><li style="font-size: 11pt;">CF_pax8_licenses<ul style="font-size: initial;"><li style="font-size: 11pt;">Use: Get Report Data</li><li style="font-size: 11pt;">Report: Pax8 License</li></ul></li></ul><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImUyYmNiNTIwLTc2ZjctNDc3MC1hNmZjLTJhMWU5Y2M1ZTViYyJ9.1RuZyLXqBhjZnXvDSxOgMBWW4fs9f8jkLF7KArZrrrE" width="777" style="width: 779px; height: 677.357px;" height="677" class="fr-fic fr-dii"></span></p><p><span style="font-size: 10pt;"><strong>Fig 13. AI Agent custom function for running the Pax8 report</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The second function runs a &#39;Pax8 License Update&#39; runbook that you will need to create before creating this function.</span></p><ul><li style="font-size: 11pt;">CF_update_quantity_runbook<ul style="font-size: initial;"><li style="font-size: 11pt;">Use: Execute a Runbook</li><li style="font-size: 11pt;">Runbook: Pax8 License Update</li><li style="font-size: 11pt;">Runbook execution mode: Execute and await completion</li><li style="font-size: 11pt;">Parameters:&nbsp;<ul style="font-size: initial;"><li style="font-size: 11pt;">license_id (number, not mandatory)</li><li style="font-size: 11pt;">updated_quantity (number, not mandatory)</li><li style="font-size: 11pt;">current_count (number, not mandatory)</li></ul></li></ul></li></ul><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU5MDYzODllLTRlZGQtNDA4Mi05MmNkLTUyOWQ0MjM3MzRmZSJ9.PfX-A9IwiyHaiST0rvnVoVHHQbM8M_zF53m99gZhICA" width="728" style="width: 730px; height: 726.322px;" class="fr-fic fr-dii" height="726"></span></p><p><span style="font-size: 10pt;"><strong>Fig 14. AI Agent custom function for running the Pax8 License Update runbook</strong></span></p><p><br></p><p><span style="font-size: 11pt;">The Pax8 runbook should contain one step that leverages the Pax8 integration to update the license count for the Customer.&nbsp;</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIzYTMxOWY2LWIxYWQtNGE0ZS05Yzg5LTZlNDMxMDE2ZDk3YiJ9.sDlva9Bj6EK9H3pnKLnhf_IvVOTqyKRccQteAinDwAM" class="fr-fic fr-fil fr-dib" width="653" style="width: 655px; height: 470.531px;" height="471"></p><p><strong><span style="font-size: 10pt;">Fig 15. A runbook for updating license counts in Pax8.&nbsp;</span></strong></p><p><br></p><p><span style="font-size: 11pt;">This is done by creating a runbook method posting to this endpoint in Halo: /api/IntegrationData/AdjustQty/Pax8&nbsp;</span></p><p>For full configuration of the method you should refer to Figure 16.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjA5MTk4OTBjLTY0YzYtNDNlNi04NjAyLTQxNWMzMmM3NjJiNiJ9.d8gmpMCsonZNH1bDBqQ_lY0fDAVzr_dxn8xxTsDM1Do" class="fr-fic fr-fil fr-dib" width="891" style="width: 893px; height: 533.481px;" height="533"></p><p><strong><span style="font-size: 10pt;">Fig 16. Creating the method to post to Pax8</span></strong></p><p><br></p><p>You will also need to create four runbook variables for the runbook with the values illustrated in Figure 17.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImEyNTYwYWNhLWNlNGItNDFjYy05YTUwLTIwMTY0ODU0ODM5YSJ9.snn8FmrX6u6Oukc4F_Ipu_0QAXrsFaoSD4MXDkhdsn8" class="fr-fic fr-fil fr-dib" width="944" style="width: 946px; height: 313.199px;" height="313"></p><p><strong><span style="font-size: 10pt;">Fig 17. The runbook variables needed for the Pax8 runbook</span></strong></p><p><br></p><p>You will also need the setting on in your Pax8 integration to &quot;allow subscription quantities to be increased from Halo&quot;.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjA3ZGRiNWFmLTJjM2ItNDI5Ny04ZmY0LTcyMGNmOGIyZGMyNCJ9.8dVFfwMiYTMp0mPvA_kAvKEdwInci79808_TP_jKFog" class="fr-fic fr-fil fr-dib" width="805" style="width: 807px; height: 564.232px;" height="564"></p><p><strong><span style="font-size: 10pt;">Fig 18. Ensure Halo can increase Pax8 subscription quantities</span></strong></p><p><br></p><p>This runbook can then be leveraged by the Agent to update the license count for the Customer once the new quantity has been calculated.</p><p>For more information on creating runbooks, please refer to the guide: <a href="https://www.usehalo.com/guides/1630" target="_blank" rel="noopener noreferrer">Custom Integrations/Runbooks</a>.</p><p><br></p><p><span style="font-size: 11pt;">In the External MCP Servers section of the Agent configuration, set the ImmyBot MCP server that you connected earlier.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImFhMTk5ZTVjLTQ3OGEtNGQzMS1iMGY5LWViNjY3NzI0MmRkNCJ9.fax6nZleU6phVsfGA5LLnAPT65OeTTxMS5okFYMlSWU" width="793" style="width: 795px; height: 480.394px;" height="480" class="fr-fic fr-dii"></span></p><p><span style="font-size: 10pt;"><strong>Fig 19. Setting the External MCP server access for the AI Agent</strong></span></p><p><br></p><p><span style="font-size: 11pt;">This can then be leveraged by the Agent to deploy any new software to the User&#39;s specified device.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Save your AI Agent once the configuration is complete.&nbsp;</span></p><p><span style="font-size: 11pt;">You will need to trigger the AI Agent via a runbook, this runbook will then need to be triggered within the Chat Profile. If you require guidance on how to trigger an AI Agent please refer to this documentation: <a href="https://www.usehalo.com/guides/2783" target="_blank" rel="noopener noreferrer">AI Agents</a>.&nbsp;</span></p><p><span style="font-size: 11pt;">If you require guidance on configuring Chat Profiles, please refer to this documentation: <a href="https://www.usehalo.com/guides/2335" target="_blank" rel="noopener noreferrer">Chat Bot and Chat Profiles</a>.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;">Once you have set up your triggers, you will have a fully automated software procurement process.</span></p>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.