I am trying to create one Data Extension that can be used to log all contacts going into multiple journeys and then use update contact event within journey to update row when a contact exist journey.
In my data extension, my primary key is the combination of: JourneyName + EmailAddress (subscriber key) + AddDate (considering a contact can enter multiple, the combination of my primary keys means, the combined values will be unique).
Based on some testing, it looks like once I start adding rows (records) to Data Extensions then use Update Contact for making update, the update contact step doesn’t respect the primary keys of your Data Extension. Update Contact will update any row that has a Subscriber Key match, even if the primary key is Subscriber Key plus something else.
Any suggestions?
UPDATE:
I was above to implement a solution based on this approach: https://sprignaturemoves.com/journey-logging-using-update-contact/
Overall, it works great. I did some modifications since I am looking to log multiple journeys. The solution that I was able to make it work is:
Each journey will have a dedicated DE to capture the contacts like this:
- Journey_Builder_Status_Journey1
- Journey_Builder_Status_Journey2
Each journey contacts are being added as a new row to the respective journey status DE and the automation sql script pushed those contacts to a single DE:
- Journey_Builder_Log
*Subscriber key and EventDate being the primary key (as combined), the log is able to handle contacts from multiple journey along with contacts who are allowed to re-enter same journey since the EventDate will be different for them each time.
Question: In my case, I am not adding Journey_Builder_Status data extensions like Journey_Builder_Status_Journey1, Journey_Builder_Status_Journey2 to contact builder since adding multiple journey DEs is not feasible. But, without managing Journey_Builder_Status DE in contact builder, everything seems to be working fine. Can anyone please explain why Journey_Builder_Status would be needed in contact builder anyway? Is there any drawback that I am missing out?