We are running across some of "Unable to Lock Row".
Here's an example in our system:
The activity on the bottom is where the error occurs.
The two proceeding events, which take place over an hour later, are described as "Run Action Change Status in SFDC Campaign". Are these two run actions an example of Marketo going back and updating the record after it has failed?
If your marketo program is synced with a Salesforce campaign, just change the status in the marketo program and the updated status will sync over to the salesforce campaign. Don't try to change the status in the SFDC campaign.
We don't sync our MKTO programs to SFDC Campaigns, we use the "change status in SFDC campaign" flow step.
Usually when we "change status in SFDC campaign", typically 90-95% of records will go through fine. It's a few of them that will return a "Unable to Lock Row" error, and then we just have to run another batch campaign and it typically solves the issue.
My questions are
1) why do a few records seem to trigger an "unable to lock row" error?
2) is there a report or a way to be notified when this happens? because if not, we are potentially missing out on attribution and program memberships if we have a few records every so often not being synced up correctly
Is there a reason why you don't sync Marketo Programs to Salesforce Campaigns?
The error is generated on the Salesforce side - see https://help.salesforce.com/articleView?type=1&mode=1&id=000338933 and Unable to lock row - Salesforce Developer Community
If you're running a batch campaign to with the flow step update SFDC campaign member status, you're essentially firing single API requests at Salesforce, which could cause that error to happen in Salesforce.
We sync every marketo program to a salesforce campaign and let member statuses sync over during the periodic sync cycles and haven't ever come across the issue
Thanks Jay Jiang for the reply
As for your question, that is something we are trying to figure out right now as a team. My understanding currently is that if you have a lead lifecycle process in place, that syncing programs to SFDC Campaigns could possibly interfere with it since the records are being synced to SFDC immediately. Thoughts?
That's a valid concern then if you're lifecycle only syncs leads to SFDC at a later lifecycle stage.
Yes, having a Marketo program synced with SFDC campaign will automatically sync any program members to SFDC.
Any workarounds that you've seen, or perhaps a best of both worlds? in which you are using MKTO-SFDC program syncs but also able to successfully have a lifecycle that needs to run?
Yeah good question. can you provide some information around what you're trying to prevent by not letting leads go over to Salesforce? Because there is the option to let them sync and assign them to a "caretaker" user until the leads hit MQL or xyz lifecycle stage.
Alternatively, I've previously set up programs, what I'd like to call 'proxy programs', where essentially it's two programs but one is marketo only and one is synced.
My use case was a nurture and we didn't want sales people to add people to the nurture program starting with the wrong status that triggered other lifecycle automation. So the program that synced with Salesforce only had 2 channel steps - Start Nurture, Stopped Nurture, while the marketo only program that "integrated" with the synced program had a lot more channel steps.
You could apply the same set up, but I am mindful it is an extra program.
This 'Unable to Lock Row' SFDC error typically means that particular lead/contact record was getting updated from another source at the same time. We also use flow steps to sync leads to SFDC campaigns due to errors we have encountered with the program level sync. I would recommend adding a wait step after the first 'Change Status in SFDC Campaign' flow step, and having the smart campaign retry after an hour or two.
Is there a report that can be run to catch records who are being hit with the "LOCK ERROR" notification?