[SalesForce] Journey Builder and Decision Splits with Contact Data

When having Marketing Cloud Connect in place between SF/SFMC, the Attribute Group connecting all synchronised SF objects is automatically built and set in place.

By using Journey Builder Salesforce Event as the Entry Event, the Data Extension is automatically created and linked in Sales & Service Cloud Attribute Group, by linking ContactKey with the Data Extension Subscriber Key (in this case – PersonContactID) so the mapping appears to be in place.

Journey is configured on allowing re-entry at any time.

There is a 30 minute wait-activity before Decision Split.

When using Decision Splits and configuring attribute-to-attribute comparison custom object record-ID from Entry DE with Contact Data path record ID, it will never evaluate correctly.

Current scenario:

Custom record "Purchase" is created in SF > if it matches criteria > linked PersonAccount is added to the Journey (by PersonContactID)

Since one Account can have several "Purchase" records > decision split is configured to map the ID attribute between Entry Data Extension and Contact Data path to check the Salesforce record > the Contact should then go to corresponding Decision Split path.

Contact Data path: Contact Data > SF attribute group (created by Connector) > Contact_Salesforce > Account_Salesforce > Purchase_Salesforce > PurchaseID

Is there a step I'm missing?
By this question and official documentation it should work this way.

As all is done with Salesforce Data (entry and decision splits) there should be no need to manually create any Attribute Groups.

Best Answer

One-to-many relationships do not work well with the decision split functionality in Journey Builder and quite a bit of custom development effort is necessary in order to get this to work.

Subscriber Key and Contact Key

A couple of work-arounds:

  1. Use synchronized data extensions and query the purchase information. If you need to find a specific purchase or any purchase, you can populate a boolean field from the query to determine that in the data extension. Since this is person accounts, you'll need to join Account and Contacts objects along with Purchase data
  2. Create a custom field in SF that determines if the purchase has been made on a 1:1 relationship between PersonContactId and purchase. Continue to use Salesforce Data in your journey and decision split.
Related Topic