We currently have our main contact form linked into Marketo so any new form completions are automatically uploaded as an MQL and synched to CRM. This has been working fine for new contacts and the team have been qualifying/disqualifying etc. Yesterday we came across an issue where we have an existing contact and the sync is failing as the person is already in the system.
Is there a way of creating a new lead for an existing contact so this works? At the moment looking at our syncs it seems it doesn't happen if the person was created as a lead/contact in CRM. Is this because it's something that can't be done?
I think the answer to this is in both systems, but would like to confirm- are the existing contacts in Marketo and DCRM both, or just in DCRM? If they are in both systems, why do want to create a duplicate lead record for an existing synced contact record? Why not just re-MQL that contact record and have your sales team work on that? It’s always possible to build life cycle journeys where a record goes through it multiple times (Marketo has just a person object, unlike DCRM, which has lead and contact splits). If you want to create duplicates, I think you should look it at as creating purposeful duplicates in Marketo from form fills, and then assign those records to lead queue (can’t do that natively though, unlike SFDC), which will create a lead on the DCRM side and move from there. I don’t like the purposeful duplicate approach though, as you’d probably be hitting snags and data issues while working with duplicates.
We have this issue as well. We actually turned off the native lead sync and built a custom webhook. we use the standard "sync to CRM" to sync the new records to CRM as a contact, then attach that contact to the lead when it's created by the webhook. It's not too complicated and the Marketo documentation is pretty good. You'll need someone on the D365 side to build the process to accept the webhook data and create the lead.
Fair warning, that will create the lead, but you won't get any data back because the sync is turned off. We haven't figured out how to get information back when a lead is qualified/disqualified. We're looking into it, but we may need a middleware piece between Marketo and D365 to mange this data.
The first thing to consider is, of course, whether you really want to create a net new lead on form fill - even if that record in Marketo is already synced as a lead or a contact already in your CRM system.
If your goal is to alert your sales team that someone filled out a form, there are many ways to do this without creating what would essentially be a duplicate in CRM or in MKTO. You could add an interesting moment, send an internal alert, create a task, etc. etc.
Then you could have a simple choice branch in your flow for if a Microsoft Type is lead/contact (alert/task/moment) vs if the Microsoft Type is empty (sync). You could even have the task/alert/moment creation apply to everyone after syncing new records to CRM as leads to keep it consistent for your sales team!
That said, if you really are in a situation where it makes sense to create an entirely new lead for a record that fills out a MKTO form - regardless of their sync status to CRM, there are a few ways to accomplish this. I'll outline the one I've used below:
First - NEW: sync the new records using your Sync Person to Microsoft flow step.
Second - CONTACTS: If the record's Microsoft Type is contact you can create a new lead for this contact by triggering some form of lead creation request using the contact record's CRM GUID to tie the lead back to the contact. Think a direct webhook request to an endpoint your D365 admin/dev could create. Or a webhook request/contact field change that triggers a Power Automate flow to create the lead (imo a more seamless process).
Thirds - LEADS: If the record's Microsoft Type is lead I really recommend not attempting to create a duplicate lead - it's messy. Just update the lead with whatever you're using to signify to your sales team that they filled out a form. If it's a description field or a campaign type, I would recommend appending the old info to the back (field) or keeping a record of the originating campaign somewhere for attribution's sake.
I'd love to know if you figure something out. We're going to be evaluating middleware in the next few months to accomplish this, and I'd really rather not bring in another piece of technology.
We had the same issue when we went live with Marketo. Before Marketo, our website would create a new lead in MSD every time a contact completed a web form. This was a nuisance as we had so many duplicates, it was messy!
When we moved to Marketo we noticed sales people couldnt keep track of existing contacts that come in as sales enquiries very well (because they were used to working from within the lead list in Dynamics). So what we have implemented now is:
1 - New people are created as leads via Sync in Marketo.
2- Existing contact who fills in a lead form - we send a webhook request to create a lead in Dynamics (we populate the "Existing Contact" and "Existing Account" so it is linked to the existing record in MSD) - then we set the sync to NO and make the contact details read only. Now, the lead will appear in Dynamics but does not create any duplicates in Marketo.
If the lead is qualified into an opportunity, the opportunity is created against the existing contact and account records as they are already linked. We then use internal PowerBI reporting to report on all leads (multiple leads for same person or company).
This works pretty well for us. Hope this info helps someone else.