About the series
This series will introduce you to two major areas related to Outlook Synchronization in Microsoft Dynamics CRM for Outlook:
Concepts & Rules
Dynamics CRM Outlook client: Scenarios and Synchronization Rules
Dynamics CRM Outlook client: Organization DB table structures - Server side
Dynamics CRM Outlook client: Organization DB table structures - Client side
Dynamics CRM Outlook client: User defined fields
Dynamics CRM Outlook client: Settings that affect Synchronization & Tracking
Dynamics CRM Outlook client: Highlights and Simple Methodology for troubleshooting
Dynamics CRM Outlook client: Simple list of Troubleshooting Tools
Dynamics CRM Outlook client: Synchronization Scenarios - Changes to items in Outlook (ACT)
Dynamics CRM Outlook client: Synchronization Scenarios - Changes to items in Dynamics CRM (ACT)
Dynamics CRM Outlook client: Synchronization Scenarios - Track an item in Outlook (ACT)
Dynamics CRM Outlook client: Synchronization Scenarios - Merging overlapping changes
In order to further understand the Outlook Synchronization, let’s look at some synchronization scenarios of the Outlook Synchronization.
In this article, we will review the synchronization flow when an item (ACT – Appointment, Contact, Task) is tracked in Outlook and how the changes are processed by the Outlook client and Dynamics CRM.
Track an item in Outlook (ACT)
(1) The user tracks a contact record in Outlook.
(2) The track process is synchronous for non-e-mail objects.
This means that the track request is transmitted immediately to the server when the user clicks the Track button from the explorer, or when the user clicks Track and then ‘Save and Close’ in the inspector.
As part of the initial SDK create request, the MAPI properties of the Outlook item are retrieved by the add-in and passed to the CRM platform over the organization web service.
The location of the MAPI store depends on whether the user has enabled Exchange Cached Mode (OST or Exchange server).
(3) As an item is marked for synchronization, entries are added to the OutlookSyncTable and the IDMappingTable.
(4) When the server receives this request, the platform will perform a series of validations before the request is fulfilled and a response is generated. This includes:
Note: If any of the above actions on the server cannot be completed, the track process will fail.
(5) Create Response is sent back to the client, containing the CRM record’s GUID.
(6) When an Outlook object is manually tracked, several user-defined fields are created in the Outlook object to complete the track process.
Let’s show a sample of how to use the troubleshooting tools (article Dynamics CRM Outlook client: Simple list of Troubleshooting Tools) considering this synchronization scenario: track an item in Outlook (ACT).
(1) Navigate to CRM server, open the server side tools and clean up old traces:
Platform traces (CRMDiagTool)
(2) Still on the CRM server, open the SQL Server Management Studio (SSMS) and prepare the queries:
order by CreatedOn desc
select SubscriptionId, MachineName,LastSyncStartedOn, CompletedSyncStartedOn, SubscriptionType, SyncEntryTableName
where systemuserid in (select SystemUserId from systemuserbase where DomainName = '<domain>\<user>')
select * from SyncEntry_<SubscriptionID>
where objectid = '<ContactId>'
(3) Navigate to client machine, open the client side tools and clean up old traces:
Fiddler (enable decrypt HTTPS traffic, if necessary)
(4) Still on the client machine, open the SQL CE Toolbox tool > OutlookSyncCache.sdf database file and prepare the queries:
SELECT * FROM [IdMappingTable];
SELECT * FROM [OutlookSyncTable];
(5) Start the collections (server-side):
(6) Start the collections (client-side)
(7) Create a new contact record in Outlook and track it
(8) After the tracking process stop all collections
(9) Review the server-side collections:
(a) Open Platform Traces through Notepad++:
Duplicate detection (i.e. HasDuplicatesPlugin Status)
Plug-ins (i.e. AuditCreateUpdatePlugin)
Creation (i.e. insert into)
Response XML (latest call for thread)
(b) Go to SSMS and run the queries, reviewing the outcomes
(10) Review the client-side collections:
(a) Review the Fiddler traces, looking for the Create Request/Response (Inspectors > XML)
(b) Go to SQL CE Toolbox and run the queries, reviewing the outcomes
(11) Open the record and the User-defined fields (Design This Form button):
(a) Review the main fields, such as crmid, crmEntryId and crmLinkState
(12) Open MFCMAPI tool and review the user-defined fields as well:
(a) Select EntryId (idMappingTable) and localize Entry ID
(b) Display the details
Outlook Synchronization in Microsoft Dynamics CRM
CRM for Outlook Client Synchronization Blog Series Part 1: What happens when you track an item in Outlook
CRM for Outlook Client Synchronization Blog Series Part 2: What happens when you track an item in Outlook
Diagnostics Tool for Microsoft Dynamics CRM 2011/2013/2015
SQL Server Compact & SQLite Toolbox