3

Hi I am triggering a journey using Marketing Cloud "Fire the Event" API. As this API adds data into the data extension which eventually triggers the configured journeys.

If my primary key is unique, data is added into DE correctly, but if data already exits, it does not update, but REST API request is rejected.

Since I need to keep just once copy of latest data. So how do I handle this issue.

Fire the event - API

{
"message": "The event data contains duplicate value for an existing primary key. Please correct the event data and try again.",
"errorcode": 30000,
"documentation": ""
}

400 Bad Request
The request cannot be fulfilled due to bad syntax.

1 Answer 1

5

You will need to use an Event source DE that does not use a Primary Key.

I understand what you are trying to achieve here; you want to re-inject the Contact into the Journey, but updating the field values when you do so.

This is not how the Events method and Journey data works. The attributes for a record in the Event source DE will accompany the Contact as they move through the Journey. They can't be updated later.

If you want to add data for an existing Contact and inject them into the Journey, you should look at setting up an Event (in Data Designer) and using the ContactEvents method instead. You can then use this data as Contact data in the Journey.

2
  • Thanks Eliot. I checked Event Source DE, SF says that it is going to retire soon. I am not sure how should I go about this problem. The scenario I have is like this, Our s/w has customers, and whenever the customer does any activity like purchase, we plan to do an API call to SFMC with customer profile, and like send customer a thank you mail. For this we planned to maintain a DE on SFMC side which we will update on an event and journey sends customer a mail. Now customer can do multiple purchases, but we do not want to keep multiple records in DE on SFMC side. Any help would be appreciated!
    – Zoso7
    Aug 3, 2018 at 18:12
  • 1
    Hello @Zoso7, I think we are talking about two different things. I am referring to Events in Contact Builder. You can't really achieve what you want, as Journeys need the Contact Data in a DE in order to enter the Journey (but you can delete it after they have entered). I would either set a data retention policy on the DE (for example, for 1 day) or use the API to delete the DE record after they have been injected into the journey. Aug 3, 2018 at 23:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.