Browse Guides

Configuration Change Tracking and Instance Pipeline Management
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #ccc; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><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><h2><span style="font-size: 14pt;"><strong>Overview</strong></span></h2><p><span style="font-size: 11pt;">This comprehensive guide covers configuration management in Halo, including:</span></p><ul><li style="font-size: 11pt;">Enabling and tracking configuration changes</li><li style="font-size: 11pt;">Managing changes between UAT and Production environments</li><li style="font-size: 11pt;">Rolling back changes when needed</li><li style="font-size: 11pt;">Synchronizing instances</li><li style="font-size: 11pt;"><strong>Pipeline Discipline: Essential Knowledge</strong> (critical rules for pushing changes safely)</li><li style="font-size: 11pt;">Importing and exporting configurations</li></ul><div class="section"><h2><span style="font-size: 14pt;"><strong>Getting Started: Enabling Configuration Tracking</strong></span></h2><p><span style="font-size: 11pt;">Before using configuration tracking features:</span></p><ol><li style="font-size: 11pt;">Navigate to Configuration &gt; Advanced Settings</li><li style="font-size: 11pt;">Locate the &quot;Config Change Tracking&quot; setting</li><li style="font-size: 11pt;">Enable the setting</li></ol><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBmMjJlN2JkLTllNTMtNDgxOC1hYzc0LWY4N2I0ZGYwNTAwMSJ9.uzdAv3QcUGST0ae0gSBgTpoGM1S-D4Yzk8Yt5mcYuBI" class="fr-fil fr-dib" width="1155" height="295"></p><p><strong><span style="font-size: 10pt;">Fig 1. Halo instances linked together&nbsp;</span></strong></p><p><br></p><div class="info-note"><p><strong><span style="font-size: 11pt;">Identification:</span></strong><span style="font-size: 11pt;">&nbsp;When configuration tracking is active, you&#39;ll see the tracking icon in the top right of supported screens:</span><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImY2M2QyYzQxLWYzNmMtNGNiYS1hMzBiLTlmYzlmOGY2MzA3MCJ9.De2lUY5Tu6amQFn2m0zeoR1QoZyctvgZJUx457UOHf4" class="fr-fic fr-fil fr-dib" width="131" height="152"></p><p><strong>Fig 2. Configuration Tracking Icon</strong></p><p><br></p></div><div class="note"><p><strong><span style="font-size: 11pt;">Important:</span></strong><span style="font-size: 11pt;">&nbsp;Once enabled, the system will:</span></p><ul><li style="font-size: 11pt;">Capture snapshots of each configuration change</li><li style="font-size: 11pt;">Generate rollback scripts where possible</li><li style="font-size: 11pt;">Track changes across supported entities</li><li style="font-size: 11pt;">Enable synchronization between environments</li></ul></div></div><div class="section"><h2><span style="font-size: 14pt;"><strong>Pipeline Discipline: Essential Knowledge</strong></span></h2><p><span style="font-size: 11pt;">The following guidelines are critical to maintaining a healthy configuration pipeline. Not following them can lead to silent misalignment, broken dependencies, and configuration states that are difficult to diagnose or recover from.</span></p><h3><span style="font-size: 11pt;"><strong>1. All changes MUST be pushed in order</strong></span></h3><p><span style="font-size: 11pt;">Changes are applied sequentially. The platform cannot detect conflicts or interrelationships between changes. Pushing out of order risks:</span></p><ul><li style="font-size: 11pt;"><strong>ID misalignment and cross-wiring:</strong> the target instance receives an ID that doesn&#39;t match what was expected, which can cause unrelated processes to become connected or misconfigured</li><li style="font-size: 11pt;"><strong>Dependency breaks:</strong> a change references another change that hasn&#39;t arrived yet</li></ul><p><span style="font-size: 11pt;">Though cherry-picking or omitting changes is possible via Configuration &gt; Advanced &gt; Config Tracking, doing so introduces significant risk and is ill-advised. If a change depends on another change that was skipped, the result is silent misalignment that may not surface until much later. We do not suggest this as best practice, though it can alleviate issues in exceptional situations while syncing. Do not treat this process uncautiously. You take full responsibility for this risk, and it is recommended to proceed only when fully informed and with appropriate safeguards in place.</span></p><h3><span style="font-size: 11pt;"><strong>2. Keep changes atomic and small-scale</strong></span></h3><ul><li style="font-size: 11pt;">Introduce few changes at a time, of small scope</li><li style="font-size: 11pt;">All changes in the pipeline must be pushed. There is no &quot;skip this one&quot; without risk</li><li style="font-size: 11pt;">Complete each change set in quick succession before starting the next</li></ul><h3><span style="font-size: 11pt;"><strong>3. Understanding your instance setup</strong></span></h3><p><span style="font-size: 11pt;">Customers will have varying use cases and therefore different instance setups. The most typical pipeline is <strong>Development &gt; Staging &gt; Production</strong>. In some cases there is no Staging instance, and some customers maintain additional instances such as Sandbox or Beta for other purposes.</span></p><p><span style="font-size: 11pt;">Regardless of the specific setup, the Development instance (sometimes called Build, Test, UAT, or similar) is the entry point to the pipeline. It is a sacred instance where new configuration enters the tracking tree and is intended to be pushed all the way through to Production. Every change made in the Development instance joins the pipeline and must eventually be pushed up the chain.</span></p><h3><span style="font-size: 11pt;"><strong>4. The Development instance is NOT a sandbox</strong></span></h3><p><span style="font-size: 11pt;">Tinkering, experimenting, and trial-and-error in the Development instance pollutes the pipeline with uncommitted or half-finished changes that block or complicate syncing downstream.</span></p><p><span style="font-size: 11pt;">Changes should be explored and tested in a Sandbox instance before being built in Development, unless you are totally certain how to build them quickly and can subsequently push them up the chain without delay. If teams need to prototype or overhaul functionality, use a dedicated Sandbox environment outside the pipeline. Once the approach is confirmed and working, rebuild the changes cleanly in the Development instance and push through the pipeline as usual. This keeps the pipeline clean and the change tree linear.</span></p><h3><span style="font-size: 11pt;"><strong>5. Understand how concurrent team activity affects pushing</strong></span></h3><p><span style="font-size: 11pt;">Multiple teams can work in the Development instance at the same time. The constraint is not on building &mdash; it is on pushing. Once changes from different teams become interleaved in the change log, they cannot be separated cleanly when syncing upstream. All interleaved changes must be pushed together as a single sequential operation.</span></p><p><span style="font-size: 11pt;">This means that if Team A is mid-way through a large body of work and Team B finishes something in the meantime, Team B cannot push their changes ahead of Team A. Because changes must be pushed in chronological order without skipping, Team B must wait until Team A is also ready to push. For all practical purposes around version control and pushing, any teams whose changes are interleaved should be treated as working within the same push cycle &mdash; not as independent configuration efforts with separate timelines.</span></p><p><span style="font-size: 11pt;">Cherry-picking Team B&rsquo;s changes out manually is technically possible but is not advised. Even relatively small configuration changes can generate hundreds of individual saves in the change log, all of which must be manually identified and exported. The margin for human error is significant, and a single missed dependency can cause silent misalignment in the target instance. It is not a reliable substitute for coordinated pushing.</span></p><p><span style="font-size: 11pt;">Teams and organisations can structure their working practices around this however suits them. The key is going in with a clear understanding that concurrent work in Development ties the push timeline of everyone involved together.</span></p></div><div class="section"><h2><span style="font-size: 14pt;"><strong>Instance Types and Their Purposes</strong></span></h2><p><span style="font-size: 11pt;">Different instances serve distinct roles in a configuration pipeline. The specific setup will vary by customer &mdash; some have only two instances, others maintain four or more &mdash; but the purposes below reflect the standard intent behind each instance type.</span></p><p><span style="font-size: 11pt;"><br></span></p><h3><span style="font-size: 11pt;"><strong>Development (Build)</strong></span></h3><p><span style="font-size: 11pt;">The entry point for all new configuration. Every change that will eventually reach Production must be introduced here first. Development is where new processes, ticket types, workflows, and other configuration are built and refined before being pushed up the pipeline. As noted in Pipeline Discipline, this instance should be treated with care &mdash; it is not a sandbox for experimentation.</span></p><h3><span style="font-size: 11pt;"><strong>Staging (Test / Validate)</strong></span></h3><p><span style="font-size: 11pt;">The final validation layer before Production. Staging should mirror Production as closely as possible and is used to smoke-test changes end-to-end before committing them to the live environment. A typical validation involves clicking through the full process introduced in Development &mdash; creating tickets, triggering workflows, running actions &mdash; to confirm everything works correctly in context.</span></p><p><span style="font-size: 11pt;">Staging is also useful as a middle layer when instances have become misaligned, providing a controlled environment to evaluate and resolve configuration discrepancies without impacting the live environment.</span></p><p><span style="font-size: 11pt;">Not all pipelines include a Staging instance. If changes are pushed carefully and in strict accordance with pipeline discipline, Development testing will closely approximate Staging testing. Staging becomes more important as the scale and complexity of changes increases.</span></p><h3><span style="font-size: 11pt;"><strong>Production (Live)</strong></span></h3><p><span style="font-size: 11pt;">The live environment where Halo is actively used. Configuration changes should not be introduced directly into Production. All changes enter via the pipeline, validated in Development and Staging first. In emergency situations a direct Production change may be unavoidable &mdash; but these should be treated as exceptions, documented, and reconciled with the pipeline as soon as possible.</span></p><h3><span style="font-size: 11pt;"><strong>Sandbox (Tinker / Prototype)</strong></span></h3><p><span style="font-size: 11pt;">A free-form environment for experimentation that sits outside the main configuration pipeline. Sandbox is the right place to try different approaches, prototype new processes, or overhaul existing functionality &mdash; all without polluting the Development pipeline with exploratory or half-finished changes.</span></p><p><span style="font-size: 11pt;">Once an approach is confirmed in Sandbox, it is rebuilt cleanly in Development and pushed through the pipeline as normal. Sandbox is typically kept up to date with Production so that prototyping reflects the actual live state of the system.</span></p><h3><span style="font-size: 11pt;"><strong>Beta</strong></span></h3><p><span style="font-size: 11pt;">An instance running the Halo beta release, used to preview and evaluate upcoming features ahead of general availability. This allows teams &mdash; particularly those in large enterprise environments with longer planning cycles &mdash; to assess new functionality and prepare before it reaches their Production environment.</span></p><h3><span style="font-size: 11pt;"><strong>Release Candidate</strong></span></h3><p><span style="font-size: 11pt;">A copy of Production running the next scheduled release version, used to verify that existing configuration and processes are not broken by an upcoming upgrade. Halo maintains a high standard of quality control, so a Release Candidate instance is not necessary for most customers. Some large enterprise customers maintain one as a trust-but-verify measure before applying upgrades to their live environment.</span></p><div class="info-note"><p><strong><span style="font-size: 11pt;">Version Requirement:</span></strong><span style="font-size: 11pt;">&nbsp;All instances in a configuration pipeline must be running the same version of Halo. Syncing between instances on different versions is not supported and is blocked by the platform. If instances in your pipeline are on different versions, syncing will not be possible until all instances are aligned.</span></p></div></div><div class="section"><h2><span style="font-size: 11pt;"><strong>Change Tracking Details</strong></span></h2><p><span style="font-size: 11pt;">The system provides comprehensive tracking capabilities:</span></p><p><br></p><h3><span style="font-size: 11pt;">Tracking Features:</span></h3><p><span style="font-size: 11pt;"><br></span></p><ul><li style="font-size: 11pt;">Complete audit trail of all configuration changes</li><li style="font-size: 11pt;">Automatic encryption of sensitive data</li><li style="font-size: 11pt;">Detailed change history with timestamps and user information</li><li style="font-size: 11pt;">API request details for each change</li></ul><div class="info-note"><p><strong><span style="font-size: 11pt;">Security Note:</span></strong><span style="font-size: 11pt;">&nbsp;Configuration changes involving passwords and sensitive information are automatically encrypted and details will not be visible in the change list.</span></p><p><br></p></div></div><div class="section"><h2><span style="font-size: 14pt;"><strong>Viewing and Managing Configuration Changes</strong></span></h2><h3><span style="font-size: 11pt;"><strong>Configuration Change List</strong></span></h3><p><span style="font-size: 11pt;">Access the configuration change list through Configuration &gt; Advanced Settings &gt; &quot;View config changes&quot;. Changes are listed from newest to oldest, providing a complete audit trail.</span><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU3YTQyZmM4LWM5ZDAtNGQ1NC05YmM3LWFmNjQzMzAxMDE3NyJ9._Xsjj2L0aOFWPL5Y3D8sMKsQf01xFxoOZICS6byZeGM" class="fr-fic fr-fil fr-dib" width="1350" style="width: 1352px; height: 573.338px;" height="573"></p><p><strong>Fig 3. Configuration change list showing tracked changes</strong></p><p><br></p><p><span style="font-size: 11pt;">Entries here can be filtered by selecting the column you would like to filter by and entering the value to filter.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;">You will have a separate option to filter results by a chosen timeframe. A filter will be available in the top left of the page.&nbsp;</span></p><p><br></p><h3><strong><span style="font-size: 14pt;">Disable Configuration Changes in your production instance</span></strong></h3><p><span style="font-size: 11pt;">You can disable agents&#39; ability to make configuration changes in your production instance. This should be used when you would like changes to only be made in a UAT/Dev instance and then have these changes pushed to your production, rather than allowing configuration changes to be made in your live environment. Agents will still be able to see the configuration but not make any changes to it.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This functionality is enabled under configuration &gt; advanced settings using the setting &#39;Disable editing of config tracked entities in production&#39;.&nbsp;</span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImU0MDBiNTVlLTU2ZmMtNGEyMy04NzQ4LWFjOGNhMzA2ZGM0NyJ9.3wTJqGTgzi0_RlSV2olkHU9uyVT7uDt2dHGzlSSxBmw" class="fr-fil fr-dib" width="353" style="width: 355px; height: 47.7676px;" height="48"></p><p><strong>Fig 4. Disable editing of config tracked entities in your production instance</strong></p><p><br></p><p><span style="font-size: 11pt;">When enabled, agents will not be able to make changes to any entities that are config tracked, this includes all settings/modules under the &#39;configuration&#39; module but also any other entities that are config tracked (such as assets). A banner will appear at the top of the screen for all administrator agents informing them that editing has been disabled, if a change needs to be made in an emergency, the banner can be selected to disable the setting, allowing changes to be made. If the banner is selected, the setting will need to be re-enabled under configuration &gt; advanced settings.&nbsp;</span></p><p><br></p></div><div class="section"><h2><strong><span style="font-size: 14pt;">Rolling Back Changes</span></strong></h2><p><span style="font-size: 11pt;">Halo provides robust rollback capabilities for configuration changes:</span></p><div class="info-note"><p><span style="font-size: 11pt;"><strong>Important:</strong> When you select a change to roll back, the system will revert <em>all changes</em> made after and including the selected change. This is not a single-change rollback feature.</span></p></div><p><span style="font-size: 11pt;">To roll back changes:</span></p><ol><li style="font-size: 11pt;">Navigate to the configuration change list</li><li style="font-size: 11pt;">Locate the change you want to roll back to</li><li style="font-size: 11pt;">Click &quot;Roll back before this change&quot;</li><li style="font-size: 11pt;">Confirm the rollback operation</li></ol><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjQ4ZjNjMGYzLTk0ZDMtNGQ3OS1hNTRhLThiNzgzZDk4NWMyYyJ9.uf59HRBtgNt7wIzwW0eSokZ5vPPvnm8cBcCb9oxQdoA" class="fr-fic fr-fil fr-dib"><p><strong>Fig 5. Example of configuration change details and rollback option</strong></p><p><br></p><div class="note"><p><strong><span style="font-size: 11pt;">Best Practice:</span></strong><span style="font-size: 11pt;">&nbsp;Before performing a rollback:</span></p><ul><li style="font-size: 11pt;">Review all changes that will be reverted</li><li style="font-size: 11pt;">Document the current state in case you need to recreate any changes</li><li style="font-size: 11pt;">Consider creating a backup or export of your current configuration</li><li style="font-size: 11pt;">Communicate with team members about the planned rollback</li></ul></div></div><div class="section"><h2><span style="font-size: 14pt;"><strong>Managing Multiple Instances</strong></span></h2><p><span style="font-size: 11pt;">For organizations with both UAT and Production environments, Halo provides tools to manage configurations across instances:</span></p><p><br></p><h3><strong><span style="font-size: 14pt;">Instance Synchronization</span></strong></h3><p><span style="font-size: 11pt;">You can sync instances in several ways:</span></p><ul><li style="font-size: 11pt;"><strong>Automatic Sync:&nbsp;</strong>Use &quot;Sync to UAT&quot; or &quot;Pull from UAT&quot; buttons for complete synchronization</li><li style="font-size: 11pt;"><strong>Manual Export/Import:</strong> Select specific changes to transfer between instances</li></ul><p><strong><span style="font-size: 14pt;"><br></span></strong></p><div class="info-note"><p><span style="font-size: 11pt;"><strong>Note:</strong> See <strong>Pipeline Discipline: Essential Knowledge</strong> above for critical guidance on pushing changes in order, managing dependencies, and coordinating team activity.</span></p></div></div><div class="section"><h2><span style="font-size: 14pt;"><strong>Supported Configuration Entities</strong></span></h2><p><span style="font-size: 11pt;">Configuration tracking and synchronization supports a wide range of entities, including:</span></p><p><span style="font-size: 11pt;"><br></span></p><div style="columns: 3;"><ul><li style="font-size: 11pt;">Access Control (for the entities listed here)</li><li style="font-size: 11pt;">Accounts Codes</li><li style="font-size: 11pt;">Actions</li><li style="font-size: 11pt;">Active Directory</li><li style="font-size: 11pt;">Agent Check-in Statuses</li><li style="font-size: 11pt;">Agreement Rules</li><li style="font-size: 11pt;">Agreement Types (and Subtypes)</li><li style="font-size: 11pt;">AI Connection Credentials&nbsp;</li><li style="font-size: 11pt;">Appointment Types</li><li style="font-size: 11pt;">Approval Groups/CABS</li><li style="font-size: 11pt;">Approval Process Rules</li><li style="font-size: 11pt;">Approval Processes</li><li style="font-size: 11pt;">Automated Tickets</li><li style="font-size: 11pt;">Assets that are marked as Services or Business Applications, only when <a data-fr-linked="true" href="https://usehalo.com/haloitsm/guides/1442#config_sprint_startdate" id="isPasted" target="_blank" rel="noopener noreferrer" style="font-size: 11pt;">&#39;Enable config change tracking for services&#39;</a> is enabled.</li><li style="font-size: 11pt;">Asset Fields</li><li style="font-size: 11pt;">Asset Groups</li><li style="font-size: 11pt;">Asset Relationships</li><li style="font-size: 11pt;">Asset Types</li><li style="font-size: 11pt;">Break Types</li><li style="font-size: 11pt;">Canned Text (all entities)</li><li style="font-size: 11pt;">Canned Text Groups</li><li style="font-size: 11pt;">Categories</li><li style="font-size: 11pt;">Charge Types (and Rates)</li><li style="font-size: 11pt;">Chat Profiles</li><li style="font-size: 11pt;">Column Profiles</li><li style="font-size: 11pt;">Country/Region Codes</li><li style="font-size: 11pt;">Custom Buttons</li><li style="font-size: 11pt;">Custom Fields (all entities)</li><li style="font-size: 11pt;">Custom Tabs</li><li style="font-size: 11pt;">Custom Tables</li><li style="font-size: 11pt;">Custom Translations for Field/Button names</li><li style="font-size: 11pt;">Customer Relationships</li><li style="font-size: 11pt;">Customer Types</li><li style="font-size: 11pt;">Dashboards, only when &#39;<a href="https://usehalo.com/haloitsm/guides/1442/#enable_reporting_config_change_tracking" target="_blank" rel="noopener noreferrer" style="font-size: 11pt;">Enable config change tracking for Reports and Dashboards</a>&#39; is enabled.</li><li style="font-size: 11pt;">Departments</li><li style="font-size: 11pt;">DevOps</li><li style="font-size: 11pt;">Email Rules</li><li style="font-size: 11pt;">Email Templates</li><li style="font-size: 11pt;">Enabled modules</li><li style="font-size: 11pt;">Event Rules</li><li style="font-size: 11pt;">Expense Types</li><li style="font-size: 11pt;">FAQ Lists (and Groups)</li><li style="font-size: 11pt;">Feedback messages (Surveys)</li><li style="font-size: 11pt;">Field Groups</li><li style="font-size: 11pt;">Filter Profiles</li><li style="font-size: 11pt;">Global Settings</li><li style="font-size: 11pt;">Holiday Types</li><li style="font-size: 11pt;">Integrations (Connection details)</li><li style="font-size: 11pt;">Item Groups</li><li style="font-size: 11pt;">Lookups</li><li style="font-size: 11pt;">Mailboxes</li><li style="font-size: 11pt;">Message Groups</li><li style="font-size: 11pt;">Notifications&nbsp;</li><li style="font-size: 11pt;">Notification Templates</li><li style="font-size: 11pt;">Opportunity Types</li><li style="font-size: 11pt;">Organisations/Multi-tenancy</li><li style="font-size: 11pt;" data-pasted="true">PDF Templates (v2.238+)</li><li style="font-size: 11pt;">Pipeline Stages</li><li style="font-size: 11pt;">Qualifications</li><li style="font-size: 11pt;">Reports, only when &#39;<a href="https://usehalo.com/haloitsm/guides/1442/#enable_reporting_config_change_tracking" target="_blank" rel="noopener noreferrer" style="font-size: 11pt;">Enable config change tracking for Reports and Dashboards</a>&#39; is enabled</li><li style="font-size: 11pt;">Roles (Agent)</li><li style="font-size: 11pt;">Remote Invite Variable text</li><li style="font-size: 11pt;">Runbooks/Custom Integrations</li><li style="font-size: 11pt;">Scheduled Tickets (excluding attachments)</li><li style="font-size: 11pt;">Self-Service Portal custom CSS</li><li style="font-size: 11pt;">Service Categories</li><li style="font-size: 11pt;">Services</li><li style="font-size: 11pt;">Site Contact Types</li><li style="font-size: 11pt;">Site Fields</li><li style="font-size: 11pt;">Shift Types</li><li style="font-size: 11pt;">SLAs (including priorities)</li><li style="font-size: 11pt;">SQL Imports (SCCM/Lansweeper)</li><li style="font-size: 11pt;">Statuses (Agent, Asset, Contract, Purchase Orders, Tickets, Quotes and Sales Orders)</li><li style="font-size: 11pt;">Styling for KBs</li><li style="font-size: 11pt;">Survey/feedback variable text&nbsp;</li><li style="font-size: 11pt;">Surcharges</li><li style="font-size: 11pt;">Teams</li><li style="font-size: 11pt;">Ticket Areas</li><li style="font-size: 11pt;">Ticket Link Types</li><li style="box-sizing: inherit; font-size: 11pt;" id="isPasted">Ticket Rules</li><li style="font-size: 11pt;">Ticket Template Groups</li><li style="font-size: 11pt;">Ticket Templates (including child templates)</li><li style="font-size: 11pt;">Ticket Types</li><li style="font-size: 11pt;">UAT and Production Instance Management</li><li style="font-size: 11pt;">User/Asset Relationships</li><li style="font-size: 11pt;">User Roles</li><li style="font-size: 11pt;">View Lists (excluding list groups)</li><li style="font-size: 11pt;">Virima Integration&nbsp;</li><li style="font-size: 11pt;">Virtual Agents</li><li style="font-size: 11pt;">Webhooks</li><li style="font-size: 11pt;">Workdays</li><li style="font-size: 11pt;">Workflows (including OLAs)&nbsp;</li></ul><p><span style="font-size: 11pt;"><br></span></p><p><br></p></div><p><br></p><h2><strong><span style="font-size: 14pt;">Unsupported Configuration Entities</span></strong></h2><p><span style="font-size: 11pt;">Some entities are not configuration change tracked, therefore will not be synced between instances, including:&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><div style="columns: 3;"><ul><li style="font-size: 11pt;"><p>AI Suggestions&nbsp;</p></li><li style="font-size: 11pt;">Asset Templates</li><li style="font-size: 11pt;">Billing Templates</li><li style="font-size: 11pt;">Call Scripts</li><li style="font-size: 11pt;">Certificates</li><li style="font-size: 11pt;">Cost Centres</li><li style="font-size: 11pt;">Currency</li><li style="font-size: 11pt;">Custom SQL Quantities</li><li style="font-size: 11pt;">Forecasting</li><li style="font-size: 11pt;">Language Packs</li><li style="font-size: 11pt;">Product/Item Bundles</li><li style="font-size: 11pt;">Project Budgets</li><li style="font-size: 11pt;">Recurring Billing Profiles</li><li style="font-size: 11pt;">Release Note Groups (Software Releases)</li><li style="font-size: 11pt;">Release Types (Software Releases)</li><li style="font-size: 11pt;">Sales Mailboxes</li><li style="font-size: 11pt;">Screen Layout Profiles</li><li style="font-size: 11pt;">Software Products</li><li style="font-size: 11pt;">Tax Rates</li><li style="font-size: 11pt;">Tax Rules</li></ul><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><br></span></p></div><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><br></span></p><span style="font-size: 11pt;">As the above entities are not synced between instance you will need to replicate configuration of these entities in each instance manually. Certain entities such as PDF templates and language packs can be exported from one instance and imported into the other, this is done for each individual occurrence of the entity.&nbsp;</span><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">If an entity is not on either of these lists please contact Halo support for conformation on whether it is configuration change tracked and synced between instances.&nbsp;</span></p><p><br></p></div><div class="section"><h3><strong><span style="font-size: 14pt;">Instance Synchronization Status</span></strong></h3><p><span style="font-size: 11pt;">An instance is considered &quot;in-sync&quot; when:</span></p><p><span style="font-size: 11pt;"><br></span></p><ul><li style="font-size: 11pt;">It matches the version of the current instance</li><li style="font-size: 11pt;">A UAT restore has been performed from production after upgrading to v2.104</li><li style="font-size: 11pt;">All configuration dependencies are properly aligned</li></ul><div class="info-note"><p><span style="font-size: 11pt;"><strong>Note:</strong> See <strong>Pipeline Discipline: Essential Knowledge</strong> above for critical guidance on pushing changes in order, managing dependencies, and coordinating team activity.</span></p></div></div><div class="section"><h2><span style="font-size: 14pt;"><strong>Synchronization Methods</strong></span></h2><h3><span style="font-size: 11pt;"><strong>Automatic Synchronization</strong></span></h3><p><span style="font-size: 11pt;">For synced instances, you have two primary options:</span></p><ul><li style="font-size: 11pt;"><strong>Sync Changes:</strong> Send configuration changes to another instance</li><li style="font-size: 11pt;"><strong>Pull Changes:</strong> Retrieve configuration changes from another instance</li></ul><p><span style="font-size: 11pt;">When syncing or pulling changes between instances you will be prompted to select a cut off date. Only changes made on or before (older than) this date will be synced/pulled.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p id="isPasted"><span style="font-size: 11pt;">Only agents with &quot;Can push configuration changes to other instances&quot; set to &quot;Yes&quot; will be able to <span style="font-size: 11pt;" data-pasted="true">push changes to production.</span>. This is set on those with the &quot;Administrator&quot; role by default.</span></p><p><br></p><h3><strong><span style="font-size: 14pt;">Manual Export/Import</span></strong></h3><p><span style="font-size: 11pt;">For more granular control:</span></p><ul><li style="font-size: 11pt;">Select specific changes from the configuration change list</li><li style="font-size: 11pt;">Export selected changes to a JSON file</li><li style="font-size: 11pt;">Import the JSON file into another instance</li><li style="font-size: 11pt;">Click &quot;import&quot;&nbsp;</li><li style="font-size: 11pt;"><img data-fr-image-pasted="true" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijc0NWY5ODU0LWJjYmYtNDQ0Ni1hZTAwLTcxMmYwOWI0ZTY4YiJ9.hNzFh6i-Ze1zDm6k9B4RtlumjRnjkBPSCJfbTJ4tsq4" width="151" height="83" style="box-sizing: inherit; border-style: none; cursor: pointer; padding: 0px 1px; user-select: none; text-align: left; color: rgb(0, 0, 0); font-family: sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; width: 153px; height: 82.6084px; max-width: none !important;" data-pasted="true" class="fr-fil fr-dib"></li><li style="font-size: 11pt;">Paste the JSON into the memo box</li></ul><h3><span style="font-size: 14pt;"><strong>Only Allow Changes to be Pulled in</strong></span></h3><p><span style="font-size: 11pt;">You can restrict the syncing of changes so that changes can only be pulled into an instance, changes cannot be pushed in from another instance.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong>Pulling changes</strong> - Changes from another instance can be pulled into the instance you are currently in.&nbsp;</span></p><p><span style="font-size: 11pt;"><strong>Pushing changes</strong> - Changes from the current instance can be pushed into another instance.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This is used if admins are not the same between instances as this prevents admins in once instance pushing changes into another instance that they are not an admin of.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">To restrict the syncing of changes in this way, enable &#39;Do not allow config changes from other instances to be pushed to this instance&#39; found under Configuration &gt; Advanced Settings.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><div class="info-note"><p><span style="font-size: 11pt;"><strong>Note:</strong> See <strong>Pipeline Discipline: Essential Knowledge</strong> above for critical guidance on pushing changes in order, managing dependencies, and coordinating team activity.</span></p></div></div><div class="section"><h2><br></h2><h2><strong><span style="font-size: 14pt;">Syncing using Pipelines&nbsp;</span></strong></h2><p id="isPasted"><span style="font-size: 11pt;">When managing instances on version 2.182+ of Halo you will be able to restrict syncing between specific instances to a defined pipeline. This means each instance in the pipeline can only sync changes from its source instance and this sync is only in one direction.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This allows you to have more control over your instance syncing, as, by creating a linear relationship between instances you can ensure changes are synced sequentially with the appropriate testing being carried out before syncing to production.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;"><strong>Example Structure:</strong></span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImU1MDcyODBhLTljYzUtNDFiMS05MWZmLTBjNzQ0ZGFjNTVhMyJ9.9zAk2xVimVQI3gdimkU0QKvtw9oPoZT6S4y0rTctfH8" class="fr-fil fr-dib" width="553" style="width: 555px; height: 67.4635px;" height="68"></span></p><p><span style="font-size: 11pt;">In the above example pipeline changes will only be able to be pushed/pulled between Development and UAT then between UAT and Production. Changes should first be tested in development then synced to UAT where they can be tested in line with existing configuration. Then when testing is complete sync to Production. Changes made in development cannot be synced directly to Production.&nbsp;</span></p><p><br></p><h3><strong><span style="font-size: 14pt;">Configuring Pipeline stages</span></strong></h3><p><span style="font-size: 11pt;">Pipeline syncing will only take affect once you have specified a source instance for one of your instances. Once this is set pipeline syncing will be enabled and you will only be able to sync changes according to the pipeline.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Hosted Customers:</span></p><p><span style="font-size: 11pt;">To set a source instance head to configuration &gt; instances &gt; select an instance you would like to set a source for, use &#39;Set Source Instance&#39; to choose the instance you would like to be the source for this one. Each instance can only have one source (parent) instance.&nbsp;</span></p><p><span style="font-size: 11pt;"><img data-fr-image-pasted="true" src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRiM2RiOThiLTEyM2UtNGZiMC04ZGM2LWRkZTdmM2EwYzZiMCJ9.EFS1Ikf1Vdc2oDnpf1NbchaZrrXpK0YKz2ey8A_SO-A" width="429" height="206" style=" box-sizing: inherit; border-style: none; cursor: pointer; padding: 0px 1px; user-select: none; max-width: 100%; height: 205.98px; text-align: left; color: rgb(51, 51, 51); font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(248, 249, 250); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; width: 431px; border-radius: 8px !important;" id="isPasted" class="fr-fil fr-dib"></span></p><p><strong>Fig 6. Set Source Instance&nbsp;</strong></p><p><br></p><span style="font-size: 11pt;">On-Prem Customers:</span><p id="isPasted"><span style="font-size: 11pt;">To set up multiple connected instances, please consult the following guide:&nbsp;</span><a data-fr-linked="true" href="https://usehalo.com/halopsa/guides/2258" id="isPasted" target="_blank" rel="noopener noreferrer" style="font-size: 11pt;"><span style="font-size: 11pt;">Setting up the &ldquo;Instances&rdquo; area for On-Prem Halo Instances</span></a></p><p><br></p><h2><span style="font-size: 14pt;"><strong>Improve Instance Module Loading</strong></span></h2><p><span style="font-size: 11pt;">You can change how syncing occurs in order to improve the loading time of the instances module.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p id="isPasted"><span style="font-size: 11pt;">When loading an instance within the instances module the time taken to load will depend on how many changes have occurred since the last sync. The more differences between the current instance and the instance being viewed, the longer the load. This is because each table in each instance is checked to compare differences.</span></p><p><span style="font-size: 11pt;"><br></span></p><p id="isPasted"><span style="font-size: 11pt;">You can disable this difference check, and instead determine which changes are pushed based on the last sync date. This is done using the setting &#39;Don&#39;t check diffs when getting changes to sync&#39; found under Configuration &gt; Advanced Settings.&nbsp;</span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ2ZGIzZDljLTk5YzItNDBlZS1iNTE0LTY0ZTNiM2YyMThmNCJ9.uavqIz_sfXkBmQb2A5CmMYDM_UHYViZ0Sa5yaOC3ims" class="fr-fil fr-dib" style="width: 1040px; height: 198.631px;" width="1173" height="224"></p><p><strong>Fig 7. Disable diff checks&nbsp;</strong></p><p><br></p><p id="isPasted"><span style="font-size: 11pt;">When this is disabled, the differences between instances will be checked to see where differences lie, these differences are then synced. This results in the most accurate syncing of data.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">When enabled, all changes since the last sync date will be pushed. This results in a faster loading of the instances area but potentially less accurate syncing of changes.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Only enable this setting if you are using instance pipelines. Once enabled do not perform manual syncs of changes (i.e. cherry-picking changes to sync). Also keep in mind when this is enabled the number of of commits behind/ahead for an instance may not be accurate but the instances area will load faster.&nbsp;</span></p><p><br></p></div><div class="section"><h2><strong><span style="font-size: 14pt;">UAT Instance Management</span></strong></h2><p><span style="font-size: 11pt;">For non-production instances, additional management options are available:</span></p><p><br></p><h3><span style="font-size: 14pt;"><strong>Restore from Production</strong></span><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImViZmE3ZGRjLWFkNTctNGQ2Yy04Y2RiLTdmYjkyYTZlZmUyMyJ9.gXNtEgLBOoMg9qcwBDAwxZtQhSOWPzPu3HTSJSiaCgU" class="fr-fic fr-fil fr-dib" width="390" height="214"></h3><p><strong>Fig 8. Restore instance from Production</strong></p><p><br></p><p><span style="font-size: 11pt;">Use the &quot;Restore from Production&quot; button to:</span></p><ul><li style="font-size: 11pt;">Create a support request with Halo Support</li><li style="font-size: 11pt;">Ensure testing environments match production</li></ul><p><span style="font-size: 11pt;">When restoring an instance from production, you will be prompted if any outstanding changes have not been synced to production. If you are using instance pipelines, from this version you can choose to restore all instances in the pipeline or just the current instance, by using the &quot;Select which instances to restore&quot; drop-down.</span></p><p data-pasted="true"><br></p><p>&nbsp;</p><p><span style="font-size: 11pt;"><strong><em>Note:</em><em>&nbsp;When requesting a UAT restore using this button all the ticket data in your UAT instance will be lost. To replace your data</em></strong><span style="font-size: 11pt;" data-pasted="true"><em><strong>&nbsp;with the ticket data in your Prod instance please contact Support.</strong></em></span></span></p><p><br></p><p><br></p><h3><strong><span style="font-size: 14pt;">Change Tracking</span></strong></h3><p><span style="font-size: 11pt;">Monitor configuration differences through:</span></p><ul><li style="font-size: 11pt;"><strong>Changes Behind:</strong> View changes needed to catch up to production</li><li style="font-size: 11pt;"><strong>Changes Ahead:</strong> View changes made in UAT that aren&#39;t in production</li></ul><div class="note"><p><span style="font-size: 11pt;"><strong>Best Practice:</strong> Regular synchronization between environments helps:</span></p><ul><li style="font-size: 11pt;">Maintain consistent testing environments</li><li style="font-size: 11pt;">Reduce configuration drift</li><li style="font-size: 11pt;">Simplify change management</li><li style="font-size: 11pt;">Ensure accurate testing results</li></ul></div></div><div class="section"><h2><span style="font-size: 14pt;"><strong>Managing Mailboxes between Instances&nbsp;</strong></span></h2><h3><span style="font-size: 14pt;"><strong>Configuring Multiple Credentials per Mailbox&nbsp;</strong></span></h3><p><span style="font-size: 11pt;">You are able to configure multiple credentials per mailbox. This allows you to link credentials to a specific instance, so a single Halo mailbox can contain credentials to access multiple Azure/Google/SMTP mailboxes. Each of these mailboxes will be linked to your production, UAT or dev instance, this instance will then only process mail in the mailbox the credentials give access to.</span></p><ul><li style="font-size: 11pt;">The setting &#39;Enable config change tracking for mailboxes&#39; under config &gt; advanced settings, must be enabled to use this functionality.&nbsp;</li></ul><div class="warning-note"><p><span style="font-size: 11pt;"><strong>Important:</strong> The credentials configured must authorise different Azure/Google/IMAP/POP3/EWS mailboxes. If you configure two sets of credentials for the same (Azure/Google/SMTP) mailbox mail will be split between the two instances.&nbsp;</span></p></div><p><span style="font-size: 11pt;">This means that now when changes are pulled/synced between instances mailbox configuration will be pulled/synced too, so UAT environments can be used to test email configuration.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p id="isPasted"><span style="font-size: 11pt;">This new functionality allows you to:</span></p><ul><li style="font-size: 11pt;">Create a mailbox in Prod or UAT and sync mailbox configuration between instances</li><li style="font-size: 11pt;">Configure instance specific mailbox credentials - When configuring credentials you will have an option to specify what instance the credentials are used for</li><li style="font-size: 11pt;">Complete testing in UAT instances using the same mailbox as the Prod instance</li><li style="font-size: 11pt;">Restore UAT to Prod without loosing the UAT mailbox</li></ul><h3 style=" box-sizing: inherit; padding: 0px; line-height: 1.1; margin: 0px; font-weight: 500; font-size: 1.75rem; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; 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: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;" id="isPasted"><strong><span style="font-size: 14pt;">Single Credential per Mailbox&nbsp;</span></strong></h3><p><span style="font-size: 11pt;">If you are on a version prior to v2.182 only one set of credentials can be configured per mailbox. This makes it difficult to push changes between instances and complete email related testing as the same credentials should not be used to authorise the same mailbox in a different instance. You will need to create a separate Halo mailbox just for your UAT environment. When a UAT is refreshed (synced to Prod) the mailbox against the UAT instance is deleted, and when changes are pulled from UAT into prod, the mailbox setup in UAT will not be pulled into prod. &nbsp;</span></p></div><div class="section"><h2><strong><span style="font-size: 14pt;">Security Considerations</span></strong></h2><ul><li style="font-size: 11pt;">Sensitive data and passwords are automatically encrypted</li><li style="font-size: 11pt;">Access to configuration management should be restricted</li><li style="font-size: 11pt;">All configuration changes are tracked and auditable</li><li style="font-size: 11pt;">Regular backups should be maintained</li></ul></div><div class="section"><h2><strong><span style="font-size: 14pt;">Mitigating API calls between Instances</span></strong></h2><p><span style="font-size: 11pt;">When changes are synced/pulled between instances this will include any custom integrations/runbooks/webhooks. To mitigate API calls from UAT and Dev environments impacting data in your production environment you will either need to disable any webhooks/runbooks/custom integrations created in UAT/Dev or amend these so data is posted to the correct address (not to production environment).</span></p><p><br></p><h3><strong><span style="font-size: 14pt;">Make API calls instance Specific&nbsp;</span></strong></h3><p><span style="font-size: 11pt;">Webhooks/runbooks/custom integrations can be set to only trigger in chosen environments so when changes are synced to another instance the webhook/runbook/custom integration will be created but no API calls will be made. This is done using the &#39;Enabled for Instances&#39; setting, found against the webhook/runbook. &nbsp;&nbsp;</span></p><div class="note"><p><span style="font-size: 11pt;"><strong>Note:</strong> When changing the value of the setting <span id="isPasted">&#39;Enabled for Instances&#39;,&nbsp;</span>the config change must be synced to the other instance(s) before the setting will take effect in the linked instances.</span></p><p><br></p></div></div><div class="section"><h2><strong><span style="font-size: 14pt;">Mitigating Notifications between Instances</span></strong></h2><p><span style="font-size: 11pt;">When changes are synced/pulled between instances this will include any notifications. To mitigate notifications you will need to amend/disable any notifications created in your UAT/Dev environment.&nbsp;</span></p><p><strong><span style="font-size: 14pt;"><br></span></strong></p><h3><strong><span style="font-size: 14pt;">Make notifications instance Specific&nbsp;</span></strong></h3><p><span style="font-size: 11pt;">Notifications can be set to only trigger in chosen environments so when changes are synced to another instance the notification will be created but not triggered. This is done using the &#39;Enabled for Instances&#39; setting, found against the notification. &nbsp;&nbsp;</span></p><div class="note"><p><span style="font-size: 11pt;"><strong>Note:</strong> When changing the value of the setting <span id="isPasted">&#39;Enabled for Instances&#39;,&nbsp;</span>the config change must be synced to the other instance(s) before the setting will take effect in the linked instances.</span></p><p><br></p><p><strong><span style="font-size: 14pt;">Sync changes to Entities based on Third Party IDs (v2.234+)</span></strong></p><p><span style="font-size: 11pt;">When syncing changes between instances for a specific entity (i.e. an asset, agent, user) the entity that is changed will be linked to an entity in other instances using it&#39;s Halo ID. When the change is pushed, the entity with the same Halo ID will be updated. However, if the Halo IDs of your entities are not consistent between your instances, you may wish to link entities using a third party ID instead, such as the ID the entity has in your identity management/CMDB tool.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">This is currently available for the following entities:</span></p><ul><li data-pasted="true" style="font-size: 11pt;">Approval processes</li><li style="font-size: 11pt;">Approval rules</li><li style="font-size: 11pt;">Cab members</li><li style="font-size: 11pt;">Team members</li><li style="font-size: 11pt;">Ticket rule criteria and outcomes</li><li style="font-size: 11pt;">Asset users, business owners, and technical owners</li><li style="font-size: 11pt;">Role agents and users</li></ul><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">All other entiteis will still link using their Halo ID.&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">To enable the use of third party IDs for linking entities, head to Configuration &gt; Advanced Settings &gt; enable &quot;</span><span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: 11pt; 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: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;" data-pasted="true">Use third-party IDs for linking Agents, Users, Roles, Teams, and CABs to change tracked entities&quot;</span></p><p><span data-pasted="true"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImE1NTFjZWU3LTVjNzAtNDc4Zi04MjQ5LTk2YTllZTlkNDFkMiJ9.7_5bO3wKhUlbr23ZMllGHvppJKsBKmCkeyZM2H0y2K4" class="fr-fic fr-fil fr-dib" width="1057" style="width: 1059px; height: 418.828px;" height="419"></span></p><p><span data-pasted="true"><strong>Fig 9. Setting to enable using third party IDs for linking entities</strong></span><strong><br></strong></p><p><br></p><p><span data-pasted="true"><span style="font-size: 11pt;">Once enabled, you will need to ensure each entity has it&#39;s &#39;third party id&#39; imported into the </span><span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: 11pt; 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: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;" data-pasted="true">third_party_relational_id field in Halo. This can be done by mapping a value to this field in the integration setup for the tool, in Halo. For example, if you are using Microsoft Entra ID to import agents/users (where Entra ID is the source of truth for identity mangement) you will need to map a field in Entra (perhaps employeeid) to &#39;third_party_relational_id&#39; in the integration setup in Halo.</span><span style="color: rgb(0, 0, 0); font-family: sans-serif; font-size: 13px; 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: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;" data-pasted="true"> </span></span></p><p><br></p><p><strong><span style="font-size: 14pt;">Managing Who can Sign in to Each Instance&nbsp;</span></strong></p><p><span style="font-size: 11pt;">The <a href="https://usehalo.com/haloitsm/guides/2667" target="_blank" rel="noopener noreferrer">Single Sign on Module</a> can be used to restrict which agents can sign into which instance. This is allows you to restrict access to your Dev/UAT/Sandbox environments to only those allowed agents (e.g. developers).&nbsp;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">When setting up a single sign on connection you can choose the instance the connection can be used to login to.&nbsp;</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjNzBlNzRmLWY1MGYtNDRiZC04YWM4LTU3NzJjM2JjNmVkNCJ9.BhXFSHD9w4lVBg1Un43P7odQi-yawEcSIu36Mr9N5kI" class="fr-fic fr-fil fr-dib" width="1902" style="width: 1904px; height: 317.619px;" height="318"></span></p><p><span style="font-size: 10pt;"><strong>Fig 10. Choose instance sign sign on application can be used for&nbsp;</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Then, you will need to setup claim validations for the connection to restrict who can sign in based on data provided by the identity provider, such as their Azure group. This will prevent any agents who do not have these claims from logging into the instance.&nbsp;</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRhMDk0ZDE1LWM2OTgtNGZhYi05ZmY5LWM0YjhlOGQ4MDI5ZCJ9.1CZ0vJcJcg_PGyEVOsIdXe5WO_rd-mXc3q7wgfuV15Q" class="fr-fic fr-fil fr-dib" width="1253" style="width: 1255px; height: 383.807px;" height="384"></span></p><p><span style="font-size: 10pt;"><strong>Fig 11. Claim Validation for Single Sign on Connection</strong></span></p><p><br></p><p><span style="font-size: 11pt;">For details on setting up single sign on for multiple instances see our guide <a href="https://usehalo.com/haloitsm/guides/2667" target="_blank" rel="noopener noreferrer" style="font-size: 11pt;">here</a>.&nbsp;</span></p><p><br></p></div></div>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.