I have a Journey Data Extension with the following fields:

id (PK)
contact_key (pk)
entry_time (datetime)
status (text)

The Journey is setup such that a user can enter anytime and as many times as they want however each entry will have a unique id value.

If i have the following:

  1. id=1 and contact_key=john@gmail.com
  2. id=2 and contact_key=john@gmail.com

On a decision split I want to check for some attributes. When id=1 is triggered, the user passes the decision split and his status should be set to ok. An hour later, the user failed the decision split for any reason (it doesn't matter), their status should be fail.

However, the data extension itself should have the update specific to the record in question. E.g.

  1. id=1 and contact_key=john@gmail.com and status ok
  2. id=2 and contact_key=john@gmail.com and status fail

But in reality what happens is that it maps to the value related to the subscriber key and over writes everything.

  1. id=1 and contact_key=john@gmail.com and status fail
  2. id=2 and contact_key=john@gmail.com and status fail

The above is not accurate. Is there any way to make sure i can keep an audit or log data extension anywhere to track various statuses during that journey?

  • Hi, this is a limitation of the Update Contact Event. Problem discussion and workarounds can be found here: salesforce.stackexchange.com/questions/333472/… Apr 23, 2021 at 13:14
  • @JonasLamberty that's unfortunate, thank you. Looks like only option is create my own custom or pay for it.
    – user80446
    Apr 26, 2021 at 16:54

1 Answer 1


I think I found a solution for this, haven't worked with this for a while, but try the following:

You can make Update Contact Event log a custom ID by pulling dynamic fields from the entry Event.

  • Make your custom Id the primary key for your log DE.

  • To find out the entry source id:

go to Dev tools in your browser: rightclick the Entry Source, inspect. search for {{Event.

You get something like this:



  • Then, use that syntax where you would enter the Attribute value (in my example, the field name I want to populate is externalKey)

enter image description here

replace the original fieldname from DevTools with the fieldname you want to populate in your DE manually. I think it was "id" in your example. It should now log one record for each run, given your id is unique each time.

let me know if this worked for you! :)

  • Will try and get back to you. Thanks.
    – user80446
    May 4, 2021 at 14:28

You must log in to answer this question.