I have a data extension that gets added to via the API Entry Event with 3 fields: email, subscriberkey and Status.

'Email' is the only primary key on the data extension.

Adding new records to the data extension is working but when we have an updated record where their 'Status' has changed the record isnt coming through since a record for the email already exist. How do we get it to add and update the records in the data extension when using the API Event Entry?

1 Answer 1


I don't think you can update the journey DE like that. The event source DE needs to be the one without a primary key since its purpose is to log the API calls, not for updating the data.

This is the response message if you try to inject a contact with an existing email address value (since 'Email' is the primary key here).

The event data contains duplicate value for an existing primary key. Please correct the event data and try again.

I would suggest using a new event source DE without any primary key fields and adding a field to capture the date time a contact enters a journey. For example: "Date Enter" field with default value is GETDATE(). Then write a SQL query to get latest records and upsert to a separate DE.

Or an alternative way is that you use the contact information and call the API to upsert it into a separate DE at the same time you make the API call to the Journey API event.

You must log in to answer this question.

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