1

I have a custom activity in journey builder which writes (through REST calls) all records entering it to a web application where the data is stored. When using the update contact activity in the same journey as the custom activity, the update contact values wont be written to the web application at all.

We know that our custom activity works since the original values that already exist in the entry source gets written to our web application. An example; if the entry source has the columns UserId, Address, City and we already have values in UserId and Address-columns but want to update City-column (using update contact activity), our custom activity recieves REST calls containing the UserId and Address but not the updated values of City. The update contact values gets written and works problerly if a new version of the journey is created, when the update contact values is insted part of the entry source.

To clarify how the journey looks: Entry source -> Update contact (we insert values into column) - > Custom activity (write to external web application).

Question: Is it event technincally possible to have a custom activity that writes data externally after a update contact in the same journey?

TL;DR The issue is that the update contact values won't get written to our external web application (through a custom activity) even if we recieve the values that already existed in the entry source.

3

I guess you don't pass the contact data to your custom activity but rather the journey data (formerly known as event data), which isn't updated and always represents the state at journey start. To tell if that is the case, I suggest you add the relevant parts of your activity's config.json to your question.

And in fact updating the entry source data extension isn't a good idea according to documentation, so this might also be a problem:

Note: Using the same data extension that is used by the journey's entry source is not recommended.

(Source: Journey Builder documentation - Update a Contact)

Edit: It seems like the data changes need time to take effect and can be used in the custom activity. Therefore a wait activity does the trick.

Related documentation:

  • So i guess my problem is that i fetch the "old" entry source data in the custom activity? My config.json of the cusom activity has "MobilePhoneNumber": "{{Contact.Attribute.UserTable.MobilePhoneNumber}}" as inArgument. Is there another way to write it to fetch the live data? – Axel Ekeberg Jul 20 '17 at 8:40
  • 1
    According to How Data Binding Works this should already be the correct way to retrieve data. Do you have a Wait-Activity between the Update Contact activity and your custom activity? Did you already try to add a Send Email activity before your custom activity and retrieve the MobilePhoneNumber with AMPscript and check the value present in the email? – Markus Slabina Jul 20 '17 at 8:45
  • Thanks, I'll try the wait-activity to see if it helps and then present the result. – Axel Ekeberg Jul 20 '17 at 9:19
  • The wait activity did the trick! Somehow the data binding doesn't catch up with the speed of the update contact so I had to add a wait acitivity of at least 6 hours and then it worked. – Axel Ekeberg Jul 21 '17 at 12:25

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.