Marketo Custom Sync Filter for Microsoft Dynamics Native CRM Integration

Marketo Employee
Marketo Employee

Marketo Custom Sync Filter for Microsoft Dynamics CRM

The default behavior for the Marketo-MSD Native Connector is for all open Leads and active Contacts in MSD to sync down to Marketo when the sync is turned on. However, you can alter this behavior by creating a custom sync filter in MSD, which enables you to designate specific records to sync or not sync with Marketo.


Step 1: Confirm the latest version of the Marketo Plugin is installed

Before creating the filter, please ensure that you have the most recent release of the Marketo plugin installed in your MSD instance. See: Marketo Plugin Releases for Microsoft Dynamics


Step 2: Create the Sync Custom Field in MSD

Login to you MSD instance as an Admin with permissions to create and publish custom fields.

Create the following field on at least the Lead & Contact entities:

  • Display Name: SyncToMkto
  • Name: new_synctomkto
  • Field Requirement: Business Required
  • Data Type: Two Options (Yes & No)
  • Field Type: Simple
  • Default Value: No



Note: The schema name for this field must be new_synctomkto for the filter to work. You may use a different display name but the schema name must match this language exactly.


Note: It is a best practice to create this field on at least the Lead and Contact entities. You can also create the field on the Account, Opportunity and any Custom Entities to control individual records for these entities as well. If you don’t, all records associated to a synced Lead or Contact will automatically sync down.


Step 3: Add the SyncToMkto field to the Entities’ Forms

Once the field is created, you must add it to each entity’s form so that the value can be updated by a user or workflow.


To do so, in MSD navigate to Settings > Customizations > Customize the System > Components > Entities. For each entity, identify the form(s) utilized by standard MSD users and add the newly created field.




Step 4: Backfill Existing Records in MSD with Data Values

Creating the “Sync to Marketo” field will not automatically populate it with a value of Yes or No in MSD, so existing Leads and Contacts will remain null when the field is first created. All records with a null value will sync to Marketo, so you’ll need to backfill all existing records with data for the filter to work as designed. As a best practice, we recommend that you first update all records to No, then go through and identify the specific records you would like to sync and change only those to Yes.


Moving forward, all new records created after the Sync field is added will automatically populate with the default value that you designated in the initial field configuration.


Step 5: Create Automated Workflow for Updating the Filter Value

If desired, you can create an automated workflow in MSD to change the value from No to Yes when a record meets specific criteria. With this approach you won’t have to manually update the field for individual records whenever you want them to sync to Marketo. The workflow should be an asynchronous background job that is triggered when a record is created or updated.


Note: It’s a best practice to create the Sync Filter before performing the initial sync between the two systems. You can still create and implement the filter if you’ve already enabled the sync but it will only affect new records created after the field is implemented.



Step 6: Add the Custom Field to the Sync in Marketo

In Marketo, navigate to Admin > Integrations > Microsoft Dynamics




Click the Edit button for Step 2: Select Fields to Sync



Check the box next to SyncToMkto for each of the available entities and click Save


Level 2

This is useful Peter. We're approaching our first-time sync and have come up against a problem when it comes to connecting the information from the Account object - I wonder if this is something you've come across?


Lead, Contact, and Opportunity data seem to be fine, but Account data is not syncing back from D365.  As far as I understand it, every SyncToMkto field is created in D365 and then when the sync is activated, the field is created in Marketo with an API name of new_synctomkto for both the CRM Field Map and Marketo API Name.  These look correct for the Lead, Contact, and Opportunity objects, but for the Account, the field has the wrong Marketo API name of 'new_synctomkto_account'.

This API Name is set by the sync connector when it is created, and it cannot be edited at any stage of the process I think as it is not named correctly, the API cannot make a connection to update the field in Marketo, which means the data is trapped in D365 and doesn't get pulled in. We think it was named correctly in test six months ago, but seems to have changed since. Do you know if any subsequent release or code change has affected the API name for this field for Account information?

Marketo Employee

Hi Becky,

In the Marketo Field Management section, the more accurate indicator for identifying the field in MSD might be the CRM Field Map value. My understanding is that this references the MSD schema name for the field, which should be new_synctomkto. I'm not sure how the new_synctomkto_account field would get created in MSD. Even so, if the schema name doesn't match the required new_synctomkto schema name then I would not expect it to affect the sync for that entity. A couple other things you can check would be the security permissions for the sync user/profile as well as the Marketo log to see if changes made to Accounts are getting added there but I would recommend creating a support ticket with Microsoft and Marketo to have them review and troubleshoot with you.