Browse Guides

Dynamics 365 CRM Integration
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><div><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } </style><p><span style="font-size: 11pt;"><strong>In this guide we will cover:</strong></span></p><p><span style="font-size: 11pt;"><strong>- What is the Dynamics 365 CRM Integration?</strong></span></p><p><span style="font-size: 11pt;"><strong>- Registering an Azure Application</strong></span></p><p><span style="font-size: 11pt;"><strong>- Enabling the Integration</strong></span></p><p><span style="font-size: 11pt;"><strong>- Account and Contact Imports</strong></span></p><p><span style="font-size: 11pt;"><strong>- Custom Table Syncs</strong></span></p><p><span style="font-size: 11pt;"><strong>- Halo Integrator</strong></span></p><p><span style="font-size: 11pt;"><strong>- Multi-Tenancy</strong></span></p><p><br></p><p><br></p><p><span style="font-size: 14pt;" id="isPasted"><strong>What is the Dynamics 365 CRM Integration?</strong></span></p><p><span style="font-size: 11pt;">Microsoft Dynamics 365 CRM can be integrated with Halo to import and sync your accounts and imports.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><strong><span style="font-size: 14pt;">Registering an Azure Application</span></strong></p><p><span style="font-size: 11pt;">To use the Dynamics 365 CRM integration, you are required to register an application in your Azure portal. To do this, open your Azure portal and select App registrations &gt; New registration. Give your application a sensible name, and ensure that supported account types is set to &quot;Single tenant&quot;.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3Y2ZmMmYwLTk4MDQtNGJmOC1iODBlLTBiNGU1MjEyZWNhYiJ9.g_XWfTVVqPcbgzcubj-CDFrLNbrQXz1qc0R2pWMrHog" class="fr-fic fr-dii"></p><p><strong><span style="font-size: 10pt;">Fig 1. Registering an application.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">To finalise your application registration, you must register a redirect URI. Although this step is optional at the time of submission, a redirect URI is required for the integration to work successfully. The redirect URI used will differ depending on the version of Halo you are using.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;">On versions prior to v2.200 the following redirect URI will need to be used:</span></p><ul><li style="font-size: 11pt;">https://YOURHALODOMAIN/azure/auth</li></ul><p><span style="font-size: 11pt;">On versions v2.200+ you the following redirect URI will need to be used:</span></p><ul><li style="font-size: 11pt;">https://YOURHALODOMAIN/authcallback</li></ul><p><span style="font-size: 11pt;">But the exact redirect URI you need can be found on the setup page for the integration in Halo.<br></span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRhNTAxOGExLTI3MGUtNDgyOS04NGRhLWNhZTg5ZWY4YTUwNCJ9._ih8TuZ3KipIc6N3mHM-YxzM2cax0Vz35jBY--LgBWo" class="fr-fic fr-fil fr-dib" width="877" height="210"></p><p><span style="font-size: 10pt;"><strong>Fig 2. Setting the redirect URI.</strong></span></p><p><br></p><p><span style="font-size: 11pt;"><em><strong>Note: If you have disconnected to the integration and are reconnecting, if your Halo instance is on v2.200+ you will need to use the new redirect URI (</strong></em></span><strong><em><span style="font-size: 11pt;">WWW.YOURHALODOMAIN/authcallback).</span></em></strong></p><p><br></p><p><span style="font-size: 11pt;">Once the application has been registered successfully, navigate to the Certificates &amp; secrets tab. Register a new client secret using the available options. Once created, keep a copy of this secret somewhere safe, as it is not obtainable again once you leave the application.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjFmYmEzNWMxLWM3MGMtNDk0Ni1hZmVkLTYxYzY5OTRjOTdmMiJ9.s4FVt5hpqWIMXeWyrDM1CeEpeEtQEZm1r-SiBSBQCjQ" class="fr-fic fr-dii"><br></p><p><strong><span style="font-size: 10pt;">Fig 3. Client secret.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">The final step to configuring an application in Azure is to add API permissions so that your app can access resources in Dynamics 365 CRM. Navigate to the API permissions tab, where you will see that you have the permission User.Read by default. This permission can be removed as it is not required. Select Add a permission and choose Dynamics CRM from the list of available APIs.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE3YjE3MDZlLTdkZDctNDkwOS05MWM0LTZhZGRmYjIyODA0ZCJ9.6rzc6lYdNPxRq-DyD4SUX1mImm7K1qfkA0ZR_I4OB0A" class="fr-fic fr-dii"></p><p><span style="font-size: 10pt;"><strong>Fig 4. Microsoft APIs.</strong></span></p><p><br></p><p><span style="font-size: 11pt;">Select Delegated permissions and then select user_impersonation. Click Add permissions to add this permission to your application.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdiYjM1NzI0LWQ3NDgtNDIxMS1hMTBiLTE3YmJhZWQ3ODYwNCJ9.5trSbqPetlNViG-4YSyF-M2ShZjRghFg06Ferd_rp-o" class="fr-fic fr-dii"></p><p><span style="font-size: 10pt;"><strong>Fig 5. Setting permissions.</strong></span></p><p><br></p><p><span style="font-size: 14pt;"><strong>Enabling the Integration</strong></span></p><p><span style="font-size: 11pt;">To enable the Dynamics 365 CRM integration, navigate to Configuration &gt; Integrations, and enable the module using the plus icon in the top right hand corner of the menu icon. Once the module has been enabled, click the menu icon to begin configuring it.</span></p><p><br></p><p><strong><span style="font-size: 12pt;">Authorisation in Halo</span></strong></p><p><span style="font-size: 11pt;">When opening the module for the first time, you will see four fields that must be populated. First is your Dynamics Organisation url, followed by your Azure domain (This is also referred to as the Tenant ID in azure). Third is the ID of the application that you have just registered in Azure (Client ID), which can be found on the overview tab of the application in the Azure portal. The fourth option is your client secret which was generated earlier. Here is the information required from Azure, as displayed in the app registration:</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJlNzAxMTM0LTMxZmItNGQyMS05MzIxLTMzODk2MDJmYjQzOCJ9.2o1Ev_XPL9z8zWtNW3d5zcRqVdNBhR35NCYHE9mLDuY" class="fr-fic fr-fil fr-dib" width="622" height="220"></p><p><strong><span style="font-size: 10pt;">Fig 6. IDs.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">The Tenant ID above being for the &quot;Azure Domain&quot; input:</span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdhYzRhMTVkLWUxMTUtNGMzZC04ZWM5LWVmNDNmYzA5ODE3YyJ9.v4XCnPqWDirRavnyzgo8FR_uus6sjvoWFkZZ-VE3An0" class="fr-fic fr-dii"></p><p><strong><span style="font-size: 10pt;">Fig 7. Azure domain.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">Click the authorize application button to begin the authorization process. You will be redirected to the Microsoft login screen, and upon a successful login, you will be redirected back to the Dynamics 365 CRM module. Your application and authorisation details have now been saved. To clear these details or make changes to your application configuration in Halo, click the Disconnect from Application button.</span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZhNDA5ZGRhLWJiOTItNDc5ZS1hZDgxLTBjOWVkODVmM2IzNCJ9.P_IRJk-zpEI4WW_cWXHVZmr2TF75eKsBhkgkngdaQjw" class="fr-fic fr-dii"></p><p><span style="font-size: 10pt;"><strong>Fig 8. Azure application.</strong></span></p><p><br></p><p><span style="font-size: 11pt;">Note that if you make changes to your application in Azure, such as changing the API permissions or your client secret expires and you have to generate a new one, you will need to disconnect from your application in Halo and re-complete the authorization process.&nbsp;</span></p><p><br></p><p><strong><span style="font-size: 14pt;">Account and Contact Imports</span></strong></p><p><span style="font-size: 11pt;">Now you are connected to your Azure application, minimal other configuration is required for you to begin importing accounts and contacts. If you are not importing all of your accounts, it is important that you choose a default site, as imported users who have not had their accounts imported will be assigned to this site.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQwYTkyNTRhLTliNTMtNDY2OC1iOWYxLTY3NjUzNGI5ZTZmZSJ9.BZZXlGQwquNvobGpuuWpd0eMQBW99mrfRkwKGJ1Ewzw" class="fr-fic fr-dii"></p><p><span style="font-size: 10pt;"><strong>Fig 9. Default site.</strong></span></p><p><br></p><p><span style="font-size: 11pt;">You also have the option to apply Accounts/Contacts filters to the import. By entering a filter in the respective field (shown in figure 10) you can restrict which Accounts and Contacts are imported into Halo.&nbsp;</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMxZGVjYTAyLTEyMTUtNDIzYy1hMDEyLWZmOWVhNWRmMDdiZSJ9.inzoIO4lvWn8nrQ74P2BHkwG7JU4Lq9Ik7w4xb8Mq2I" class="fr-fic fr-fil fr-dib" width="1226" style="width: 1228px; height: 85.8847px;" height="86"></span></p><p><br></p><span style="font-size: 10pt;"><p><strong>Fig 10. Filter fields for Accounts and Contacts imports.</strong></p></span><span style="font-size: 11pt;"><p><br></p><p>In Halo, every client can have multiple sites under them. Each site usually representing a location of this client. Dynamics 365 CRM does not mirror this same concept of sites, therefore, when accounts are imported a new site in Halo will be created under the client that is created for this Account. The name of the site will be determined by the &#39;address1_name&#39; field against the Account in Dynamics 365 CRM by default. However, you can choose an alternative field to be used to name the site in the &#39;Site naming&#39; field.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJlNmY4YjdjLTQwMmUtNGM4Ny1iYmQwLTY5MDkzNWRiYjhiNCJ9._Dqm-heNpCNxRj1wRJAyDdxYsTF0Dt2TXBaVSyEcEBw" class="fr-fic fr-fil fr-dib" width="763" style="width: 765px; height: 330.51px;" height="331"></p><p><br></p></span><span style="font-size: 10pt;"><p><strong>Fig 11. Site Naming field.</strong></p></span><span style="font-size: 11pt;"><p><br></p><p><strong>Match to existing Clients on Name if GUID not matched&nbsp;</strong>- When enabled any Accounts imported from Dynamics 365 CRM will be attempted to match to an existing Halo client based on their name, if a client with the same GUID cannot be found. When disabled, clients/Accounts will not match on name, if they cannot be matched on GUID a new client will be created. Clients in Halo are assigned a Dynamics 365 CRM GUID when created by importing them from Dynamics 365, or when they have previously matched and synced to an account successfully based on name.&nbsp;</p></span><p><br></p><p><br></p><p><span style="font-size: 11pt;">You are now ready to import accounts and contacts using the two available buttons.</span></p><p><br></p><p><span style="font-size: 11pt;">If you have additional fields in Dynamics 365 CRM such as custom fields that you have created, and you would like to bring that data into Halo, you can add field mappings for both accounts and contacts. It is important that you choose the correct data type when creating this field mapping, as your chosen type will determine which custom fields in Halo you can link your Dynamics field too. For example, a multi-select option set can only be mapped to a Halo multi select field.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRkZDI1MzI4LTczNTItNDg5NC04Nzc1LTNmM2ZiNGYzOGY0ZSJ9.4fLNtT66FeSWsTNJINNCw7tW_moYupDuybjG0SYPOSE" class="fr-fic fr-dii"><br></p><p><strong><span style="font-size: 10pt;">Fig 12. Field mapping.</span></strong></p><p><br></p><p><span style="font-size: 11pt;">If you are mapping either a multi select or single select option set field, (The single select option set will appear as &quot;Option Set&quot; on the data type dropdown) you must also map each option to a value in Halo. To do this, navigate to Custom Objects &gt; Custom Fields and open your custom field. Edit a value in the list and specify the corresponding Dynamics ID of the value.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIwODBmOGRhLTIxMzMtNDFkZC04YjAzLWVjY2NlOTZkZjg0MSJ9.AgNmYqNdf4JFm3pXqB972Pi-BUIeepRyeDZrSgr_crM" class="fr-fic fr-dii"></p><p><span style="font-size: 10pt;"><strong>Fig 13. Mapping values.</strong></span></p><p><br></p><p><span style="font-size: 11pt;">This step ensures that single and multi option set fields can be set correctly when they are imported into Halo.</span></p><p><br></p><p><strong><span style="font-size: 14pt;">Custom Table Syncs</span></strong></p><p><span style="font-size: 11pt;">You can set up tables in Dynamics 365 to sync with a table in Halo so additional data is synced over.</span></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY2ZmIyZmI2LWM3NDgtNDQyMC1hMjYwLWQ0MTM1ZjkwODRjZSJ9.iPaBKN1_w2X8UjF__16nJ_6_oaBySvXC0p7yQpOTd2A" class="fr-fic fr-fil fr-dib" width="424" style="width: 426px; height: 505.913px;" height="506"></p><p><span style="font-size: 10pt;"><strong>Fig 14. Customer mapping.</strong></span></p><p><br></p><p><span style="font-size: 11pt;">To do this head to the &#39;Custom Table Syncs&#39; tab and add a mapping to the table. Here you will need to choose the Dynamics 365 table you are taking data from and the Halo table you are sending the data to (this is the table the data will be stored in in Halo). You can also add a filter here, so only certain data in the table will be pulled across. The variable &quot;$-INTEGRATORLASTSYNC&quot; can added here, which is useful when filtering to only pull new updates such as &quot;$filter=modifiedon $-INTEGRATORLASTSYNC&quot;.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Once this is saved you will be able to add child and field mappings within this table mapping to determine where data within the table is stored.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;">You can map grandchild lookups to a table in Halo. When configuring a table mapping you will be able to configure a grandchild mapping within the &#39;Child mappings&#39; table. This allows you map data that is two relationships away from the Dynamics 365 Table selected.&nbsp;</span></p><p><br></p><p><span style="font-size: 14pt;"><strong>Halo Integrator</strong></span></p><p><span style="font-size: 11pt;">Once you&rsquo;re happy with your configuration for the rest of the connection, you can then enable the connection to be synced via the Halo Integrator application.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The Halo Integrator can be downloaded using the link provided. You can also choose whether to automatically import accounts and contacts.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Once you&rsquo;ve downloaded the Halo Integrator, you should complete the configuration check on the Dynamics 365 CRM Tab. General configuration of the Halo Integrator is not covered in this guide.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">If all points return with a green ticket, then you are ready to import. If any points return a red cross, you should revisit the configuration for the integration.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">To manually import via the Halo Integrator, switch to the Processes tab and click &ldquo;Start Processing&rdquo;. This will process all integrations that are enabled for the Integrator. Alternatively, if your Halo Integrator application is already configured to run on a schedule, the Dynamics 365 CRM integration will be checked and processed the next time the Integrator runs.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;"><span style="font-size: 14pt;" id="isPasted"><strong>Multi-Tenancy</strong></span></span></p><p><span style="font-size: 11pt;">You can now use multi-tenancy functionality on Dynamics 365 CRM. Any previously configured instance will be migrated into one called &quot;Migrated Configuration&quot;, although this can be renamed if wished.</span></p><p><br></p><p><span style="font-size: 11pt;">When clicking into the integration, you will now see a list with the migrated configuration at the top, and you can click &quot;New&quot; to configure another connection with the same method.</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjcxYWMwNDM5LTgzYmYtNGNlZS1hYjdkLTY4MmI3OWU1ZTM5NSJ9.5w9H3R-RBY5axpSWCemiMFIG5_kCLZGomW5eA71Zwpo" class="fr-fic fr-fil fr-dib" width="1224" style="width: 1226px; height: 188.023px;" height="188"></span><strong><span style="font-size: 10pt;">Fig 15. Adding another tenant.</span></strong></p><p><br></p></div>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.