Sales Insight for Non-Native MS Dynamics Integrations sales-insight-for-non-native-ms-dynamics-integrations
If your Adobe Marketo Engage account is connected to MS Dynamics through a customized or non-native integration, use this article to configure Sales Insight.
- The “MSI Non-Native” feature enabled for your Marketo instance before you start setting up MSI. If it isn’t and you already purchased the feature, please contact Marketo Support. If you have not yet purchased this feature, contact the Adobe Account Team (your Account Manager).
- Download MSI Package for Custom Sync.
- An MS Dynamics subscription with MSI Setup (we only support Dynamics Online at this time).
- Marketo REST API successfully set up. The exposed CRUD APIs will be the basis of performing the non-native sync.
- Read this blog post in order to get an understanding of the object and relationships.
Successful non-native sync for MSI requires the following successful-non-native-sync-for-msi-requires-the-following
-
Sync the MS Dynamics Sales User to Marketo.
The MS Dynamics Sales User is an external user that owns the Leads/Contacts in MS Dynamics. A Marketo Sales Person needs to be upserted for the MS Dynamics Sales User. The externalSalesPersonId field is mandated for the upsert of the Sales Person.
table 0-row-3 1-row-3 html-authored no-header Marketo Sales Person Field MS Dynamics User Field Description externalSalesPersonId MS Dynamics User case-insensitive globally unique identifier Identifies the Marketo Sales Person record to an external MS Dynamics User object.
It's mandated that the Sales Person be synced first before syncing the other objects so that the proper relationships will be created.
-
Sync the MS Dynamics Accounts to Marketo.
A Marketo Company will need to be upserted for the MS Dynamics Account. The externalCompanyId and externalSalesPersonId fields are mandated for the upsert of the Company.
table 0-row-3 1-row-3 2-row-3 html-authored no-header Marketo Company Field MS Dynamics Account Field Description externalCompanyId MS Dynamics Account case-insensitive globally unique identifier Identifies a Marketo Company record to an external MS Dynamics Account object. externalSalesPersonId MS Dynamics Sales User case-insensitive globally unique identifier Identifies a Marketo Company record to an external MS Dynamics Sales User object who is the Account owner.
Also used within Marketo to associate the Company to the Sales Person who owns the Company record. It is mandated to have the Sales Person synced first before setting this field.- API documentation for Companies: https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/companies
- API documentation for syncing Companies: https://developer.adobe.com/marketo-apis/api/mapi/#tag/Sales-Persons/operation/syncSalesPersonsUsingPOST
-
Sync the MS Dynamics Leads/Contacts to Marketo.
You will need to upsert a Marketo Lead for the MS Dynamics Lead/Contact. The externalPersonId, externalSalesPersonId, and externalCompanyId fields are mandated for the upsert of the Lead.
table 0-row-3 1-row-3 2-row-3 3-row-3 html-authored no-header Marketo Lead Field MS Dynamics Lead/Contact Field Description externalPersonId MS Dynamics Lead/Contact case-insensitive globally unique identifier Identifies the Marketo Lead record to an external MS Dynamics Lead/Contact object.
This is a new field that is introduced for MSI Non-Native.externalSalesPersonId MS Dynamics Sales User case-insensitive globally unique identifier Identifies the external MS Dynamics Sales User object who owns this Lead/Contact.
Also relates the Lead with the Sales Person in Marketo. It is mandated to have the Sales Person correctly synced first.externalCompanyId MS Dynamics Account case-insensitive globally unique identifier Identifies the external MS Dynamics Account object that the Lead/Contact belongs to.
Also relates the lead record to a Company in Marketo. It is mandated that the MS Dynamics Account be correctly synced first.- API documentation for Leads: https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/lead-database
- API documentation for syncing Leads: https://developer.adobe.com/marketo-apis/api/mapi/#tag/Leads/operation/syncLeadUsingPOST
-
Sync MS Dynamics Opportunities to Marketo.
You will need to upsert a Marketo Opportunity for the MS Dynamics Opportunity. The externalOpportunityId, externalCompanyId, and externalSalesPersonId fields are mandated for the upsert of the Opportunity.
table 0-row-3 1-row-3 2-row-3 3-row-3 html-authored no-header Marketo Opportunity Object Field MS Dynamics Opportunity Object Field Description externalOpportunityId MS Dynamics Lead/Contact case-insensitive globally unique identifier Identifies the Marketo Opportunity record to an external MS Dynamics Opportunity object. externalCompanyId MS Dynamics Account case-insensitive globally unique identifier Identifies the external MS Dynamics Account object which this Opportunity belongs to.
It is mandated that the MS Dynamics Account be correctly synced first.externalSalesPersonId MS Dynamics Sales User case-insensitive globally unique identifier Identifies the external MS Dynamics Sales User object who owns this Opportunity. - API documentation for Opportunity: https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/opportunities
- API documentation for syncing Opportunities: https://developer.adobe.com/marketo-apis/api/mapi/#tag/Opportunities/operation/syncOpportunitiesUsingPOST
-
Sync MS Dynamics Contact Roles to Marketo.
MS Dynamics Contact Roles for a MS Dynamics Opportunity can be then synced via the Marketo Opportunity Role. The Opportunity Role record mandates the externalOpportunityId, role, and leadId fields.
table 0-row-3 1-row-3 2-row-3 3-row-3 html-authored no-header Marketo Opportunity Role Field MS Dynamics Contact Role Field Description externalOpportunityId MS Dynamics Opportunity case-insensitive globally unique identifier Identifies the Marketo Opportunity Role to an external MS Dynamics Opportunity object.
It is mandated that the MS Dynamics Opportunity be correctly synced first.leadId N/A, this would be a Marketo Lead ID This would be the Marketo Lead ID of the synced MS Dynamics Contact.
Once the contact is synced in Marketo, you can use the MS Dynamics Contact case-insensitive globally unique identifier as the externalPersonId and query for the Marketo Lead using the Marketo REST API.role The Role field for the MS Dynamics Contact Describes the role of the contact for this opportunity. - API documentation for Opportunity: https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/opportunities
- API documentation for syncing Opportunities: https://developer.adobe.com/marketo-apis/api/mapi/#tag/Opportunities/operation/syncOpportunitiesUsingPOST
-
Sync Last Interesting Moment/MSI Scoring fields to MS Dynamics.
Once your MS Dynamics objects are correctly synced to Marketo, you can then take advantage of the MSI features. The MSI Last Interesting Moment/Scoring fields will be exposed in the REST API for Leads. These fields are calculated by MSI and are read-only.
The Last Interesting Moment/Scoring fields of a Marketo Lead will need to be regularly synced to MS Dynamics by using the REST API Lead endpoint. Query this endpoint for a Marketo Lead using the externalPersonId as the filterType and passing in the MS Dynamics Lead GUID as the filterValue.
table 0-row-1 GET /rest/v1/leads.json?filterType=externalPersonId&filterValues=MS DynamicsLeadId1,MS DynamicsLeadId2 You can then use the values of these fields to sync to your MS Dynamics Lead/Contact object.
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 html-authored no-header Marketo Lead Field MS Dynamics Lead/Contact Field Description msiLastInterestingMomentType Label: Last Interesting Moment Type
Name: Last_Interesting_Moment_Type__cType of the last interesting moment for the Lead msiLastInterestingMomentDate Label: Last Interesting Moment Date
Name: Last_Interesting_Moment_Date__c
Date of the last interesting moment for the Lead msiLastInterestingMomentDesc Label: Last Interesting Moment Description
Name: Last_Interesting_Moment_Desc__c
Description of the last interesting moment for the Lead msiLastInterestingMomentSource Label: Last Interesting Moment Source
Name: Last_Interesting_Moment_Source__c
Source of the last interesting moment for the Lead priority Label: Engagement
Name: Priority__c
Priority of the Lead relativeUrgency Label: Relative Urgency Value
Name: Urgency_Value__c
Relative Urgency of the Lead relativeScoring Label: Relative Scoring Value
Name: Relative_Score_Value__c
Relative Scoring of the Lead - Documentation for the Lead REST API: https://developer.adobe.com/marketo-apis/api/mapi/#tag/Leads/operation/getLeadByIdUsingGET.
Proper use of the external fields is key to a successful non-native sync. If you fail to see data in some of the views, it is likely that a certain field was not correctly synced. For example, if a lead’s activities and interesting moments don’t show up when looking in the MSI widget under their Account, it is likely that either the lead’s company or the Account was not correctly synced. Performing a GET request for this lead while specifying the external fields will help you verify whether the lead was correctly synced. Moreover, the email for the external sales person in Marketo must match the email for that user in MS Dynamics. Data may not show in the Marketo tab in MS Dynamics if the emails do not match.