0

Background:

  • I have Journey based on Salesforce Data Event (Contact object)
  • I expect that the entering Contact will have some field populated within 15 minutes which I want to check in decision split
  • Contact object data polling in Data Sources is set to 15 minutes
  • I want to check if the field is not empty as soon as possible

Which scenario is true?

  1. I should make decision split after at least 30 minutes (15 minutes for estimated field change + 15 minutes interval max for Salesforce to flow down data into Marketing Cloud)
  2. I can make decision split after 15 minutes because Marketing Cloud syncs specified Contact before every decision split on journey path.

Any documentation covering this subject? I need to have 100% sure that path will not be affected by polling interval but also react as fast as possible for this field change

  • May I ask you, what source is updating the data in Sales Cloud? Is there any chance you, in that source, could fire an API call to SFMC to update a record in a data extension? – Lukas Lunow Feb 18 '20 at 18:12
  • Hi Lukas, this source is external backend which uses SOAP API to update it. Your idea is good somehow, one to Salesforce and one to MC but we want to simplify the process just to use Marketing Cloud Connect in terms of integration. – Mariusz Juszczyk Feb 19 '20 at 9:59
1

You could potentially use Apex Trigger or Process Builder and Apex to execute an API call to update a row in a data extension which you connect to your contact model in Data Designer. This trigger will be executed in real time, giving you the ability to see this change reflected in SFMC instantly. I am no expert in APEX, but my advice would be to follow the examples in this Trailhead module.

Another alternative is to have the source updating the Contact in Sales Cloud to also perform same API call to update this data extension.

Last option is to have a journey, only for the purpose of updating the data in SFMC. It will again be a journey based on Salesforce Data Event (Contact object), "listening" to the field updates on the field you are interested in. The only activity in this journey is Contact Update activity, updating a data extension linked to the contact model in Data Designer, allowing you this to be used in decision split.

  • Lucas, the last one is the most "nonprogrammatic" :) Good idea. We will use it. Thanks – Mariusz Juszczyk Feb 19 '20 at 10:01
  • 1
    Proszę bardzo, @MariuszJuszczyk :-) – Lukas Lunow Feb 19 '20 at 10:02
  • Dziękuję @Lucas Lunow – Mariusz Juszczyk Feb 19 '20 at 10:05
  • 1
    Used fake journey with update contact only - just up to 30 seconds delay, thanks again. Great stuff for rapid and time sensitive retargeting journeys. – Mariusz Juszczyk Feb 21 '20 at 8:46
1

When you are using a SF data entry event, and you need a decision split activity to occur before the polling schedule of your synchronized object, then you should inject that data into your journey in the entry event and run your decision split from journey data rather than the synchronized data source.

This will give you immediate access to that value and shouldn't cause any issues in most cases. If the value you are looking to decision on won't even be set until after the Contact enters the journey, but before they would reach the entry event, then you need to push your decision split back 20-30 minutes to ensure that value is always available. The first solution should suit 90% of use-cases though.

  • Hi Jason, thanks for reply. My case is that after contact creation (which is an entry event) I am waiting for another Contact update to occur within Salesforce (this is progressive form). So my case is that 10% :) I want to catch abandoned form. I know that 1 option is the safest one, but any idea if Marketing Cloud syncs in background before every decision split? Maybe any ampscript with salesforce object to put on path? I do really need to check it real-time. – Mariusz Juszczyk Feb 18 '20 at 17:02
  • It will only sync the object data at the rate that you have set in your polling schedule, so you'll be unable to access this data in real-time given your current situation. You're only alternative to getting it faster would be to use a custom activity that makes an API call to SF to retrieve that records data. Otherwise I think you're going to have to use a wait-step. – Jason Hanshaw Feb 18 '20 at 17:04
  • Any idea how to put that API call on path? I realize that it could be fake email with ampscript but that's bad. – Mariusz Juszczyk Feb 18 '20 at 17:07
  • Here's the documentation on creating that activity to make an API call: developer.salesforce.com/docs/… . I would note that this is going to require some development and external hosting which may not be worth it if you can resolve this issue with a wait step. It's not ideal as it wouldn't be 100% real-time, but a 20min wait might be a fair trade-off compared to the cost of creating a custom application. – Jason Hanshaw Feb 18 '20 at 17:10
  • Hi Jason. Interesting, will look for it. I didn't know that custom activities could be made. – Mariusz Juszczyk Feb 19 '20 at 10:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.