When journey activates and execute request triggers, we get empty fields data even though data is present in Data extension ( using {{Event."+ eventDefinitionKey +"."+ column +"}} to get the data from DE)

Actual Msg Content in Custom activity app - "Dear %%FirstName%%, We are delighted to enclose herewith a Proforma invoice for %%ExeMobile%% as requested by you . Please contact me for any further assistance. Regards, %%ExeName%%",

I want to dynamically replace this %%FirstName%% (FirstName is column in DE)

"mobileContent":{ "%%MobileNumber%%":"" }, "template_content":{ "%%FirstName%%":"", "%%ExeMobile%%":"", "%%ExeName%%":"" }

Now here above fields are coming empty as you can see.

Ideally it should be like this as below ( We received this when successfully run ) "mobileContent":{ "%%MobileNumber%%":"919xxxxxxx0" }, "template_content":{ "%%FirstName%%":"Test", "%%ExeEmail%%":"testmail@test.com" }

Journey runs successfully sometime and sometimes it gives empty DE fields and not able to debug why I am getting such error even after all the configuration is correct with Custom activity. This generally happens when we create new version of Journey and sometimes when we copy the journey from existing.

Please help me out as this is critical.

Data is also present in Data extension still getting this error

  • Have you copied your Journey, re-versioned it or modified the entry source? Check that the EventDefinitionKey saved in your Data Bindings still matches the that of the trigger using the GET /interactions/v1/interactions route. The EventDefintionKey has a habbit of changing as you alter your Journey and can lead to the previously saved activity's Data Bindings becoming invalid.
    – Macca
    Aug 24, 2020 at 3:11
  • @Macca- This error generally comes when we do new version or copy journey and create new one. So never got to know whether entry source is changed or not. So can you help me how can I debug and resolve this with more in depth solution. I am using this for data binding "{{Event."+ eventDefinitionKey +"."+ column +"}}". So kindly let me know if any more details you require to understand the issue. Aug 24, 2020 at 15:53

1 Answer 1


There's no super simple way of doing this that'll catch your data bindings being invalidated in a Custom Activity due to reversioning, copying or editing the entry source, I'm afraid. You only get to check the EventDefinitionKey matches the saved inArguments in a couple of places - when the UI's loaded and you have access to Postmonger and when the Journey's activated and your Validate route's requested. In the event of copying or editing the journey, neither your UI nor the validate route's requested and your activity's ignorant of the change in the EventDefinitionKey. These are the only two occasions when your Custom Activity gets to check the EventDefintitionKey and compare it to your saved data bindings, however.

My recommendation firstly would be to check your saved data bindings when your Custom Activity's UI's loaded. In your handler for the Postmonger "initActivity" event, check that the EventDefinitionKey for the Interaction matches that of your data bindings in your inArguments, and if they don't, update those data bindings to match the new EventDefintionKey. Secondly, perform some sort of similar validation on your Validate endpoint. Inspect the saved interaction using the GET interactions/v1/interactions REST endpoint. If the data bindings and EventDefinitionKey do not agree, return a 400 error, or similar. There's currently no way to provide a user friendly message back to the user, but at least you'll prevent an invalid configuration being activated.

  • @Macca- Thanks for response. I will try it and let you know if any further help requires. Aug 27, 2020 at 3:50

You must log in to answer this question.

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