MS Dynamics multiple leads per contact

Not applicable


This article describes how to configure the sync between Marketo and Dynamics CRM when a lead is used in Dynamics CRM as a contact’s interest in a product and multiple leads per contact are created.

Sample scenario

Imagine that you are a marketing manager at a company that sells multiple products, for example, you are marketing Macbooks and IPhones for Apple.

Bob goes into the Apple store and buys a Macbook. This creates a contact record in CRM that syncs to Marketo.

After that, Bob, signs up for an iTunes account and browses to the Apple store website and looks at iPhones.

The Marketing team’s requirement is to create a new lead in Dynamics CRM for Bob’s interest in the iPhone, so the sales team can call Bob to invite him to the Apple store for a free training, hoping that the salesperson at the store will convince him to buy an iPhone.

After Bob purchased his Macbook and browsed to the Apple store website and looked at the iPhones, there should be a contact record for Bob in CRM and a lead record expressing Bob’s interest in the iPhone, associated with Bob’s contact in CRM that was created at the moment of the Macbook purchase.

Basic Marketo concepts

To be able to explain the full integration process we first need to answer few basic questions to make sure you have a full understanding of the sync process and how leads work in Marketo.

  • What happens when lead that came from Marketo into Dynamics CRM is being qualified into a contact in Dynamics CRM?
    • Marketo’s CRM plugin recognizes that the lead has been converted into the contact, syncs the conversion event to Marketo, and converts the lead in Marketo to a contact.
  • How are leads in Marketo are converted to contacts?
    • Leads and contacts in Marketo are basically the same record. To identify if the record is a lead or a contact, please check the “Microsoft Type” field. If its value is “lead”, then it is a lead, if its value is “contact” then it’s a contact, if it’s empty, it means that the lead has not been synced to Dynamics CRM. For Marketo, it makes no difference if the “Microsoft Type” is a lead or a contact. The lead will continue behaving in the same way in Marketo unless you explicitly define conditions in Smart Campaigns that differentiate between the leads and the contacts.
  • What happens when a client takes an action that triggers marketing activity?
    • For example, signed up for a newsletter.
    • If a lead or a contact with the email address already exists in Marketo, the record about Bob’s activity is added to the lead’s activity log. The activity log doesn’t sync to Dynamics CRM, so unless Bob’s details have changed, nothing syncs to Dynamics CRM.
    • If the lead with the email address doesn’t exist, a new lead is created in Marketo with Bob’s details and is synced to Dynamics CRM as a new lead.
  • What happens if I have two lead records in Marketo with the same email address and a new marketing activity comes in for that email address?
    • Marketo picks one of the existing leads based on proprietary logic and keeps updating that record with the new incoming activities. The other record is not updated. Marketo recommends that you don’t have duplicate leads with the same email address.

What’s the challenge?

When Bob browsed to the Apple store website to look at iPhones, it triggered new Marketing activity in Marketo that added a note to Bob’s lead record Activity Log, specifying his interest in iPhones.
As we described previously, Marketo does not sync the Activity Log to Dynamics CRM, so nothing is synced to CRM and a new lead isn’t created. That means that the sales team won’t have a record of Bob’s interest in iPhones.


There are two possible solutions to this challenge.
The first solution doesn’t require customizations of Dynamics CRM and works for teams that don’t leverage the full advanced sales lifecycle in Dynamics CRM. The second solution leverages the full power of the Dynamics CRM sales lifecycle.

Solution 1

  1. Integrate Marketo with Dynamics CRM and configure Marketo Sales Insight.

  1. When existing contact triggers a marketing activity that should create a new lead, in Marketo, instead of creating the lead, create new interesting moment and if you’d like, notify the sales person accountable for that contact or account by email.
  2. After the interesting moment is created, it becomes available in Dynamics CRM in the contact view. The sales person will than open the contact in Dynamics CRM, check what the interesting moment is about and take appropriate action.
    If required, the salesperson will create an opportunity in Dynamics CRM to track the progress with the contact. The newly created opportunity will be synced to Marketo and associated with the contact so when the opportunity will be won, it’s revenue will be associated with the contact and with marketing activity as the lead source.

Solution 2

  1. Implement partial sync and complete the initial sync.
  2. Add a new field to the Contact entity in Dynamics CRM called mkto_newlead and add it to sync with Marketo.
  3. Decide what are the details that are required to create the new lead besides the details that are already available on the contact record. It might be the product that the contact is interested in, source campaign and other fields.
  4. When a new marketing activity in Marketo is recorded, the contact with that email address already exists and you need to create a new lead for this activity in Dynamics CRM, update the mkto_newlead field in Marketo with a json or xml string with values required for creation of the new lead.
    Updating this field will sync it’s value to Dynamics CRM.
  5. Create a trigger in Dynamics CRM that will be triggered on contact update and will check if the mkto_newlead has been updated. If it has been updated, it will parse the new values and using the details of the contact that has been updated, programmatically create the new lead in CRM and to avoid duplicates in Marketo, mark the new_synctomkto field as no. At the end, we only need this lead in CRM so sales team will be able to qualify or disqualify it.
  6. If you need to populate the built in Dynamics CRM source campaign field while creating the new lead, in Marketo, add the source campaign name to the values that you add to  mkto_newlead field and in CRM programmatically check if that campaign exists in campaigns entity. If it doesn’t, add the campaign to the campaigns entity in CRM and associate the new lead with it.