In Journey Builder, what is the difference between Journey Data and Contact Data?
In short, Journey Builder takes a snapshot of your data extension when records are injected into your journey — this is Journey Data.
Contact Data, on the other hand, is the “live” data in your data extension. Contact Data is best used for data that can be changed mid-flight of a journey.
More on both Journey Data and Contact Data below.
Journey Data preserves the state of the data at the moment your subscriber enters the journey. As mentioned earlier, it is a snapshot of the data at that specific time it is entered into the journey. Any data that is changed while that record is in the journey will not be evaluated with the new update.
For example, suppose you have a subscriber that enters a journey and they wait 3 days until they reach the first decision split:
Let’s pretend we have one subscriber in the journey data extension for simplicity sake:
When using Journey Data, since the
Flag attribute is set to “True” at the time of journey injection, it will evaluate “True” on the first Decision Split regardless if the value changes. The snapshot is taken with the value set as “True, ” so even if this boolean value changes to false while it is waiting in the 3 day Wait Step, this subscriber will still evaluate as “True” in the Decision Split. See steps below:
- The email address email@example.com is injected into the journey. His data has a Flag boolean field set to True.
- The first step in the journey is to wait 3 days. On day 2, the value of the Flag boolean changes from True to False in the data extension
- After the third day, the subscriber moves on to the Decision Split. The Decision Split evaluates the data and even though it shows False in the data extension, Journey Builder took a snapshot of the data as True so the subscriber goes down the True (top) path.
Contact Data, on the other hand, is updated as the journey goes on. In other words, it is the most recent data that is reflected in your data extension. Any data that is changed in the data extension can be used to evaluate in Decision Splits.
Using the same example above, even if the
Flag attribute is set at “True” at the time of journey injection, the decision split will take whatever value it is by the time it reaches the Decision Split. So in the case above, if the value changes from “True” to “False”, the subscriber will evaluate as “False” even if the value was “True” at the time of entering the journey. Let’s review the same steps above but with Contact Data:
- The email address firstname.lastname@example.org is injected into the journey. His data has a Flag boolean field set to True. (Exactly the same as above)
- The first step in the journey is to wait 3 days. On day 2, the value of the Flag boolean changes from True to False in the data extension. (Still exactly the same as above)
- After the third day, the subscriber moves on to the Decision Split. The Decision Split evaluates the data and now that it shows False in the data extension, Journey Builder will evaluate the data as False so the subscriber goes down the False (remainder) path.
When to use Journey Data and when to use Contact Data
If you have a simple journey that has a few emails and wait steps in between then Journey Data is sufficient. Or if you want to preserve the data at the time of entry, such as last purchase or specific subscriber attributes that qualifies them to enter the journey.
For example, if the subscriber qualifies to enter the journey if they have purchased a shirt before, you may send them an email about matching pants. Even if that data later changes, you still want to send them that second email.
If you need to evaluate data that can be changed mid-journey and the data evaluated needs to be the most up-to-date data then use Contact Data. An example use-case could be something like:
- You have a preference page CloudPage that can update a field that’s used in the journey.
- For example, if you want to evaluate real-time preference updates and change the journey path based on that value
- If you’re connecting to Sales or Service Cloud data and have an automation that is updating the data being used in the journey.
- An import file from your data warehouse updates most up-to-date data and it needs to be evaluated in the journey with most recent data
How to Add Contact Data
Contact Data is created as an Attribute Group in Contact Builder.
- In Contact Builder and under Data Designer, click the blue Create Attribute Group button on the top-right hand corner.
2. Next, name the Attribute Group and select the Icon. Click the Create button.
3. Create a new data extension or link the data extension that you’re using as your sendable Journey data extension
4. Link your Contact Key to your SubscriberKey in your data extension. Verify the update.
5. Go back to your journey and in a Decision Split, you’ll be able to see that Attribute Group you just created. You may need to click out of Journey Builder and back in to see the updated list in Contact Data.
Journey Data is automated added depending what you use for the Entry Event. If a data extension is selected, then your data extension will be your Journey Data.
Let me know if you have any questions in the comments below with the difference with Journey Data and Contact Data and I’ll try my best to respond right away.