Understanding the Issue
When using contact data in a journey, the email address is retrieved from the contact’s record. However, if the contact does not exist in the All Subscribers list, the journey will not be able to send emails to them, even if they are added to the list later.
The root cause of this issue is that the journey is using contact data, which requires the contact to exist in the All Subscribers list before the journey can send emails to them.
Possible Solutions
One possible solution is to split the journey into two separate journeys: one that uses the email attribute from the entry source, and another that uses contact data. However, this may not be feasible for all use cases.
Another solution is to use a cloud page to create a subscriber/contact in the All Subscribers list before triggering the journey. This can be done by sending data through a Post method to the cloud page, which will then create the subscriber/contact.
Implementation
To implement this solution, you will need to create a cloud page that will create a subscriber/contact in the All Subscribers list. You will also need to update your API triggered journey to use the email attribute from the entry source.
cloudpage.html
%%[
var @email = RequestParameter('email')
var @subscriberKey = RequestParameter('subscriberKey')
var @statusCode
SetObjectProperty("All Subscribers", "email", @email)
SetObjectProperty("All Subscribers", "subscriberKey", @subscriberKey)
]%%
Heads up: Make sure to update your API triggered journey to use the email attribute from the entry source, and to use the cloud page to create a subscriber/contact in the All Subscribers list before triggering the journey.
Checklist
- Ensure the contact exists in the All Subscribers list before triggering the journey
- Use the email attribute from the entry source for the API triggered journey
- Create a cloud page to create a subscriber/contact in the All Subscribers list
- Update the API triggered journey to use the cloud page
- Test the journey to ensure it is working as expected
- Monitor the journey for any issues or errors
- Update the journey as needed to ensure it continues to work as expected
Frequently Asked Questions
What is the root cause of this issue?
The root cause of this issue is that the journey is using contact data, which requires the contact to exist in the All Subscribers list before the journey can send emails to them.
How can I update the email address of a contact in the All Subscribers list?
You can update the email address of a contact in the All Subscribers list by using a cloud page to create a subscriber/contact in the list, and then updating the email address using the SetObjectProperty function.
What is the best way to implement this solution?
The best way to implement this solution is to create a cloud page that will create a subscriber/contact in the All Subscribers list, and then update your API triggered journey to use the email attribute from the entry source and the cloud page.
How can I test this solution to ensure it is working as expected?
You can test this solution by triggering the journey and verifying that the email is sent to the correct email address, and that the contact is created in the All Subscribers list with the correct email address.
What are some common issues that may arise when implementing this solution?
Some common issues that may arise when implementing this solution include errors when creating the subscriber/contact in the All Subscribers list, or issues with the email attribute not being updated correctly.
Need help shipping this in production?
Genetrix builds and untangles Salesforce Marketing Cloud and Agentforce setups for teams that want it done right the first time. If anything in this post sounds familiar, talk to us before it ships.