We are experiencing a sync issue between Salesforce and Marketo and could really use a hand a) getting confirmation that others experience this and b) getting some direction on how to implement a way around it.
Fundamentally we believe this is a race condition between the Marketo and Salesforce 5 minute core sync.
What we observe
A Lead record is initially created in Salesforce as a Lead. The Sync then picks up this lead and brings it into Marketo, triggering “Person Is Created” and our lifecycle logic picks up and starts to execute various campaigns.
While this is occurring in Marketo, back in Salesforce, the end user then converts the lead into a Contact record.
Now’s the interesting part.
Depending on when in the random 5 minute interval this whole scenario plays out this can cause a race condition. If the Lead was created toward the end of the sync’s interval, then the converted Contact get’s sync’d into Marketo.
The issue that occurs is that if when this "Convert Person" activity is synced in from Salesforce BEFORE Marketo has sync’d it’s updated field values, then the “new” contact’s values from Salesforce are treated as new values and override the values that our lifecycle logic has updated to the Marketo record, between the time the lead was created in Marketo and now.
Looking at the activity log, you can see that Marketo sets a number of fields back to [null] after the "Convert Person" activity is synced in from the CRM.
Here are a few other thoughts:
Can anyone verify this and pretty please help me understand how you implement around this?
If you need any further information please let me know.
Much appreciated in advance.
I will await your further guidance on what options exist to build around it.
So someone in one of my slack groups suggested the following:
"apologies if this is a simple workaround, but could you place a wait step prior to your lifecycle smart campaigns/programs running? This would give a chance for the "race" to subside before Marketo enriches the person's record and sends back to Salesforce.
Alternatively, a custom sync rule (in Marketo) and associated workflow (in Salesforce) could make records wait in Salesforce for 5 minutes. If the rep creates a lead record and proceeds to convert it, then a hold in the workflow would be enforced before marking the record as "Sync to Marketo". Otherwise if they're simply left as a lead for 5 minutes, then they go to Marketo as normal (still marked as "Sync to Marketo"... "
I hate wait steps unless they are entirely necessary.
Is the custom sync generally the solution to this limitation?
If so, could you roughly outline the general consistent architecture you see in these? I understand there's a boolean "sync to marketo", but specifically in regards to this issue, is it common to hold ALL records for 5 mins in SF before (so long as they meet your other sync criteria) enabling them to be sync'd? Just seems slightly crude delaying ALL sync's because of this issue. Is there a way to limit how many you "hold up" and wait?
We have the development of a custom sync in our backlog for other database minimisation purposes.
Appreciate any feedback in advance.
Hi @SanfordWhiteman ,
I'm working with Marketo support on this but as you can imagine, this might be hard for them.
We're really a bit in the dark and hoping you could help direct us towards the light.
Can you share anything in regards to how to architect a solution to work around this? I am assuming it has something to do with controlling the order of operations with the sync, utilising a custom sync and some new flags that are set at various completion points of processing.
Any guidance would be greatly appreciated.