An update of the owner on the record (updated at [timestamp]) should force a sync.
If that is not working, another less glamorous option I have seen used in the past is mass updating another field that is synced between the systems to try and force the sync.
As to triggering the automated flow, be sure to have a trigger in your smart campaign that looks for Owner Changes.
I think the idea is to trigger the update from the SFDC side, i.e. not merely qualifying someone for the next scheduled sync but making the sync start as soon as possible.
This is possible using an Apex callout from SFDC to the Marketo REST API (Push Lead endpoint being the best fit) but should only be used very sparingly. A mass update on the SFDC side, for example, will issue a ton of API requests, which you don't want (though in Apex you could filter for updates from a non-admin user or what-have-you to reduce the risk).
What is the business need that cannot wait until the next sync that would occur a few minutes later?
You could also call the save2 endpoint from SFDC, but as with the rest API, you have to pay attention to what wold happen in case of a bulk update.
Thanks guys helpful stuff here.
I was hoping I could accomplish this without having to use Apex but it seems like that may be the only option.
Here is the business need: We have a Call Loop webhook set up in Marketo to text our sales reps as soon as they receive a lead. We just switched over to having Salesforce doing the lead assignment from a queue instead of having Marketo handle lead assignment, which means we can no longer call our webhook immediately upon SFDC sync because the owner has not been communicated back to Marketo. Timing is crucial as we are trying to keep our first touch response time as low as possible.
If you have any other suggestions to solve this issue that would be great, if not, I will proceed with the Apex solution.
If you're going to use an Apex callout anyway, why don't you have the callout hit the webhook instead of Marketo? Easier to build, certainly (no access token cache, etc.).
1 of 1 people found this helpful
Change your strategy - call the SMS from SFDC instead. If it doesn't matter which system the text comes from it'll be easier to have Salesforce do it for you. Best way to think about this is which system is best for each particular task depending on what I'm trying to achieve?
+1 to Sanford's idea, although I think this would be quite easy to achieve from within Salesforce without resorting to Apex. (I'm not a coder, so I tend to gravitate towards functional solutions that don't require code )
Isn't there a Reason Constraint "synched from salesforce.com (...)" for a "Lead Owner changed" trigger that could be used?