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 [email protected]
  2. id=2 and [email protected]

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 [email protected] and status ok
  2. id=2 and [email protected] 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 [email protected] and status fail
  2. id=2 and [email protected] 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/… Commented 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
    Commented 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
    Commented May 4, 2021 at 14:28

You must log in to answer this question.