I'm developping a custom Activity in NodeJS and in my payload execute inArguments to send to my server I have this : (Contacts is my Data Extension's name)


To share my data I've used this : https://developer.salesforce.com/docs/atlas.en-us.mc-apis.meta/mc-apis/how-data-binding-works.htm . However when my server is receiving this, the fields are empty or the POST Execute isn't send by journey builder. I'm sure that I have the good columns name so the API should send me for each contact the value of {{Contact.Attribute.Contacts.contact_id}} and not an empty string.

For further reference, the code I based my activity on can be found on mslabina's github account in the repository Salesforce Marketing Cloud - Service Cloud Custom Split Activity

EDIT: my DEenter image description here


To use this syntax your Contacts data extension's fields need to be part of an attribute group called "Contacts" in Contact Builder. Otherwise this isn't retrievable in this way.

Contact.Attribute.[FullyQualifiedAttributeName] - Use this pattern to retrieve the specified attribute from the Contact Builder. The fully qualified attribute names generally appear in the form of [AttributeSet Name].[AttributeName].

(Source: How Data Binding Works -> Supported Methods of Data Binding -> Contact Builder Context)

To create the attribute group, go to "Contact Builder" -> "Data Designer" and select "Create Attribute Group". Enter the attribute group name "Contacts" and add the desired fields of your data extension as attributes.

After this has been done the data binding expressions will evaluate correctly if the data relationship to the contact key or id is correctly established as well.

Related documentation:

| improve this answer | |
  • You are welcome, glad it helped ;) – Markus Slabina Jun 20 '18 at 10:47

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.