Browse Guides

BACK TO TOP
Azure DevOps Integration
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<head><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></head><body><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; } </style><p><strong>In this guide we will cover:</strong></p><p><strong>- What is the Azure DevOps Integration?</strong></p><p><strong>- Connecting to DevOps</strong></p><p><strong>- Syncing between DevOps and Halo</strong></p><p><strong>- Halo Configuration Options</strong></p><p><br></p><p id="isPasted"><br></p><p><strong><span style="font-size: 14pt;">What is the Azure DevOps Integration?</span></strong></p><p>The Azure DevOps integration allows you to sync tickets from Halo to work items in Azure DevOps and vice versa. This includes ticket/work item creation as well as updates to various fields.</p><p><br></p><p><strong><span style="font-size: 14pt;">Connecting to DevOps</span></strong></p><p>Configure the Azure DevOps integration by navigating to Configuration &gt; Integrations and enabling the module by hovering your cursor over the integration button and clicking the + icon.&nbsp;</p><p><br></p><p><strong><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="113" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM0MzIyNzgxLWZiNTUtNGJlZi1iYmZjLWNlMTIxNDdlZTdkMiJ9.1yMu75dtxgb6QxMTD0Wonz4Su08JJ9x7s2R5AXBBS6g" class="fr-fic fr-dii" height="123"></span></strong></p><p><strong>Fig 1. Enable the module</strong></p><p><br></p><p>Once enabled, click into the integration module to start configuration.</p><p><br></p><p>Upon clicking into the integration, click <em>New&nbsp;</em>in the top right corner to begin a new connection to Azure DevOps. This will prompt you to name your connection and provide an Azure DevOps instance URL.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="879" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjllM2RhYWM0LTdhOTEtNGE3My1hNzg1LTg4ZGQ0ZmNiODgwNCJ9.uA7aGSnnAITt-23YytZHqamQWjPujo8ePFHybjZd-BU" class="fr-fic fr-dii" style="width: 881px; height: 367.083px;" height="367"></span></p><p><span id="isPasted"><strong><span style="font-size: 10pt;">Fig 2. Details for connection</span></strong></span></p><p><br></p><p><span style="font-size: 11pt;">From v2.250+ you will be able to choose the authentication method you wish to use for the integration. You can choose from:</span></p><ul><li><span style="font-size: 11pt;">Using a personal access token</span></li><li><span style="font-size: 11pt;">Use Entra ID OAuth&nbsp;</span></li></ul><p><span style="font-size: 11pt;">On versions prior to this you will need to connect using a personal access token.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;"><strong><span style="color: rgb(235, 107, 86);">If setting up this integration for the first time, we advise connecting using Entra ID OAuth as</span>&nbsp;</strong><strong><a href="https://devblogs.microsoft.com/devops/retirement-of-global-personal-access-tokens-in-azure-devops/" target="_blank" rel="noopener noreferrer">personal access tokens are being deprecated by Microsoft in 2026.</a></strong></span></p><p><br></p><p><strong><span style="font-size: 12pt;">Generate a Personal Access Token</span></strong></p><p>This can easily be generated in Azure DevOps by clicking the &ldquo;User Settings&rdquo; icon next to your initials and selecting <em>Personal access tokens</em> from the drop down.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="415" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc5NzYyZDk2LWI5OWMtNDg0NS1hYzRmLTFlNjgyMjMwNDhkZCJ9.1PZeY4GTP8cO7dRAr_Y-Qn8o_Oisfk1UDYdgEEWavYs" class="fr-fic fr-dii" height="427"></span></p><p><span id="isPasted"><strong><span style="font-size: 10pt;">Fig 3. Personal access tokens area in Azure DevOps</span></strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><br></p><p>Upon clicking this, you will navigate to a table of existing Personal Access Tokens where you can click &ldquo;New&rdquo; to configure a new one. Configure this token as you wish. Fields to note:</p><ul><li><em>Name</em> is simply the name of the Personal Access Token in Azure DevOps. Provide something sensible.</li><li><em>Expiration</em> defaults to 30 days but you can set to your own desired time frame. We recommend taking note of this date so you can generate a new Personal Access Token when the time comes.</li><li><em>Scopes</em> has to do with the permissions required by Halo to perform this integration. The functionality simply involves creating and updating work items, so the only permission required is <em>Work Items</em> with <em>Read, Write, &amp; Manage</em>.</li></ul><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="525" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJiMzliMjhlLTY4M2YtNGU5Zi05Mjk5LTYyYjY3YzViZjg4OSJ9.UnJaS1R8OYqXJzAm0WlYQEfnqeiZRDaog-ijazCYSlQ" class="fr-fic fr-dii" height="689"></span></p><p><span id="isPasted"><strong><span style="font-size: 10pt;">Fig 4. Configure Personal access tokens in Azure DevOps</span></strong></span></p><p><br></p><p>Please note that notes added to work items in Azure DevOps and subsequently synced to a Halo ticket will be attributed to the profile which generated the Personal Access Token. To ensure clarity, it is advisable to use a service account with a generic name to generate the Personal Access Token, minimizing confusion when notes are synchronized back to Halo.</p><p><br></p><p>Once the credentials for your connection are saved, you are able to test your connection to ensure everything has been configured correctly.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="185" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ3OWFkYTNlLTFhNzYtNDg3My1hNDA2LTllMzYxYjVkMWEwMyJ9.s786-r907Hb3DM7d1Zad6RpX9EWP-KHUQaMAXxk2svk" class="fr-fic fr-dii" height="71"></span></p><p><br></p><p><strong>Fig 5. Test configuration</strong></p><p><br></p><p><strong><span style="font-size: 12pt;">Generate OAuth Credentials (Recommended Method) (v2.250+)</span></strong></p><p>To connect using OAuth credentials you will need to create an azure application in your azure tenant and generate the relevant credentials. We support the use of the following credentials:</p><ul><li>Client Secret</li><li>Federated Credentials&nbsp;</li><li>Certificate</li></ul><p><br></p><p data-pasted="true">Open the Entra Admin Centre (or similar) and navigate to the App Registration section. Click &quot;New Registration&quot;.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyMzFkOTUyLTZiZmMtNDgzZS1hOGYxLTlmNDQ5NWE5YmQ5NCJ9.b6Ha-QGfAVzT63hWaKDKb24uI11Zx2uGI9SyoBDv4oo" class="fr-fic fr-fil fr-dib" width="1199" style="width: 1201px; height: 574.155px;" height="574"></p><p><strong><span style="font-size: 10pt;">Fig 6. New Registration</span></strong></p><p><br></p><p data-pasted="true">On the registration screen fill out:</p><p><strong>Name:</strong> Give the application a sensible name to reference it with.</p><p><strong>Supported Account Type:</strong> Choose Single Tenant. The Azure DevOps integration does not support a multi tenanted connection.&nbsp;</p><p><strong>Redirect URI:&nbsp;</strong>Enter the &quot;Redirect uri to register in Azure application for imports&quot; found on your integration setup page in Halo. This will be visible after selecting &quot;Entra ID OAuth&quot; as the authentication method.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ5ZGY0OTk1LTI2NDQtNDAyNy1iZDliLWFkMjczNjJiYzE5YyJ9.OB-s1v40u8YgYnovY3D7d0U5HCC9YXpR3kOh13VyaNo" class="fr-fic fr-fil fr-dib" width="980" style="width: 982px; height: 711.607px;" height="712"></p><p><strong><span style="font-size: 10pt;">Fig 7. Application Details</span></strong></p><p><br></p><p>Once registered, copy the &quot;Application (client) ID&quot; and &quot;Directory (tenant) ID&quot; from the Overview tab and store them safely, as these will be needed later.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQzNzJhMWU4LWVjZDktNGE2Yy04MjBkLWRlMTA2YTZkNDlmMiJ9.VQhR_nVlMFB397H6en6dTYSBFD7rxOa4KBoUsRikRaM" class="fr-fic fr-fil fr-dib" width="1240" style="width: 1242px; height: 457.743px;" height="458"></p><p><strong><span style="font-size: 10pt;">Fig 8. Application and Directory ID</span></strong></p><p><br></p><p>Now you will need to assign the required permissions to the application. The permissions the application needs can be found on the integration setup page in Halo.&nbsp;</p><p><br></p><p>To add permissions to the application head to the &quot;API permissions&quot; section, remove the default &#39;User.Read&#39; permission, and add the following permission:</p><ul><li>user_impersonation</li></ul><p><br></p><p>When adding this permission ensure this is added from the &quot;Azure DevOps&quot; API</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJlZjEyYWRlLTg3NDMtNGI2Ny04MWQ5LTY1YWY5NDU4YjgxNyJ9.BxwNNHcXtHnhBspvLOKlkEaL0NaC-IOwbd_9e8cuVZw" class="fr-fic fr-fil fr-dib" width="1715" style="width: 1717px; height: 683.652px;" height="684"></p><p><strong><span style="font-size: 10pt;">Fig 9. Azure DevOps API</span></strong></p><p><br></p><p>Once added your application permissions should look as shown in Figure 10.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM4NTVkYTRkLTkyNWYtNGJkZS04NmJlLTUwMzFlMmQxOTA2NiJ9.92_E4_AJ8toR_JMkpoECA8Ab4YYvVSM0XatB3PCltcQ" class="fr-fic fr-fil fr-dib" width="1494" style="width: 1496px; height: 605.078px;" height="605"></p><p><strong><span style="font-size: 10pt;">Fig 10. Azure application with permissions</span></strong></p><p><br></p><p>Now you will need to generate the credentials for this application. You will only need to follow one the of next sections of this guide in line with the credential type you are using.&nbsp;</p><p><br></p><p style="margin-left: 20px;"><strong>Client Secret</strong></p><p style="margin-left: 20px;">In Azure, navigate to the &quot;Certificates &amp; secrets&quot; tab, and open the &quot;Client secrets&quot; tab. Click &quot;New client secret&quot;, fill out the description and choose an expiry. Microsoft limits this to a maximum of 2 years from creation. Once this generates, copy the &quot;Value&quot; (not Secret ID) and store it securely. It will no longer be visible once you leave this screen.</p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM1NjE2MDU1LTk2ZTktNDlhMy05NzRlLTNkMDUzZGM4NWJlOSJ9.hH_3I5nVP5JBNkodMQ88Q-sDSsd2covVcCXuaoNbujs" class="fr-fic fr-fil fr-dib" width="1185" style="width: 1187px; height: 655.003px;" height="655"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 11. Copy the Secret Value</span></strong></p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">Now you have the client secret, Tenant ID and Application ID, head back to Halo and paste these values into the &quot;Azure Application Details&quot; on the integration setup page.&nbsp;</p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;"><strong>Federated Credentials</strong></p><p style="margin-left: 20px;">Once you have chosen Federated credentials as your credential type for the integration in Halo, you will need to choose the &#39;Agent Account to use for Federated Credential&#39;.</p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;"><strong>Generate a Certificate&nbsp;</strong></p><p data-pasted="true" style="margin-left: 20px;">In order to use this credential type you will need access to a valid X.509 certificate. You will need this in both &quot;.pfx&quot; format (with access to the export password) and in &quot;.cer, .pem or .crt&quot; for Azure.&nbsp;</p><p style="margin-left: 20px;"><br></p><p data-pasted="true" style="margin-left: 20px;">Once you have these, within Halo navigate to Configuration &gt; Advanced Settings &gt; Certificates. Create a new certificate entry by giving it a name, uploading the file, entering the password, and saving.<img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImVmYWYzNGY2LWYyYjMtNDk0YS1hMDQ0LTc1NzQ0MDlkMWYwYSJ9._L7Mu-cDGdPWrUV4kK5up0Mq3UeMCuhFSbT1hY5R91Y" class="fr-fic fr-fil fr-dib" width="1650" style="width: 1652px; height: 473.057px;" height="473"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 12. New Certificate Entry in Halo</span></strong></p><p style="margin-left: 20px;"><br></p><p data-pasted="true" style="margin-left: 20px;">In Azure, navigate to the &quot;Certificates &amp; secrets&quot; tab, and open the &quot;Certificates&quot; tab. Click &quot;Upload Certificate&quot;, upload the file, and give it a description before clicking &quot;Add&quot;.</p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImY5NDEwNzgwLTU2MGEtNGQ1Yi05YmQwLTZlZGQzNDBhZGQzMyJ9.i2evBdagr0zIiS-3v0LhX35YsUPQ3jsVQ1_CKIApDUY" class="fr-fic fr-fil fr-dib" width="1893" style="width: 1895px; height: 596.464px;" height="596"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 13. Upload Certificate in Azure</span></strong></p><p style="margin-left: 20px;"><br></p><p data-pasted="true" style="margin-left: 20px;">Now, back in Halo, head back to the integration setup page and input the Tenant ID, Application ID and choose the uploaded certificate before saving.</p><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">You should now have:</p><ul style="margin-left: 20px ;"><li>Azure Application (client) ID</li><li>Directory (tenant) ID</li><li>Relevant credentials</li></ul><p style="margin-left: 20px;"><br></p><p style="margin-left: 20px;">Head back to Halo and plug these values into the integration setup page.</p><p style="margin-left: 20px;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3ZmMxMmM0LWVlOWYtNDM4OC04NGU2LWRjNDUxY2IxODZmNiJ9.P5eaBB2GPuM0X5WmCsh4kRElHhnhprWMXD_-7h653N8" class="fr-fic fr-fil fr-dib" width="1278" style="width: 1280px; height: 741.447px;" height="741"></p><p style="margin-left: 20px;"><strong><span style="font-size: 10pt;">Fig 14. Azure Application Details plugged into Halo</span></strong></p><p><br></p><p>Once saved there will be a &quot;Sign in with Microsoft&quot; button. Once pressed, you will be directed to the Microsoft Sign-In screen where you can sign in before being re-directed back to Halo. You will need to sign in with an account with appropriate permissions to access the resources you wish to import/update. The account will need permission to access all the work items you wish to import/update.</p><p><br></p><p><strong><span style="font-size: 14pt;">Syncing between DevOps and Halo</span></strong></p><p><strong><span style="font-size: 12pt;">Syncing Projects from Azure DevOps to Products in Halo</span></strong></p><p>Projects in Azure DevOps translate to Products in Halo. Knowing this, we must enable the <em>Software Releases</em> module in Halo to allow this integration to function. Find the module in Configuration and make certain that it is enabled.</p><p><br></p><p><strong><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="114" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc4NTA5MmMzLTZjYTYtNGZiOC1iYTNkLTgwNWFjYzAxYWY0MyJ9.DVwrI6lRc_i00_flt8I8y5Ptg6R_IaBHIN50abZcJEw" class="fr-fic fr-dii" height="140"></span></strong></p><p><strong><span id="isPasted" style="font-size: 10pt;">Fig 15. Enable Software Releases Module</span></strong><span style="font-size: 10pt;"><br></span></p><p><br></p><p>Now navigate back to the Azure DevOps integration page&rsquo;s <em>Projects</em> tab. Here you can click the button <em>Import Projects</em> to sync over the projects in your connected Azure DevOps instance as products in Halo.</p><p><br></p><p><strong><span style="font-size: 12pt;">Tickets to Work Items&nbsp;</span></strong></p><p><strong><span style="font-size: 11pt;">Action Configuration</span></strong></p><p>To perform the creation of a work item in Azure DevOps, you must click a pre-configured action which is set with proper fields and system for syncing. To configure this action, navigate to Configuration &gt; Tickets &gt; Actions and click <em>New</em> in the top right corner to start configuring a new action.</p><p><br></p><p>Upon creating a new action, you will be prompted to enter various fields. Below we&rsquo;ve noted the fields important for this integration.</p><p><br></p><p><strong>Outcome Description&nbsp;</strong>- Text which shows after action has been performed.&nbsp;</p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="177" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyNjkwYzM2LWNhNDQtNDc4Ni1hNjE0LTg4YzUzOTQ4YjAwOSJ9.W--9D0_sC2zAo2izDgbgV4ienTH6J3TPCIfYkzjszlM" class="fr-fic fr-dii" height="90"></span></p><p><strong><span style="font-size: 10pt;">Fig 16. Outcome description</span></strong></p><p><br></p><p><strong>Button Name</strong> - Text which shows on the button of the action.</p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="129" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdmY2U0MDE1LWVjYjYtNDBiMC04ZDM2LTY1ZDA2MTExY2RmNCJ9.njnZ3vFjr5ojVctL7RQnkYG2CF6dDNwDHQ3oZ7XXj_k" class="fr-fic fr-dii" height="79"></span></p><p><strong><span style="font-size: 10pt;">Fig 17. Button name</span></strong></p><p><br></p><p><strong>Button Icon</strong> - Small picture which shows on the button of the action.</p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="117" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3ZmFmODJlLTFjYTktNDI3NS04ZmYxLTAxZTc4ZTM5MmE4YiJ9.eDR7tFuHzoGF56f_Z_sca1rBoGvpl79WcQHsyZd2yas" class="fr-fic fr-dii" height="90"></span><br></p><p><strong><span style="font-size: 10pt;">Fig 18. Button icon</span></strong></p><p><br></p><p><strong>System Use</strong> - The functionality which tells Halo to create a work item when this action is performed.&nbsp;</p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="256" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE1YzEzNDZhLTFlNTEtNGYwZi05MjljLTY0ZmJhODA1MDk2YSJ9.m4NHGe049-0hqhPwVzXSe_vM8EsHOFV6HsDkVE_EGlo" class="fr-fic fr-dii" height="85"></span><br></p><p><strong><span style="font-size: 10pt;">Fig 19. System Use</span></strong></p><p><br></p><p><strong>Work Item Type</strong> - Text box allowing you to denote a work item type to be created when this action is performed.&nbsp;</p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="248" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImI0YTVlMTVkLTExYTYtNDRhZC05YzhjLTU4NmYyZjhhZjBlMyJ9.F2qOVWvbp1JseZ4GlB76wGG6NcMUV_aa7ZjH7XThbFU" class="fr-fic fr-dii" height="83"></span><br></p><p><strong><span style="font-size: 10pt;">Fig 20. Work Item Type</span></strong></p><p><br></p><p><strong>Is a Quick Action&nbsp;</strong>checkbox (Not Required) - Will perform the action right at button press without prompting agents for fields to hit &quot;Save&quot;.</p><p><br></p><p>Ticket type fields required to be filled out in order for a work item to be successfully created from a ticket in Halo:</p><p><br></p><ul><li>Product - This can be defaulted against the ticket type in Configuration &gt; Tickets &gt; Ticket Types &gt; Click into desired ticket type.</li></ul><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="438" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNmMmRjMGNhLWJlNGUtNGEzMC05MDJhLTMzZDkxZDVjY2M5ZSJ9.2cLft211AXfwXOl4m_qDtxXt78B_tvBQXnzgNUPs5ZQ" class="fr-fic fr-dii" height="376"></span><strong><em><br></em></strong><strong><span style="font-size: 10pt;">Fig 21. Default product field</span></strong></p><p><br></p><p>Required for Halo to know which project in Azure DevOps to create a work item under. You can also set the &ldquo;Product&rdquo; field against the bug-creating action and set it as mandatory to ensure this field is filled in prior to completing the action.</p><p><br></p><p><strong><span style="font-size: 12pt;">Syncing Action Notes to Azure DevOps</span></strong></p><p>It is possible to sync additional action notes from Halo tickets to work items in Azure DevOps. To do this you must perform a preconfigured action with the <strong>Send to Azure DevOps</strong> checkbox. This must be checked at the time of the action to send the new note to the correlating work item in Azure DevOps.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImFmYzc0NzVjLWZlNjctNGJlYS05NmFlLWY2OGNmYTJjNjA3ZiJ9.E5m18PRXJ1_pjjd29kQmaYo033kJSTmeeSItlBkQSG4" class="fr-fic fr-fil fr-dib" width="452" height="187"></span></p><p><span id="isPasted"><strong><span style="font-size: 10pt;">Fig 22. Send to Azure DevOps field</span></strong></span><strong><span style="font-size: 10pt;"><br></span></strong></p><p><br></p><p>Please note that it is not possible to push a comment to DevOps in the same action as creating a work item.</p><p><br></p><p>Tip: Create an action that has all fields you are syncing between Halo and Azure DevOps. This gives you one place to make any necessary changes in Halo.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="1222" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjllOWQ3MDUxLWE5OGQtNGI5Yi1iYTFlLWY3NDU0MzJkZTFlYSJ9.r3LYOeWuxSh2aqxgx7mz7NyAaqnc4zByLNu2Vlo_1UQ" style="border-style: none; padding: 0px 1px; text-align: left;" class="fr-fil fr-dib" height="312"></span></p><p><strong><span style="font-size: 10pt;">Fig 23. </span></strong><span style="font-size: 10pt;"><strong>Action field list</strong></span></p><p><br></p><p>However, if you&#39;re doing this, please note that the <strong>Send to Azure DevOps</strong> field only controls when a comment is posted to the work item. If adding an action and altering other fields, even if the <strong>Send to Azure DevOps&nbsp;</strong>is unchecked, Halo will still push changes to other fields to the linked work item.</p><p><br></p><p><strong><span style="font-size: 12pt;">Syncing to Azure DevOps</span></strong></p><p>Navigate to the integration page&rsquo;s &quot;Syncing to Azure DevOps&quot; tab and find the &quot;Fields to Sync&quot;<em>&nbsp;</em>subtitle. Here you can indicate which fields Halo should sync to DevOps as tickets/updated are created and updated. As you add these to the multi-select, you are then prompted to adjust their configuration below.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="624" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdjZGFkNTQ4LWZmMzAtNGU0ZS05ZWUxLTljZTZmYWYyN2I3MCJ9.c1ncmPNhaO2S9jHvhpfFTM694FP2CTDp7umjDirB7hw" class="fr-fic fr-dii" height="147"></span></p><p><strong><span style="font-size: 10pt;">Fig 24. Fields to sync to Azure DevOps</span></strong></p><p><br></p><ul><li style="font-weight: bold;"><strong>Any mapped Fields</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Syncs custom fields.</li><li>Choose product, which field in Halo, and which field in Azure DevOps.</li></ul></li><li style="font-weight: bold;"><strong>Area Path</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Work Item categorization field. Links to a category in Halo.</li><li>Choose Area Path value and correlating Halo Category Value.</li></ul></li><li style="font-weight: bold;"><strong>Attachments</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Syncs attachments.</li><li>No additional configuration is required.&nbsp;</li></ul></li><li style="font-weight: bold;"><strong>Iteration Path</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Work Item categorization field. Links to a category in Halo.</li><li>Choose Iteration Path value and correlating Halo Category Value.</li></ul></li><li style="font-weight: bold;"><strong>Priority</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Choose which priority number in Azure DevOps correlates to which priority number in Halo.</li></ul></li><li style="font-weight: bold;"><strong>Status</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Choose which Halo status correlates to which Azure DevOps status.</li></ul></li><li style="font-weight: bold;"><strong>Start Date</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Syncs start date.</li><li>No additional configuration is required.&nbsp;</li></ul></li><li style="font-weight: bold;"><strong>Target Date</strong><ul style="font-style: initial; list-style-type: disc; font-weight: initial;"><li>Syncs target date (sometimes called end date).</li><li>No additional configuration is required.&nbsp;</li></ul></li></ul><p><br></p><p><strong><span style="font-size: 12pt;">Syncing from Azure DevOps</span></strong></p><p>Now to configure this integration in the other direction! Namely, this would be to create a new ticket in Halo whenever a work item is created and to update Halo tickets which are linked to existing work items if those work items are updated.</p><p><br></p><p>You can either configure this using webhooks or our Halo integrator. Webhooks allow for an almost instant sync, whereas the Halo integrator will run the sync on a schedule. The Halo integrator comes with an added benefit of allowing additional filtering.&nbsp;</p><p><br></p><p><strong>Webhooks</strong></p><p>To do this, you must create two Web Hook Subscriptions in Azure DevOps (one for creation and one for updating). Steps:</p><p><br></p><p>Navigate to an Azure DevOps project and click &quot;Project Settings&quot; at the bottom-left corner of the screen.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;color:black;'><img width="157" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRiZDllY2IxLTVjYWUtNGQ3MS05YTJiLTJhYWU2YzczMmFiZSJ9.VzX29YtFw8njPPm9DWBWmGCJLGg3pm5LcTHzzGNS8GE" class="fr-fic fr-dii" height="43"></span></p><p><strong><span style="font-size: 10pt;">Fig 25. Project Settings</span></strong>).</p><p><br></p><p>Click <em>Service Hooks,&nbsp;</em>then the + icon to create a new &quot;Subscription&quot;<em>,&nbsp;</em>and <em>s</em>elect &quot;Web Hooks&quot; as the Service type. Click &quot;Next&quot;.</p><p><br></p><p><img width="616" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZkZjA1N2ExLTAzNzktNGM4MC1iNDIyLWYzYmM3ZDRlZGZiYiJ9.2mYXIadowEM59Lf9VuBX5Qi4zz9VJWtXhQoy4xCwsjI" class="fr-fic fr-dii" height="609">&nbsp;</p><p><strong><span style="font-size: 10pt;">Fig 26. Webhooks</span></strong></p><p><br></p><p>Set the trigger to <strong>Work item</strong><strong>&nbsp;created</strong><strong>&nbsp;</strong>or <strong>Work item updated</strong> depending on which Web Hook Subscription you are creating. You may set more specific criteria for which work items trigger this new subscription or leave to all. Click Next.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="619" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjFmOTJiZjdkLTA1ODgtNDgyYy1iMjM0LTU2ZDY0ZTJiN2Q4ZSJ9.Bn1clgNLzS_l4Gu06vkpi25cQ0E3arcI-3gbi7661v0" class="fr-fic fr-dii" height="613"></span></p><p><span style="font-size: 10pt;"><strong>Fig 27. Trigger</strong></span></p><p><br></p><p>(1) Is the URL this Web Hook Subscription will push information to and can be found on Halo&#39;s Azure DevOps Integration Page&#39;s &quot;Syncing from Azure DevOps&quot;<em>&nbsp;</em>tab by clicking <strong>Work Item Updated&nbsp;</strong>or <strong>Work Item Created</strong>.</p><p>(2) Can be found in Halo&rsquo;s Azure DevOps Integration Page&rsquo;s &quot;Syncing from Azure DevOps&quot; tab.</p><p>(3) Can be found in this same integration page by clicking Edit and Generate to create a new password. Just remember to click Save after you are done.</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImE0MjUyODMyLWMyOGItNGFlZi1hN2ZiLTcxZDRlODY0ZWE2MiJ9.M9Cmscd_zvgPsu7WuEU3_fYI_JxRnCc5TgE3H7VyNT8" class="fr-fic fr-fil fr-dib" width="599" height="483"></span><span style="font-size: 10pt;"><strong>Fig 28. URL and authentication</strong></span></p><p><br></p><p>Set the rest of the page as follows and click Next.&nbsp;</p><p><br></p><p><span id="isPasted" style='font-size:12pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="538" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjNjMWY4NmFkLWZlMzUtNDBhNC1hMDQyLWE2YTJjNmNjMTVmMiJ9.yp2fRBKkUnQ9tJLU6vjRdUHa2HeFd_b5010__1uc2O0" class="fr-fic fr-dii" height="423"></span></p><p><strong><span style="font-size: 10pt;">Fig 29. Headers and what to send<br></span></strong></p><p><br></p><p>Click Test and ensure that connection is successful. Click Save and you&rsquo;re done!</p><p><br></p><p>Please note that the priority field value is not included in the work item created webhook unless manually changed on the new work item screen. To ensure consistent priority syncing, set the default priority of the ticket type in Halo to match the default priority value for work items in DevOps.</p><p><br></p><p><strong>Halo Integrator</strong></p><p>To use this syncing method, enable the checkbox &#39;Enable the Halo Integrator for the Azure DevOps integration&#39; under the syncing from Azure DevOps tab. Then set the entities you would like to sync. You can choose how far back the sync checks for changes using the filed &#39;Check for work item updates for Tickets updated in the last X days&#39;. For example, if I enter 5, when the sync runs any changes that have been made to work items in the last 5 days will update the related ticket in Halo, any changes older than 5 days will not update tickets.&nbsp;</p><p><br></p><p>To set which product in Halo a work item will be created under, use the work item filters. Found under the &#39;Syncing from Azure DevOps&#39; tab, here you set filters in the table that will be applied to any work items syncing from Azure into Halo.&nbsp;</p><p><br></p><p>To set this up, add a filter to the table and choose which product the filter applies to. Then choose the field you would like to filter by and the operator. The operator determines if all the criteria in the table needs to be matched (AND), or only one criteria in the table needs to be matched (OR), for the filter to apply. Then set the filter type and the value. The available filter fields are:</p><p><br></p><ul><li>ID</li><li>State</li><li>Work Item Type</li><li>Area Path</li><li>Priority</li><li>Changed Date</li></ul><p>These filters will only apply to new work items being imported, updates to existing work items will still be imported only for work items linked to Halo tickets.</p><p><br></p><p><strong><em>Note: The Halo integrator must be enabled for the module for these filters to apply.</em></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImFjMTNkZmJkLTgxZGYtNGI3NC1iNDU1LTVjOGM3ZDJjMjJjZiJ9.1EUWEHxY0Z3hqF0V5aIprJRplw-opp5mxj0XcY9tK8Q" class="fr-fic fr-fil fr-dib" width="1220" style="width: 1222px; height: 522.23px;" height="522"></p><p><strong><span style="font-size: 10pt;">Fig 30. &nbsp;Work items filter table</span></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">Halo Configuration Options</span></strong></p><p><strong>Ticket Type for New Tickets</strong></p><ul><li>Allows you to set which ticket type is initiated in Halo when the Azure DevOps Web Hook Subscription fires.</li></ul><p><strong>User for New Tickets</strong></p><ul><li>Allows you to set which user is assigned to new tickets coming from Azure DevOps.</li><li>You can also set this to default to the person who created the work item with below check box.</li></ul><p><span id="isPasted" style='font-size:11pt;line-height:107%;font-family:"Calibri",sans-serif;'><img width="508" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMwMTBlZTQ0LThhMWYtNDhkZS1hYTk0LTA3YWEzMDg5NTIzOCJ9.K6qNJmQFo5G2RziGwFIyhAWyYLPhGDm7uqGMlBtED4U" class="fr-fic fr-dii" height="395"></span><br></p><p><strong><span style="font-size: 10pt;">&nbsp;Fig 31. Additional configuration settings</span></strong></p><p>&nbsp;</p></body>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.