D365 Org DB Settings – Email

On a client recently I helped deploy Microsoft D365 App for Outlook. Unfortunately, the behaviour requested by the client and the default behaviour of the Server Side synchronisation was not aligned.

This led to long discussions with Microsoft about some of the DB Org Settings we could utilise to tweak the way SSS works. As I researched these settings and discussed with my colleagues and during networking events, it became clear they remain unknown to most developers and administrators. If your deployment needed to tweak the settings, then people knew, but it is not common knowledge.

Further, there seemed to be very little documentation on what each setting does, apart from Microsoft’s own information here.

This is a series of posts explaining each of the Org settings, understanding how it affects your environment. Hopefully it will raise awareness of these settings.

Bear in mind that there a lot of settings that I can not find any information on or have no experience on. This is frustrating for me, but assume someone in the community will push me in the right direction and I will update the page when I find out.

How to Change Org DB Settings

Sean McNellis has an excellent tool on GitHub here which allows interaction with the org settings via a solution in your environment.

One the solution is imported, selecting the solutions gives you an interface where you can check the current status of each setting and change them.

To change the default, you need to select the Add hyperlink. This creates an XML file including your property which is uploaded to your system to change the setting.

Selecting the Edit link for the attribute now gives you a popup window, where you can edit the value

Also, Sean has included a copy of the Microsoft description with each setting.

On the right side of the grid is a link to to the KB article that mentions the setting, though normally it is just to KB 2691237 which is the central list of all Org settings.

AddressBookMaterializedViewsEnabled

Default ValueTrue
TypeBoolean
Description Changes the way the CRM Client queries SQL CE
Min Version 5.0.9690.2903
Max Version

The description doesnt tie up with the title, and when you google it, this setting revolves around a previous setting, Disable MAPI cache, that was around in CRM 2011 and helped improve performance. Not a lot more I can say.

AllowPromoteDuplicates

Default ValueFalse
TypeBoolean
Description False= Does not allow for the promotion of duplicate records.   True=  Allows for the promotion of duplicate records.  This setting is NOT SUPPORTED IN CRM2013 as of build 809
Min Version 5.0.9690.3731
6.0.1.61
Max Version

Duplicates in D365 are not unheard of, but when Outlook sync comes in, there are more chances to get duplicates. When a user syncs an Outlook Contact,

AllowSaveAsDraftAppointment

Default ValueFalse
TypeBoolean
Description Setting value to true will provide the capability to create appointments in Dynamics 365 as “draft” without synchronizing with Exchange. Appointment form will have a “Save as Draft” command and a “Send” command, so that you can save, add details and update an appointment activity without synchronizing to Exchange. Default value is set to false to preserve existing behavior.
Min Version 9.0.2.2275
Max Version

This flag opens up the possibility that you don’t always get a meeting correct the first time and allows you to save a draft.

Ulrik Carlsson aka @CRMChartGuy from eLogic solutions has a great article about this attribute.

The default behaviour is that users are not presented with a Save as Draft option for appointments, when a appointment is saved, if you are using SSS it will synchronise to Outlook and send out invites to the attendees as normal.

If you change AllowSaveAsDraftAppointment to true, the users get a different set of buttons.

Both Send and Send & Close buttons behave like the original Save and Save & Close. They will initiate a server side sync one the record is saved.

The new button Save as Draft will save the appointment but not send it to Outlook etc. It adds a [Draft] prefix to the appointment header and also a new field on the appointment, isdraft, is populated with true.

Weirdly, this field can not be added to a form. It just doesn’t appear in the field list. You can add it as view filter criteria, but you can’t display it as a column in a view.

AutoCreateContactOnPromote

Default ValueTrue
TypeBoolean
Description Disables the ability of the organization to create contact records automatically when an email message is tracked in CRM. This option can also be disabled from the user settings area for each user.
False – Disables the automatic creation of contacts.
True – Enables the automatic creation of contacts.
Min Version 5.0.9688.583
Max Version

By default, when a user sets regarding within the Outlook app, if any email address is in the To / CC / BCC etc that D365 does not know about, it creates it automatically.

Most of the time this is fine, but consider when your business process requires a lot more data fields to be populated in the contact, this default process will create a contact that hasn’t got what your business needs. Forcing the contact creation away from this automation may be required.

Users have an option under their personal settings which will mimic this settings, but this does it for everyone.

Setting the AutoCreateContactOnPromote to false removes the option from users and no contacts are created automatically when emails etc are synced.

AutoTrackSentFolderItems

Default ValueFalse
TypeBoolean
Description Setting value to TRUE will result in Server Side Sync auto tracking of emails from Sent Items. This setting only applies if the mailbox is configured to track “All Email Messages”
Default value is set to False to preserve the existing behavior.
To enable functionality on the organization “AutoTrackSentFolderItems” should be set to True.
Min Version 8.2.2.0840
Max Version

This setting works in hand with the selected option under “Select the email messages to track in D365” option under Personal Options.

By default, sent emails are ignored, only picking up emails that arrive to send to D365.

By marking the AutoTrackSentFolderItems to true, sent items will also be tracked, from the next sync, not retrospectively

BackgroundSendBatchSize

Default Value10
TypeInteger
Description Sets the number of email messages to download in one batch for the BackgroundSend API.
Min Version 5.0.9690.583
Max Version

I can’t find any information on this. Will update when I find out.

ClientDisableTrackingForReplyForwardEmails

Default ValueFalse
TypeBoolean
Description Enables a user not to automatically track replies and forwarded email messages. Set this to “True” to disable tracking replies and forwarded email messages. 
 NOTE: This setting only applies to Dynamics 365 for Outlook (not Dynamics 365 App for Outlook).
Min Version 5.0.9690.2903
Max Version

When a user receives a reply to an email that has already been tracked, the reply will also be tracked by default. This is great for keeping the chains of emails all within D365. Unfortunately, this may lead to conversations being tracked that shouldn’t and give visibility to sensitive conversations – a manager receiving an email that was a complaint about a particular email that their report sent for example.

Whilst this is mostly a training exercise, it can be quite embarrassing and this setting stops that. It does mean that you could lose out on a part of a conversation and rely on the user to track a response separately.

This settings, as noted, only works with D365 for Outlook not the App for Outlook.

DisableClientUpdateNotification

Default ValueFalse
TypeBoolean
Description Setting DisableClientUpdateNotification to true will disable the outlook client from checking for newer versions
Min Version 7.0.0000.3027
Max Version

Only for the D365 for Outlook, will prevent the application checking for a new version. This will help if you are in a locked down environment and need the stability.

With the D365 App for Outlook, it is a constant deployment rolled out with other fixes by Microsoft.

DisableImplicitSharingOfCommunicationActivities

Default ValueFalse
TypeBoolean
Description Changing this to “True” will disable implicit sharing of records to recipients that are added to existing activities.
Min Version 5.0.9690.2903
Max Version

When an email, meeting, phone call etc. is created and an internal user is included in the recipients list, it shares the record with them. This allows the internal user to have visibility of the record within D365.

If your security model has an issue with this, then this implicit sharing can be removed.

Your model may restrict the visibility of activities depending on what record the activity is associated with in a team scenario. If the original recipient is no longer in the team, they should not have access to that information any longer. With the OOTB logic, this activity will still be visible.

This email will still be in the recipients Outlook, nothing changes to the visibility in exchange, it is just the visibility in D365.

DisableLookupMruOnOutlookOffline

Default ValueFalse
TypeBoolean
Description LookupMRUItems in UserEntityUISettings can cause a large data volume when going online, setting this to true will stop MRU’s from syncing back ONLINE
Min Version 6.1.0002.0106
Max Version

This one is not obvious to me and there is no information online. I’ll update when I find anything out

DisableSmartMatching

Default ValueFalse
TypeBoolean
DescriptionDisables the smart matching functionality and relies on the tracking token on the incoming e-mails for email tracking.
False – Enables smart matching.
True – Disables smart matching.
Min Version 5.0.9688.583
Max Version

Smart Matching is how Microsoft works out that the email you just sent in belongs to a conversation that you have already synced, hence it will sync that email when it comes in.

In System Settings, you have several options when it comes to matching. Correlation is the default, where it is using a conversation id on each email to match them. You can supplement this with a tracking token and/or smart matching.

Token is generally used for support scenarios, to ensure any replies to an email are tracked against the same case.

Smart matching does what it suggests, using keywords in the subject and an algorithm to determine if the email is linked to a previous conversation.

Using the DisableSmartMatching flag does the same as un-ticking the box on the system settings, where conversation id and tracking tokens are relied on.

DistinctPhysicalAndLogicalDeletesForExchangeSync

Default ValueFalse
TypeBoolean
Description Server-Side synchronization needs a mechanism to distinguish between Logical and Physical deletes of entities in CRM
False : No distinction between physical and logical deletes for exchange sync delete scenario
True : Physical and logical deletes will be distinguished for exchange sync delete scenario
Min Version 8.2.2.0840
Max Version

This is another where security takes over and users expectations can differ from the way Microsoft thinks it should work.

If a user has been invited to a meeting, and it is recorded in D365, a copy of that exists within D365 and Exchange. If, for whatever reason, the user loses access (reas access) to that meeting in D365, the default behaviour would be to delete the copy in Exchange. Makes sense, to keep those in sync.

With the DistinctPhysicalAndLogicalDeletesForExchangeSync set to true, lose of access to any activity does not mean that the activity is deleted in Exchange. Use this with DisableImplicitSharingOfCommunicationActivities to fully get control of activity access.

DoNotIgnoreInternalEmailToQueues

Default ValueVersion 5.0.9690.1533 to 8.2.2.1300: False
Version 8.2.2.1309 and higher: True
TypeBoolean
Description If you disable the “Track email sent between CRM users as two activities” setting, email messages from a CRM user to a queue are not delivered. Additionally, if a workflow rule sends an email message to a queue, email messages that are sent by the workflow rule are not delivered.
False – Internal email messages to queues will not be delivered.
True – Internal email messages to queues will be delivered.
Min Version 5.0.9690.1533
Max Version

This is used in combination with the Track emails sent between Dynamics 365 users as two activities available in the system settings

If you enable the Track as seperate option, normally any email from internal user to a queue mailbox will be ignored. This seems a weird consequence, but they have provided you with an override, so that these internal mails are not ignored.

EnableAppointmentBroadcastingForOutlookSync

Default Value0
TypeNumber
Description Setting for Appointment broadcasting for Outlook Synchronization
Min Version 7.0.1.121
Max Version

I can’t find any information on this. Will update when I find out.

EnableCrmStatecodeOnOutlookCategory

Default ValueTrue
TypeBoolean
DescriptionEnables Statecode data on contact sync
Min Version 6.1.0.581
Max Version

I can’t find any information on this. Will update when I find out.

EnableSssItemLevelMonitoring

Default ValueFalse
TypeBoolean
Description Setting value to True will enable a new dashboard accessible by users and administrators called Server-Side Synchronization Failures. This dashboard allows the owner of a mailbox to have information about all non-synched incoming/outgoing emails and also appointment, contact, and task (ACT) items. Information is provided for the reason items are not synchronized. Default value is set to False to preserve the existing behavior. You can use the ExchangeSyncIdMappingPersistenceTimeInDays setting to control how long the data for failed emails is retained.
Min Version 8.2.2.1661
Max Version

There is a dashboard available to admin already called Server-Side Sync failures, without this setting. Not sure what this does, as the dashboard seems to be available regardless.

ExchangeSyncIdMappingPersistenceTimeInDays

Default Value3
TypeInt
Description The number of days for which the ExchangeSyncIdMappings are to be persisted for failed emails. This setting is used in relation to the EnableSssItemLevelMonitoring setting. It is not recommended to increase this value higher than 7 days as it can lead to the table growing very large.
Min Version 8.2.2.2059
Max Version

This setting defines how many days of sync failures are kept, useful when you are troubleshooting, but table will get huge quickly, so only increase if you need to.

ExpireSubscriptionsInDays

Default Value90
TypeNumber
Description Max number of days before deleting inactive Outlook client subscriptions. We recommend you keep this to the default unless you absolutely need to change it, be mindful of keeping the tracking info too long, or deleting it too soon.
Min Version 6.0.0.0
Max Version

On creating my second post in this series I came across several configurations that were not documented in the KB article and hence were missed when I wrote this.

When you track an contact in Outlook, you are subscribing to changes made to those contacts in D365 so that they are mimicked in your Outlook. This is great, but each subscription is stored in a database record, hence impacting storage costs. There is a deletion service that works through the subscriptions and deletes these expired lines. after the value is reached, with an outlook Client refreshing it’s subcriptions as part of it’s sync routine.the

HideEmailAutoTrackOptions

Default ValueFalse
TypeBoolean
DescriptionDefault value is false, if it’s set to True: do not show the following track options in Personal Options (Email): ‘All email messages’, ‘Email messages from D365 Leads, Contacts and Accounts’, ‘Email messages from D365 records that are email enabled’
Min Version 9.1.0.1639
Max Version

This setting goes one further to the one below by stripping out “All email messages”, “Email messages from D365 Leads, Contact and Accounts” and “Email messages from D365 records taht are email enabled”, just leaving you with the two below.

HideTrackAllOption

Default ValueFalse
TypeBoolean
Description Removes “All email messages” option from users’ Personal Options under Email tab Select the email messages to track in Microsoft Dynamics 365 area.
False – “All email messages” option is shown in the dropdown.
True – “All email messages” option is not shown in the dropdown. If a user already has “All email messages” selected, their synchronization option is not updated in DB. Administrators will need to update this value via SDK.
Min Version 9.0.2.264
Max Version

Under personalisation settings for each user, they can decide to track all emails they receive from any source. Great for a shared mailbox or customer mailbox, but not for a normal user who receives spam and invites to cake sales etc.

The default here is Email messages in response to D365 mail, but to stop users filling your D365 instance, setting the HideTrackAllOption to true will remove that top option.

Any users that had this setting prior to it’s removal need to be updated manually or via the SDK.

MailboxStatisticsPersistenceTimeInDays

Default Value3
TypeNumber
Description If value is 0, dont store ANY MailboxStatistics Data, if the value is greater than zero then store that number of days statistics data. Max value arbitrarily chosen at 1 year, this generates at lot of data so 1 year should be plenty of time
Min Version 8.0.0.1088
Max Version

The Mailbox statistics records how frequently a mailbox is accessed and synced. This way, the more active mailboxes are synced more regularly. A mailbox that is infrequently used will be checked less regularly.

On a high user system, with SSS on, it can get populated quickly, so 3 days will normally be appropriate.

OutlookClientEmailTaggerEnabled

Default ValueFalse
TypeBoolean
Description here are 3 values for this Boolean setting – true, false, and NULL (which is the value when NOT set). True: Will override any and all client registry setting to True. False: Will override any and all client registry setting to False. NULL: If the setting is NULL the outlook clients will use whatever is in the registry of the client. TO SET THIS VALUE TO NULL YOU WILL NEED TO CLICK EDIT, THEN REMOVE THE VALUE TO HAVE IT DEFAULT TO NULL.
Min Version 7.0.1.121
Max Version

I can’t find any information on this. Will update when I find out.

OutlookSyncDataSubscriptionClientsBatchSize

Default Value100
TypeNumber
Description This setting is used to determine how many record changes (deletes, inserts, and updates) to send back to a syncing client for each request.
Min Version 7.1.0.1059
Max Version

I can’t find any information on this. Will update when I find out.

OverrideTrackInCrmBehaviour

Default Value0
TypeInt
Description When this option is Enabled, the ‘Track in CRM’ button functions as the Set Regarding button in Dynamics 365 for Outlook. In Dynamics 365 App for Outlook, ‘Track without regarding’ command is not displayed, with Set Regarding as the only way to synchronize Outlook items to Dynamics 365.
0 – Normal behavior of the “Track in CRM” button not having to set a Regarding record in Dynamics 365 for Outlook.
‘Track without regarding’ command is displayed in Dynamics 365 App for Outlook.
1 – The ‘Track in CRM’ button functions as the ‘Set Regarding’ button, and makes you select a regarding record in Dynamics 365 for Outlook.
In Dynamics 365 App for Outlook, ‘Track without regarding’ command is not displayed, with Set Regarding as the only way to synchronize Outlook items to Dynamics 365.
NOTE: This setting applies to both Dynamics 365 for Outlook and Dynamics 365 App for Outlook.
Min Version 9.1.0.6200
Max Version

Normally, a user can track an activity to D365 without associating with a record, the Set regarding. This could lead activities in your tenant not associated with a record, orphaned. Depending on your business requirements, disabling this feature could be required.

Normally, under the … under Not Tracked, the user has an option to Track without Regarding

Setting OverrideTrackInCrmBehaviour to 1 will override this behaviour, removing the ellipses button altogether. The user has to establish a link to an existing record to sync the email or activity.

OverrideV5SenderConflictResolution

Default ValueFalse
TypeBoolean
Description When multiple records with the same email address exist in the Dynamics CRM Organization and email is automatically tracked, the email address is resolved to the record for the owner record that was created first. This option lets you override that functionality.
False – E-mails are tracked to the first record created.
True – E-mails are not tracked automatically if there are multiple records with the same email address.
Min Version 5.0.9690.2243
Max Version

Michael Sulz has a good write up on this, here.

Normally, if there are 2 or more contacts with the same email address (data quality is always a problem, however much you take care of it, though data8 do a real good job of removing duplicates and improving your data) the contact chosen is the first contact owned by the syncing user, sorted by create date or the first created if that doesn’t match.

Setting this option to true will force the user to make a decision and not sync the email automatically.

RestrictIRMEmailItems

Default ValueFalse
TypeBoolean
Description Setting value to TRUE will result in Server Side Sync NOT synchronizing ALL emails that are marked as IRM emails.
Default value is set to False to preserve the existing behavior.
To enable this restriction on the organization ” RestrictIRMEmailItems ” should be set to True.
Min Version 8.2.2.0840
Max Version

Bhavesh Shastri has a great write up of this configuration here

Restricted messages, those that the sender has marked as any of the restricted types in Azure information Protection, may not be suitable to be included in your D365 system.

If you set his flag to true, the user will not be able to sync those that are protected and will be given an error message if they try to.

SecuritySettingForEmail

Default ValueFalse
TypeNumber
Description 1: Display a Warning Message And give an option to open – 2: Display a Warning Message and do not give an option to open -3: Do not display a Warning Message and do not give any option to open. This setting is NOT SUPPORTED IN CRM2013 as of build 809
Min Version 5.0.9690.3731
6.1.0.581
Max Version

The majority of emails that a user receives and hence sync to D365 contain HTML to some degree, whether it is simple formatting or full on marketing emails.

In all scenarios, the interface presents a stripped down version of the email, but formatting etc will be lost.

There is a risk when these are displayed in all their glory in D365, that parts of the email could be nefarious, including scripts etc that could include phishing or other attacks. Microsoft by default warns the user that this is the case, but allows the user to click through to the content, putting the decision in the users’ hands.

If you change the setting to 2, the link to the full content is removed

Changing the setting to 3 removes the message and always shows the full version of the email

SendEmailSynchronously

Default Value0
TypeInt
Description If you have a plugin registered on the email send flow, you should change this setting to “1.” 
0 – Email is sent asynchronously.
1 – Email is sent synchronously.
Min Version 5.0.9690.2720
Max Version

Depending on your logic, you may interact by workflow when an email is sent via Outlook. This setting moves the send email to a synchronous operation rather than asynchronous, allowing a more immediate interaction with the email. This may have a performance impact on the user in Outlook.

SortEmailByReceivedOn

Default ValueFalse
TypeBoolean
Description When the Activities tab of the social pane is show, the data ordered by the ‘modifiedon’ date in descending order, toggling this setting to True will enable the social pane to sort emails by RecievedOn Desc instead of modifiedon
Min Version 8.0.1.79
Max Version

I am not sure that this is a problem any more, in Social pane in D365 we have a lot of options for searching, but back in the legacy UI this allowed you to change the email sorting from the date the email was edited or added to D365 to the date the email was received. This could be several days difference, so it could give a different perspective to the conversation.

TraceExchangeSyncData

Default Value true
TypeBoolean
Description Enables exchange sync tracing
Min Version 6.0.0.809
Max Version

Logging of the sync data is essential for any troubleshooting, but it adds to the size of your database. With the separation of log and data in storage costs, I am not sure this should ever be turned off if you are using SSS.

TrackAppointmentFromNonOrganizer

Default ValueTrue
TypeBoolean
Description Enabled users to track appointments organized by another Dynamics 365 user via Dynamics 365 App for Outlook.
False  –  Dynamics 365 App for Outlook and Server-Side Synchronization users cannot track Outlook appointments whose organizer is a Dynamics 365 user.
True  –  Dynamics 365 App for Outlook and Server-Side Synchronization users can track Outlook appointments whose organizer is a Dynamics 365 user.
Min Version 9.1.0.0294
Max Version

You can always track a meeting if it was sent from an external user and by default you can track any appointment where the organiser is a D365 user. This setting prevents the user tracking an appointment if it is not them organising it.

TrackCategorizedItems

Default ValueTrue
TypeBoolean
Description Setting value to False will remove the category tracking flag and functionality.
Default value is set to True to allow category tracking and tracking status visibility for users whom do not use Dynamics 365 for Outlook or Dynamics 365 App for Outlook.
Min Version 8.2.2.0840
Max Version

Using Category based tracking is a great way to allow users to track multiple emails at once. In the App for Outlook, this is the only way.

With the OOTB behaviour, the user gets a new category added and is able to select multiple emails to sync. It also appears as a great indicator in Outlook that the activity is synced.

Setting the flag to false removes this category and ability.

Be warned on this, if you leave any item with the category on it after you have disabled this functionality, re-enabling the functionality will mean that these items will be synced. Also, this category doesn’t respect the fact you upgrade. An email with the category that was synced to an on premise version will create a duplicate if that user is moved to the online version and the originating email was migrated as part of the data migration from on-prem to online.

UseCrmOrganizerForEmptyExchangeOrganizer

Default ValueFalse
TypeBoolean
Description Use the CRM Organizer of an Appointment if the Exchange Organizer doesn’t exist.
Min Version 8.1.1.1020
Max Version

I think this is more to do with rare cases when the sync doesn’t work correctly, but another one that I can not find any information for.

UseFilteringMethodOfSyncingMailboxOnlyForCorrelation

Default ValueFalse
TypeBoolean
Description This is for controlling which users’ filtering settings will be used  for correlation. 
False  – filtering method of all recipients of the email will be checked to decide if any user/queue accepts email or not.
True  – filtering setting of user who synced email to CRM will be used. Filtering  setting of other recipients of the emails will be ignored.
Min Version 8.2
Max Version

Each user has a seperate filter list to decide which emails are synced to D365. These can be various settings on what that individual user requires.

The default for this setting, the standard OOTB behaviour, is false, where any user can sync this email if it matches their settings. True means that the user who created the email or synced it will be able to have the email included in the selection for the filter. It is in effect an additional filter for the user to only include emails I have created.

UsePlainTextForEmailTemplateBody

Default ValueFalse
TypeBoolean
Description Changes the Email Template to use plain text where otherwise text with the following symbols would not appear <text>.
Min Version 5.0.9690.2720
Max Version

This is one of the older settings, presumably when people had email clients that could not handle html formatted text.

Author:

CRM Developer & Consultant for nearly 20 years, now working on Dynamics 365 projects for the last 5 years. Love of tech & solutionising

Leave a comment