The Update Contact activity has a limit of 5 fields that can be selected in the interface and updated in a data extension. To overcome this I tried to use two activities that insert/update a row and update it in the second block to write more data.

Example configuration:

Update contact 1:

  • PrimaryKey = A
  • Value_A = "Update 1"

Update contact 2:

  • PrimaryKey = A
  • Value_B = "Update 2"


This in theory should give me the a data extension row where both Value_A and Value_B are not null, but it does not work this way - only the first Update Contact block is being executed (which leaves the Value_B = null) - changing the order of the activities confirms that.

Is there some way of overcoming this?

I tried adding joins between the two update activities to see if this somehow could affect the case, but that does not help - still only one Update Contact activity is writing to the data extension.

Additional detail:

  • The journey is API triggered (for the sake of testing), but would normally be using SF data as a source.
  • Not all values written to the DE by the Update Contact activity are static. The PrimaryKey is taken dynamically from the Journey Data with syntax like {{Event."APIEvent-a3e1f543-4352-4a5f-9df0-8a28e450ac3a"."ContactKey"}}.
  • In this test journey Value_A and Value_B are static
  • All values mentioned are strings that should be written to corresponding text columns of a data extension

1 Answer 1


A possible hack could be: update a single field with a json object:

PrimaryKey = A Values = { "Value_A": "Update 1", "Value_B": "Update 2", etc etc }

Then, via a SSJS script activity deserialize the object and impact the specific columns.

  • That's a good idea! Dec 15, 2020 at 13:42

You must log in to answer this question.

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