I encountered a problem in Journey Builder, where decision splits that check for changes in Salesforce Service Cloud (filter expression is configured to retrieve Contact Data from synchronized data extension) don't lead to the path they should. The data is definitely synced correctly, as retrieving the changed data from the synchronized data extension via AMPscript in a mail sent by the journey leads to the correct result (retrieving the data using the salesforce-id of the object that is present in event/journey data).
This problem occurs every time a contact enters the journey more than once (which is legitimate as there can be more than one trigger object per contact (in my use case these objects represent offers for a customer)) and decision splits should act on changes in service cloud. However this shouldn't be a problem as the changed record can be uniquely identified by a salesforce id and even the journey is triggered by this very service cloud custom object (Salesforce Data Event).
Summary:
- Salesforce Data event triggers the journey (update of custom object X)
- The contact has a 1-to-many relationship to custom object X
- Salesforce Contact-Id is used as subscriber key
- Waiting steps in journey are long enough for synchronization to definitely happen
- Data is synchronized correctly and can be retrieved via AMPscript
- Contact Data decision split doesn't evaluate correctly