My goal is to send an invitation email via journey to all records who qualifies for certain event. Sending DE "ContactToOnlineEvents" has got two primary keys; Subscriber ID linked to Contact Key and Event ID. It is populated with two records which has got the same subscriber key, but first record has event id 33796 second 33814. Automation studio starts the journey and all records from ContactToOnlineEvents events enters the journey. Then decision split is coming up in the journey, where only records with right event id 33814 should obtain the email. In email I am using AMPscript to personalize the data in it.

The problem is that I am unsure how journey builder treats the contacts. After decision split only one record should proceed and obtain the email with event id 33814, so the upcoming email should be populated with data from event 33814. What happens is that with no re-entry option user will receive one email populated with credential from event 33796 and with re-entry anytime two emails will arrive populated with data from both events.

Even though only one records should be able to proceed in the journey to get the email it seems that journey builder does not treat records as records, but as contacts since both records has got the same subscriber key. I was googling and trying to search in the documentation, but I am unable to solve the problem how to send just one email with populated with correct data from event 33814.


1 Answer 1


To make sure the correct entry is evaluated at the decision split you need to use a custom entry event using a transaction key, which in your case would be the the (unique) event id.

A full code example for a Contact Data (API) Entry Event using a Transaction Key including documentation regarding the required configuration can be found on my github account. There is also some official documentation available:

Note: Transaction Key is available with Custom Events only.

Transaction keys combine an ID value that Journey Builder generates with a unique contact attribute value to create a wholly unique identifier. All contact filters in the journey observe this unique identifier, including filters in the entry event and decision split activities. This prevents contacts in the journey from following the unintended path when their ContactID still matches current entry or decision split criteria due to a previous transaction.

The contact attributes available for creating a transaction key are ContactID and ContactKey. Transaction keys are commonly used when a journey's entry event is initiated via API.

(Source: Marketing Cloud documentation: Journey Settings)

EDIT: If this isn't suitable for your use case the problem remains the same and evaluation of multiple records isn't possible without a workaround. The other possible workaround is creating a custom decision split activity that handles the decision via the custom backend. Therefore you can build your underlying queries and evaluation will take your ids into account. An example that could be used as a reference (however you will need to modify it to suit your needs) is also available on my github account: Salesforce Marketing Cloud - Service Cloud Custom Split Activity.

Useful links:

  • Thank you for your answer, but I do not want to use API event as an entry source. In my case I would like a marketeer to schedule the start of the journey with Automation Studio Audience, so I do not think the custom created journey would help me.
    – V.Pastor
    Commented Jul 27, 2017 at 8:57
  • I added another workaround as I'm afraid this isn't possible out of the box currently. Commented Jul 27, 2017 at 9:22
  • @MarkusSlabina did you ever get this figured out? Facing the same problem myself. Commented Dec 11, 2019 at 13:28
  • @garek007 Never did it for DE entry events, however the two solutions I used for this or similar problems are described in my answer and work fine for me (API triggered --> custom event with transaction key; other triggers --> custom split activity). However I didn't try to setup a custom entry event for DE entries yet, but maybe this is possible in a similar way than in my solution, which you can find in the referenced github repository). I hope this helps! Commented Dec 11, 2019 at 13:41
  • Thanks Markus, I had already referenced your github about a month ago to get my own custom activity working (for a separate issue). Thanks for posting that. I don't think it's in scope to use the API or custom event, but I opened a case and if they have a solve I'll posted it here. Commented Dec 11, 2019 at 14:08

Not the answer you're looking for? Browse other questions tagged .