On September 24th, 2024, I had the pleasure to deliver a session for Journey Builder Deep Dive series created by Salesforce Marketer Group (Marketing Cloud), Phoenix, US.
Here’s the recording of the session where you will find:
- an exploration of the inner working of the Update Contact activity in Journey Builder
- an explanation what data binding is and what values it allows to capture
- trying out two different approaches to creating advanced journey logs (one of them ends in failure)
The Recording
The Slide Deck
Data Binding Expressions
Data Binding Syntax | Description |
{{Contact.Key}} | The Subscriber / Contact key |
{{InteractionDefaults.MobileNumber}} | Default mobile number for this Journey Builder. This is set from Journey settings menu; this can be a phone number attribute from entry source or mobile number attribute from contacts |
{{InteractionDefaults.Email}} | Default email address for this Journey Builder. This is set from Journey settings menu; this can be an email attribute from entry source or email attribute from contacts |
{{Contact.Attribute.“AttributeSet Name”.“Attribute Name”}} | Value for contact attribute; this is found from data designer when we link data extension to contacts |
{{Contact.Default.Twitter}} | Default Twitter handle for contact |
{{Contact.Default.Facebook}} | Default Facebook address for contact |
{{Contact.Default.SMS}} | Default SMS address for contact |
{{Interaction.{ActivityCustomerKey}.{OutArgumentName}}} | Out argument from other journey builder activity |
{{Context.PublicationId}} | Version of the journey |
{{Context.DefinitionId}} | Definition of the journey |
{{Context.DefinitionInstanceId}} | Each time a contact runs through the engine, the engine creates a unique ID |
{{Context.VersionNumber}} | Version of the journey |
{{Event.{my-custom-entry-event-key}.{field-name}}} | Event field value |
{{Event}} | See what’s inside the journey snapshot |
Three strings stand out for me are and really game changers:
- {{Contact.Key}} with {{Context.DefinitionInstanceId}} allows you to build a unique row ID for your journey logging needs
- {{Event}} allows us to peer into what’s contained in the journey data snapshot that’s frozen in time for the entire journey run
Key Takeaways
The Update Contact Activity
- It can’t run Ampscript
- This limits our options for the logged data and prevents us from generating random IDs
- The Subscriber Relationship acts like a hidden Primary Key
- You don’t have to configure it for the field selected in the relationship explicitly – the activity takes care of that automatically
- Using this we can populate up to 6 columns in a DE
- 5 values defined explicitly in the activity + the Subscriber Key
- Other Primary Keys are ignored
- Hard Errors in the Activity eject customers from the journey
- Test every use case before going on live
Data Binding
- We can grab the following types of data:
- Journey Data
{{Event}}
{{Event.{my-custom-entry-event-key}.{field-name}}}
- Contact Data from Attributes
{{Contact.Key}}
{{Contact.Attribute.“AttributeSet Name”.“Attribute Name”}}
- Journey Context Data
{{Context.DefinitionInstanceId}}
- Journey Data
- We can use multiple Data Binding expressions in one field allowing us to push even more data into data extension or Salesforce objects, for example:
{{Contact.Key}}
#{{Context.DefinitionInstanceId}}
{{Context.VersionNumber}}@{{Context.DefinitionId}}
- It also allows us to grab IDs of SF records we are creating/updating when you place the update contact activity after your Salesforce object activity of choice