Journey Entries can be tricky. In yesterday’s example, we talked about the common error of entering your users into a groundhog day loop. The issue was that users would qualify for the journey multiple times, but we only wanted them to get each email once.
One solution for this is to utilize a data extension to log if they have received that email yet. To do this we would use the update contact activity inside of journey builder.
Step 1:
Before we can do anything within the journey, we need to build our data extension. (Check out this post for step by step instructions on how to build a data extension)
For this example:
Example-EngagementJourneyTracker –
- SubscriberKey, Text(254)
- 4monthEmailDate, Date
- 8monthEmailDate, Date
I recommend that you turn on the retention policy to only keep the last 2-3 months worth of data.
Step 2:
The data extension needs to be set up in Contact Builder – Data Designer.
I recommend making an attribute group to house all of your journey builder trackers, so it will be easier to find them.
Step 3:
Next we are going to add 2 update contact activities to our journey – one after each email.

For the Update Contact:
- Select the data extension we built earlier. (If you don’t see it, confirm it has been connected via the same ID that your journey uses.)
- Under Attribute: Select the respective fields
- Check the box for “Use current date-time”
Step 4 – Update the decision split logic
- 4 month Email –> Select the tracker DE & 4monthEmailDate is null and LastActivityDate is on or before today – 4 months
- 8 month Email –> Select the tracker DE & 8monthEmailDate is null and LastActivityDate is on or before today – 8 months
- Remainder
One other advantage of this method is if you aren’t sure when in a range they will enter your audience. This will make sure no matter when they enter the journey they will still get the email only once. For example, let’s say that the journey is paused for 2 weeks. When it is restarted everyone will automatically catch-up – as they will enter the journey and the decision split will show that they have not yet gotten the re-engagement email.
The other perk of this is that you have an easy log you can reference as to the health of your journey.
We set the Update Contact fields in this example to date. You can also use text and update the fields with a yes or no, or boolean. You would just need to update the logic to match.
UPDATE: From the Salesforce Documentation-
NOTE: If no rows for the associated Contact Key exist, a new row is added. If there are one or more existing rows for the associated Contact Key, existing rows are updated and no new rows are added.