<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><strong>In this guide we will cover:</strong></p><p><strong>- What is the Microsoft Power Automate Integration?</strong></p><p><strong>- Application Registration</strong></p><p><strong>- Microsoft Power Automate Configuration</strong></p><p><strong>- Flows</strong></p><p><strong>- Common Issues</strong></p><p><strong>- Trigger a Microsoft Power Automate flow using Halo Webhooks</strong></p><p><br></p><p><br></p><p><span style="font-size: 14pt;"><strong>What is the Microsoft Power Automate Integration?</strong></span></p><p>The Microsoft Power Automate integration allows you to use Azure Power Automate to create flows that interact with the Halo API, allowing the automation of certain processes. </p><p>To set this up you need to create a registered application in Halo and use this to create a custom connector.</p><p><br></p><p><strong><span style="font-size: 14pt;">Application Registration</span></strong></p><p>To register a new application, go to Configuration > Integrations > Halo API > Applications. Here you can create a new application with the authentication method "Authorisation Code (Native Application). This will need to be set to use a client secret.</p><p><br></p><p>The redirect URLs need to be set to "<strong>https://global.consent.azure-apim.net/redirect/{guid}</strong>" (This is generated automatically during the authentication setup in Power automate.) and "Allow Agent Logins" needs to be set.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1NmI1YmIwLTE5MzYtNDRkNi1hZGQwLWNjZWVjNzZkY2M3NSJ9.aW-UhX4bR-Hi18qDWvr8l6j2T2alnGnXcvuJHaRKCAE" class="fr-fic fr-fil fr-dib" width="1202" height="466"></p><p data-pasted="true"><strong><span style="font-size: 10pt;">Fig 1. Setting the Redirect URL.</span></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZmY2Y1NGNlLTdlMWItNGVlNC05Yzc0LWY4NjA0ODU5ODIzMiJ9.r1EnALaKpvap8OhlwYEPjz3UEGOCBPvMZO2_uy19d_I" class="fr-fic fr-fil fr-dib" width="1547" height="798"></p><p><strong><span style="font-size: 10pt;">Fig 2. Configuring the application.</span></strong></p><p><br></p><p>The application needs to be granted the correct permissions for the API calls you wish to make. Granting all permissions is not recommended.</p><p><br></p><p><strong id="isPasted"><span style="font-size: 14pt;">Microsoft Power Automate Configuration</span></strong></p><p>With the Halo application now registered, you can go to <a href="https://make.powerautomate.com/" rel="noopener noreferrer" target="_blank">Microsoft Power Automate</a> to configure your custom connector.</p><p><br></p><p>In Power Automate, go to Data > Custom Connectors. If you don't have a Data tab, then go to More > Discover All and find Custom Connectors under the Data column.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBhYjczMjc4LTQ2NTYtNGZlZS1hYmFjLTJhMDE5ZWYzNTQ0ZCJ9.G-nKFazvp1T5S90DQKd7SuGn2MiShur26m3MwJTXVJA" class="fr-fic fr-fil fr-dib" width="418" style="width: 420px; height: 481.765px;" height="482"></p><p data-pasted="true"><strong><span style="font-size: 10pt;">Fig 3. 'Discover All' button. </span></strong></p><p><br></p><p><strong><span style="font-size: 10pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNmYzhiZGIyLWQwYTEtNDA5My04Y2M0LWIzYTYwZDE5NTU2MSJ9.4uc9lhfIAljinbiiaZtBoVb3zaTtFRm1co-F9XxQxSE" class="fr-fic fr-fil fr-dib" width="739" style="width: 741px; height: 533.421px;" height="533"></span></strong><br></p><p data-pasted="true"><strong><span style="font-size: 10pt;">Fig 4. Adding a Custom Connector. </span></strong></p><p><br></p><p data-pasted="true">Create a new custom connector from blank.</p><p><br></p><p><strong><span style="font-size: 10pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRhNjk4MWI5LWY0MjgtNDg1OS1iYjAyLTNkNWRjODBmY2ViMCJ9.c-NRLBZ-sqKxSZPhiVHmaFJtO_4ocA3yUI_IeYdwCko" class="fr-fic fr-fil fr-dib" width="704" style="width: 706px; height: 221.564px;" height="222"></span></strong></p><p data-pasted="true"><strong><span style="font-size: 10pt;">Fig 5. Creating a Custom Connector from Blank. </span></strong></p><p><br></p><p>Ensure the scheme is set to "HTTPS" the host is set to your Halo URL and the base URL can be left as "/".</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjAwYWVhNGQ1LTY5MjItNGM2YS04MjM1LWYzZDJkZTZmYTBkNCJ9.jv-MnJqvmifpVkfATQ50-8QYPQdsX3uZfSgmJqY3KRg" class="fr-fic fr-fil fr-dib" width="421" height="687"></p><p><strong><span style="font-size: 10pt;">Fig 6. Custom connector configuration. </span></strong></p><p><br></p><p><strong><span style="font-size: 12pt;">Authentication</span></strong></p><p>The authentication type is "OAuth 2.0" and the identity provider is "Generic Oauth 2".</p><p><br></p><p>The Client ID and secret from your registered application can then be entered. The authorization URL should be your instance's /authorize endpoint and the token and refresh URLs should be your /token endpoint.</p><p><br></p><p>You then need to specify the scopes you set for your application. For example, if your flow will be reading and editing tickets you will need to give it the scopes "read:tickets" and "edit:tickets".</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRlN2FkNzM2LWQ0MTctNGZkYi05NzE1LTA3Mjc0ZGRiZjgyZiJ9.QNB_vvp1BxzpipBsgCF3NUPGjthKUDKQkg5LI-kQ42U" class="fr-fic fr-fil fr-dib" width="374" height="876"></p><p><strong><span style="font-size: 10pt;">Fig 7. Authentication configuration.</span></strong></p><p><br></p><p><strong><em>Note: If you would like automated token refresh, then you should also include the "offline_access" scope.</em></strong></p><p><br></p><p>Copy the Client ID/Secret obtained in Halo in the previous step. Your Authorization URL is your Halo URL '/auth' i.e.: <a href="https://halo.haloservicesolutions.com/auth/authorize">https://halo.haloservicesolutions.com/auth/authorize</a> and your Token and refresh URL should be your halo URL /auth/token i.e.: <a id="isPasted">https://halo.haloservicesolutions.com/auth/token</a></p><p><br></p><p>The value shown in the "Redirect URL" field is the URL you need to use as your Halo application redirect URL.</p><p><br></p><p><strong><span style="font-size: 12pt;">Definition</span></strong></p><p>You can specify the actions, triggers, and policies that can be used as part of your custom connector here. This is how you can set up the API calls and responses that will be used as part of your flow. </p><p><br></p><p>In order to make Get/POST requests to your Halo instance from a flow you will need to configure the API calls you would like to be able to make as an action. Figure x shows a new action being created, when adding an action you will need to give it a summary, description and Operation ID, these are just used to reference the action and the operation it executes. </p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjViM2JiZGIzLTU1NjUtNDY5My04ZmFlLTNkYmFjMjc1NDU0ZCJ9.nKGytcuPdltioZ-aiQBfSh6_NOhl0AG612PKisFzhYY" class="fr-fic fr-fil fr-dib" width="943" style="width: 945px; height: 626.927px;" height="627"></p><p><strong><span style="font-size: 10pt;">Fig 8. New Action </span></strong></p><p><br></p><p>If you would like the action to send a request to Halo, add a 'Request'.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU5YTVjNTI3LTAzOTAtNDI1Yy1hZTI0LTVjOWZjZGE1YzkyYyJ9.O8_07IANts8Po7il2EXcMYH4vR_l9KJktAXAZO99ar0" class="fr-fic fr-fil fr-dib" width="1191" style="width: 1193px; height: 649.729px;" height="650"></p><p><strong><span style="font-size: 10pt;">Fig 9. Adding request to action</span></strong></p><p><br></p><p><strong>Verb </strong>- Here choose what the request should do.</p><p><strong>URL</strong>- Here, enter the URL the request should be sent to. Our API documentation outlines the endpoints required for each action you would like to execute via the API. </p><p><strong>Headers </strong>- Enter the headers for your request here.</p><p><strong>Body </strong>- Enter the payload that will be sent to the Halo API. </p><p><br></p><p>In the figure 6 example a request has been created that will create a ticket in my Halo instance, that has the ticket type 'Incident'. </p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMzZTQ2OWM4LWVkNjItNGMwNi05OGQyLWJjMDhmZjhhNmUwOCJ9.atdia5BUzUplg7ewr-wuUBeDzqyrCcCYtNuw-m4jxug" class="fr-fic fr-fil fr-dib" width="878" style="width: 880px; height: 590.857px;" height="591"></p><p><strong><span style="font-size: 10pt;">Fig 10. Example request setup</span></strong></p><p><br></p><p>You will need to make an action under this connector for each API request you would like to be able to send to your Halo instance. When configuring your flow you will then be able to choose which operation (action) to execute at a set step. </p><p><br></p><p>For further guidance on how to make specific API calls, consult our API documentation. </p><p><br></p><p><span style="font-size: 12pt;"><strong>Test</strong></span></p><p>You can then test and verify your connector works before saving it.</p><p><br></p><p><strong><span style="font-size: 14pt;">Flows</span></strong></p><p>Once your custom connector has been configured, you can then configure a custom flow in the My Flows section on Power Automate. You will be able to select your custom connector and its actions when configuring steps of your flow.</p><p><br></p><p id="isPasted">To do this, add an action to your flow, select the custom connector you configured for your Halo instance > select the operation to execute at this step > select a connection to use to complete this operation > now complete any input fields required. </p><p><br></p><p>Now when the flow reaches this step the configured request will be executed.</p><p><br></p><p><strong><span style="font-size: 14pt;">Common Issues</span></strong></p><p><strong><span style="font-size: 12pt;">The resource you are looking for has been removed, had its name changes, or is temporarily unavailable</span></strong></p><p> When testing the connector and seeing the error below, it is recommended to enable Reference Tokens in Configuration > Security and Performance (see second screenshot below).</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM0NzU4OWM1LWNkYmMtNDRmYi05ZTA2LWQ1N2IzMDU1NzBkNSJ9.jgzNhs-TsygKaV9GFslCSG6nBlDesSb0R-eQoK0LIsE" class="fr-fic fr-fil fr-dib" width="849" height="46"></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyYWNmMWIzLTE5MGEtNDUxMS05MTRkLTMwZTk1ODAyMjZlZSJ9.pS9iNOhceVGfpuzqJlNnXiHHTECYuXwwM17Rq_haFIg" class="fr-fic fr-fil fr-dib" width="1199" height="178"></p><p><br></p><p><strong><span style="color: rgb(226, 80, 65);">Important: When enabling these everyone will be logged out of your Halo and any integrations you currently have setup with Halo will need to be re-authenticated. </span></strong></p><p><br></p><p id="isPasted"><strong><span style="font-size: 14pt;">Trigger a Microsoft Power Automate flow using Halo Webhooks</span></strong></p><p>Microsoft Power Automate flows can be triggered using webhooks in Halo, allowing flows to begin when certain events occur in your Halo instance. For information on how to configure this checkout our dedicated guide: <a data-fr-linked="true" href="https://usehalo.com/haloitsm/guides/2596" id="isPasted" target="_blank" rel="noopener noreferrer">Trigger a Microsoft Power Automate flow using Halo Webhooks</a>.</p>