Sanford is correct until you have control over your entry points in getting form data into Salesforce, then you will continue to have duplicate issues. However, if you would like to align your web history in Marketo and use Salesforce as your form entry point, you might consider trying a process something like this which I call Marketo connect that links the SF record by via munchkin cookie to its anonymous record in Marketo:
It also supports deduping tools as long as they respect Salesforce custom objects when updating either the lead or contact ids. This has been tested with CRM Fusions DupeBlocker offering.
In considering this type of solution, you really need to be sure that the effort of tying all these pieces together is worth the return. This is not a simple solution but it prevents the duplication problem between Marketo and Salesforce when using non-Marketo forms that send the data to Salesforce.
Contact me directly if this is interesting to you.
Calling the Munchkin API from a webhook is how we do this. I would never use the Marketo REST API for this application, as you create an DoS vulnerability against all your integrations just by having somebody fill out your forms.
This is a high-level conceptual diagram and I purposely did not get into the details of the data exchanged or rates. The various connections in this process are asynchronous and data-driven in nature due to race conditions brought about by the design of both the Marketo and Salesforce platforms and the Marketo CRM sync. A fact, I have put that to good use in a couple of implementations.
Further, this process cannot be accomplished solely using Munchkin. It must use REST/SOAP for the merge function. Even then, the REST API is executed from within a controlled Salesforce environment and is rate-limited by several factors and the payload data is sanity-checked for injection and buffer overload before use. There isn't a DoS vulnerability created by this process.
Further, this process cannot be accomplished solely using Munchkin. It must use REST/SOAP for the merge function.
Munchkin's Associate Lead accomplishes the same function with no REST/SOAP utilization. We execute a webhook when the lead has synced to Marketo for the first time and when there's been a change (i.e. addition) to the lead's cookie history.
While it's true that webhooks themselves don't have unlimited capacity, the practical daily count is far higher than the REST max, and we can rest assured that our API integrations won't ever be affected by end-user-driven activity.
There isn't a DoS vulnerability created by this process.
Are you making sure that this application can never step on the API calls used by all your other integrations?
To be clear, it's not about buffer overload or other security concerns -- just a matter of how many of your Marketo API calls I can use by posting to your endpoints repeatedly, and whether I can do this in such a way as to quench the limits either of this app or of all your connected apps.
I understand there may be a cap placed by one or more of the other tiers of the architecture, in which case the Marketo API is protected in turn.
Wow that's a great diagram.
This is super helpful. Will show this to my manager and would contact you directly after i get a feedback.
thank you so uch Eric
Hi Jas, while it would be ideal to prevent duplicates from being created, in reality this is not always possible. It sounds like it will be hard to prevent duplicates in your situation. Marketo has developed an ongoing deduplication solution that will merge duplicates almost immediately after they are being created. This is the successor to the Marketo EasyMerge service, which can only do one-time cleanup, not ongoing. Your Customer Success Manager can tell you more about the new deduplication solution.
To associate your SalesForce lead or contact with the Marketo person, you'll need to be able to pass their Munchkin ID to the portal and get them to store it into a SalesForce field. Do you have any control over the portal?
We also have leads / contacts being created in SalesForce from another source. Luckily I was able to get them to store the Marketo Id into a SalesForce field. Digital Pi helped me out with code to associate the SalesForce lead/contact with the Marketo person to stop our duplicate problem. It also let me preserve the record of how these people were getting to our site (ads, social, etc.) for our reporting.