Browse Guides

Runbooks - Authorising API Access into Your Own Halo Instance
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><div><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><div><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><div><div><div><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><div><p><strong><span style="font-size: 11pt;">In this guide we will cover:</span></strong></p><p><span style="font-size: 11pt;"><strong>- Creating an API Application</strong></span></p><p><span style="font-size: 11pt;"><strong>- Creating an API-Only Agent</strong></span></p><p><strong><span style="font-size: 11pt;">- Creating a Custom Integration</span></strong></p><p><br></p><p><br></p><p><strong><span style="font-size: 14pt;">Creating an API Application</span></strong></p><p><span style="font-size: 11pt;">Within Halo you can create an API Application and then a custom integration, in order to perform GET&#39;s, POST&#39;s, etc... to API Endpoints in your Halo.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">For the purposes of this guide, the custom integration will be integrating with Halo, to do this, first head over to Configuration&gt;Integrations&gt;Halo API&gt;Applications and click &quot;New&quot; on the top right.</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImE2MWY5Y2U2LWU2YTAtNDAxNC04M2E4LTc0ZjdjOWRjNTY0ZCJ9.pbSwyoyjnyrpYzWF7GG6fn5YEIoITkPboNa0kQoFo5g" class="fr-fic fr-fil fr-dib" width="756" style="width: 756px; height: 236.618px;" height="236.618"></span></p><p><span style="font-size: 10pt;"><strong>Fig 1. Halo API module</strong></span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNkZmE2N2NlLWRlOGQtNDNiNS1iYmIzLTViNTQ0YjFhZGEyNyJ9.rcibUIKSqRFDyR9ay9fyDJmHPnJeRoWFmmlnn8YtVZk" class="fr-fic fr-fil fr-dib" width="759" style="width: 759px; height: 423.976px;" height="423.976"></span></p><p><span style="font-size: 10pt;"><strong>Fig 2. View applications button</strong><strong><br></strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Read the below instructions before configuring your API Application.</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMzZjlhMjNkLWQwMDEtNGIwZi04Y2JhLWVmMDJiMDRjYjlhYyJ9.7ULwYYu2b0RuuZaL0VdhjoeLQw339G4qX71n-yycZtY" class="fr-fic fr-fil fr-dib" width="976" style="width: 976px; height: 577.292px;" height="577.292"></span></p><p><span style="font-size: 10pt;"><strong>Fig 3. New API application</strong><strong><br></strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 14pt;"><strong>Creating an API-Only Agent</strong></span></p><p><span style="font-size: 11pt;">In Halo, navigate to Configuration &gt; Teams &amp; Agents &gt; Agents and create an Agent that you will use for the integration.</span></p><p><br></p><p><span style="font-size: 11pt;"><a href="https://downloads.intercomcdn.com/i/o/1009600102/6b9d2578fdc37908719de83c/image.png?expires=1721639700&signature=6fd3be992b9a4fa16f0d4ea3beb971216433dfec5a031c4c6be3d5f6f879431e" rel="noreferrer nofollow noopener" target="_blank" style="box-sizing: inherit; color: var(--primary-color); background-color: rgb(255, 255, 255); touch-action: manipulation; text-decoration: underline; cursor: pointer; user-select: auto; font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: break-spaces; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ;" id="isPasted"><img data-fr-image-pasted="true" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdkYzJmODYzLTFkM2UtNDM1Yy1hYzc5LTA5MDA1YjAzY2I4NyJ9.XF03iFA26qCjU0bpovHaDaejo6rB4eP7imr4-MO9RrE" width="587" style="box-sizing: inherit; border: 0px solid rgb(229, 231, 235); cursor: pointer; padding: 0px 1px; user-select: none; max-width: none; min-width: 10px; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; height: 778.968px; width: 573px;" class="fr-fic fr-fil fr-dib"></a></span><span style="font-size: 10pt;"><strong>Fig 4. New agent</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p id="isPasted"><span style="font-size: 11pt;">Make sure the Agent has the Administrator Role, as displayed above.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">It is also important to turn on API-only Halo Agent (This is found just below the roles input on the details tab of an agent (Beware that API-only Agents may not log into the Web or Mobile Applications nor can they be assigned tickets. However, they do not take up a licence).</span></p><p><span style="font-size: 11pt;">&nbsp;<a href="https://downloads.intercomcdn.com/i/o/1084855071/e11c432a4e173126bce813e2/image.png?expires=1721639700&signature=274e5ea70e23f824b82ef2b71315412fb9708546d3161336e33ff7043833bf2f" rel="noreferrer nofollow noopener" target="_blank" style="box-sizing: inherit; color: var(--primary-color); background-color: rgb(255, 255, 255); touch-action: manipulation; text-decoration: underline; cursor: pointer; user-select: auto; font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: break-spaces; border: 0px solid rgb(229, 231, 235); --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ;" id="isPasted"><img data-fr-image-pasted="true" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImE1OGFiNzc4LTIwMTMtNGQ5ZC1iMTRjLWU5YjM1YWQ0MmQxOSJ9.ygNStlP_Xiye_oAkuhw-QlrAfT0YXklkYxq6Mxs300g" width="167" height="auto" style="box-sizing: inherit; border: 0px solid rgb(229, 231, 235); cursor: pointer; padding: 0px 1px; user-select: none; max-width: none; min-width: 10px; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; height: auto;" class="fr-fic fr-fil fr-dib"></a></span><span style="font-size: 10pt;"><strong>Fig 5. API only agent setting</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong>Now Input the following Into your API Application</strong></span></p><ul><li style="font-size: 11pt;">Name (arbitrary - typically named Halo Instance, Own Instance, or something similar to this)</li><li style="font-size: 11pt;">Client ID and Secret (<strong>Note:</strong> The Client ID may change after saving, make sure to take the latest value)</li><li style="font-size: 11pt;">Generate (Generates a new client secret, must be done when creating a new custom integration)</li><li style="font-size: 11pt;">Copy (Copies the client secret to clipboard)</li><li style="font-size: 11pt;">Login Type: Agent</li><li style="font-size: 11pt;">Agent to log in as (Pick an agent)</li><li style="font-size: 11pt;">Permissions:<img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdmZDZhYWQxLTQ1MzItNDIyOC05ZjdmLWJmZGU4YmRjOTk0OSJ9.zDKJZ4gwC-7Av6mKcrI6-BD2z6ZEwzrvPSoBUXWQn-g" class="fr-fic fr-fil fr-dib"></li></ul><p><strong>Fig 6. Permissions for API application</strong></p><p><br></p><p><span style="font-size: 14pt;"><strong>Creating a Custom Integration</strong></span></p><p><span style="font-size: 11pt;">The next step is to create a new custom integration in Configuration&gt;Integrations&gt;Custom Integrations, this is how the Halo instance is connected to the runbook and how the API can be used to GET or POST things in Halo.</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM5ZWI3NWJmLWJmZTUtNDEwNi04MDY4LWE4ZGI4NTMyYTFkYyJ9.T0cHuCZ7QAt0i8NLWMc4ym90Zxc5bNVPy34ASsjmjnc" class="fr-fic fr-fil fr-dib" width="652" style="width: 652px; height: 397.78px;" height="397.78"></span></p><p><span style="font-size: 10pt;"><strong>Fig 7. Custom Integrations button</strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The following credentials should be set.</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNiYzM5MzdiLTBlNjUtNGU5NC1iMjAwLTU4YjhhOTk0YjVmOCJ9._EoVKqbrJYstZdw_GfPQ8Ld-CZIaWxwduvaHthXMFk4" class="fr-fic fr-fil fr-dib" width="913" style="width: 913px; height: 573.829px;" height="573.829"></span></p><p><span style="font-size: 10pt;"><strong>Fig 8a. Example Credentials&nbsp;</strong></span><strong><span style="font-size: 10pt;"><br></span></strong></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.eyJpZCI6ImFhZTRkZDZhLWRiZTUtNGVjMi05MWI0LTNjZmQwZTJmYjZhZiJ9.zlZRsPjLUBuuCVi0x6KTxaE8tvmJdXeEiZEHVE-09ek" class="fr-fic fr-fil fr-dib" width="897" style="width: 897px; height: 415.752px;" height="415.752"></span></p><p><br></p><span style="font-size: 10pt;"><p><strong>Fig 8b. Example Credentials&nbsp;</strong></p></span><span style="font-size: 11pt;"><p><br></p>Input the following:</span><p><br></p><ul><li style="font-size: 11pt;">Base Resource URL: Your Halo instance URL i.e. https://[Your Halo Domain].com</li><li style="font-size: 11pt;">Authorization: OAuth 2.0</li><li style="font-size: 11pt;">Authorization header name *LEAVE BLANK*</li><li style="font-size: 11pt;">Header Prefix: Bearer (Should already appear as &quot;Bearer&quot;)</li><li style="font-size: 11pt;">Grant Type: Client Credentials</li><li style="font-size: 11pt;">Access Token URL: https://[Your Halo Domain].com/auth/token?tenant=[Your Tenant Name], &nbsp;The tenant_id can be found by going to:&nbsp;<ul style="font-size: initial;"><li style="font-size: 11pt;">https://[Your Halo Domain].com/api/instanceinfo (look for the key value pair &quot;tenant_id&quot; &nbsp;: &nbsp;&quot;[Your tenant_id]&quot; )</li></ul></li></ul><p><span style="font-size: 11pt;">Found here (Other information has been blanked).</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImJkNWMzYjk0LTMyMjQtNDQxMi1hOTg1LTc0NzZlZjc1NmZmOCJ9.SWvZIC9pM8TYtFfbjAHiE9eYjw393R3iXM_hcfp_du0" class="fr-fic fr-fil fr-dib" width="796" height="137"></span></p><p><span style="font-size: 10pt;"><strong>Fig 9. Tenant info example</strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><span style="font-size: 11pt;"><br></span></p><ul><li style="font-size: 11pt;">Client ID (Found in the Halo API Application created)</li><li style="font-size: 11pt;">Client Secret (Need to paste it from clipboard) NB:&nbsp;If the custom integration doesn&#39;t work when saving, you may need to input a new client secret by generating a new one in the Halo API application</li><li style="font-size: 11pt;">Scope: all</li></ul><p><span style="font-size: 12pt;"><strong>Creating a Method</strong></span></p><p><span style="font-size: 11pt;">Switch to the &quot;Method&quot; Tab on the custom integration and this should be the view.</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNiYmYzMzM2LWEyODAtNDljZC1hNzJlLThmMjNhN2E5M2FkMSJ9.HNrKP6JOdTL6dGsgP3QqrBFcZQoF6A8alQhmzrWD7uo" class="fr-fic fr-fil fr-dib" width="971" style="width: 971px; height: 389.329px;" height="389.329"></span></p><p><span style="font-size: 10pt;"><strong>Fig 10. Method&nbsp;</strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This worked example is for creating a runbook that returns a list of clients on a Halo instance. In the text box beside the Halo domain, input /api/client:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxZWI2Yzc2LWZjNjYtNDAzYS1iOWNjLTIyN2NiMDYyYzg5YSJ9.61IlSWNLJFVwMxQ6Z7k1V4rBRpv4fMAJgUs4bJxF4-U" class="fr-fic fr-fil fr-dib" width="969" style="width: 969px; height: 94.7888px;" height="94.7888"></span></p><p><span style="font-size: 10pt;"><strong>Fig 11. GET method</strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">In the above photo the name of the method is &quot;Get Clients&quot; and the API method has been set to &quot;GET&quot;</span></p><p><span style="font-size: 11pt;">The next thig to do is set the output variables, again solely for this example the output variable is:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYxNzdmOWQ5LWIzMTQtNDk5YS1iNGI3LTkxYzBiMjQxOTQxYiJ9.k6ALdq4kJd7RvwYEbYO83HRdCSVB0fgoPHj9zuJO5pY" class="fr-fic fr-fil fr-dib" width="1186" style="width: 1188px; height: 182.679px;" height="183"></span></p><p><span style="font-size: 10pt;"><strong>Fig 12. Output variables</strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">&quot;response&quot; must be the prefix of all output variable values that are inputted. This &quot;Value&quot; shown above translates to access the response of the GET on the clients, then get all of the properties of type clients within that GET, the &quot;^&quot; refers to a child property of an object.</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBjNjIwZGQyLTZlYWYtNDA3OS1iZWJmLThjZmJmZjY2ZmE3YSJ9.BWTKViaIqWy-D6HCJtok4hkj8Tp7u7pralzfYQqNkA4" class="fr-fic fr-fil fr-dib" width="533" style="width: 533px; height: 776.794px;" height="776.794"></span></p><p><span style="font-size: 10pt;"><strong>Fig 13. Output variable example</strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong>Integration Runbooks</strong></span></p><p><span style="font-size: 11pt;">Now that the custom integration is set up and there is authentication into your Halo API. The next step is to create runbooks to automate your processes.</span></p></div></div></div></div></div></div>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.