Sorry, this requires a bit of background.

We are looking to setup an abandoned cart email, which will be fired from collect.js tracking code on our website.

We currently use Salesforce CRM and Marketing Cloud. The subscriber key in MC is the ContactID from Salesforce. All our customers are stored as contacts in CRM. We also use the connector, so a portion of our customers are synced to MC. From there, we send emails to that portion and some don't receive it because they are Unsubscribed on the All Subscribers list - all good!

However, I am anticipating the scenario where a tracking event comes in from the website (for an abandoned cart) and the ContactID is not someone that exists on All Subscribers.

This is a problem because they have not opted in so we aren't allowed to send them an email. If they did exist, then MC would honour their subscription status. But in this scenario, MC default behaviour is to send them the email, add them to All Subscribers, and set them to Active - not good!

So what I would like to do is, for that particular journey, say "only send them an email if they already exist on the All Subscribers list" (MC will then decide to send based on their status).

Is this possible?


3 Answers 3


Remember, that unless someone is actively removed from All Subscribers when opting out, their email address remains there. Also, if you are using MC for transactional emails (using Triggered Sends) your Contacts might end up in All Subscribers too.


I think you can add a decision split as the first activity in your journey and then check whether the attribute "Email Address" is not null under the "Contact Data->System Data->Email Addresses" See the screenshot. enter image description here

If yes, continue the journey else exist the customer from the journey. I haven't tried this but I think it should work as per my understanding.

  • I was under the impression that the Journey Builder contact review and acceptance writes new contacts to the all subscribers in stage 1 of the journey which would render a decision split based on the existence of an email address useless since at the point of accepting into journey they’re written to all subscribers. Commented Jan 4, 2019 at 15:24
  • @Tom Callahan, Even though a new contact is created when the contact enters the journey, it is written to all subscribers only when an email is sent out. Commented Jan 4, 2019 at 16:12
  • Thanks @PraveenKumarBandi. So I understand correctly, how does an email address end up on Contact Data > System Data > Email Addresses? Does this list exactly match the All Subscribers list?
    – Ben
    Commented Jan 7, 2019 at 5:05
  • @ben Contact Data > System Data > Email Addresses should be populated when the first email is sent to a particular contact. If the contact is already in All subscribers and if the email address in all subscribers is matching with the journeys entry source DE email address then no update is made, otherwise, the email address in all subscribers is overwritten with the contact's email address in the journey entry source and Contact Data > System Data > Email Addresses should also refer to the same email address as in the Entry Source DE. Please let me know if this worked for you. Thanks Commented Jan 7, 2019 at 7:36
  • @PraveenKumarBandi I have tested that and it works. However, one issue I found was that if someone used to be on All Subscribers list but was deleted, their email seems to still be on Contact Data > System Data > Email Addresses list, which means they still get sent the email. Does this sound right to you?
    – Ben
    Commented Jan 7, 2019 at 21:54

Figured this out (*mostly). Thanks @PraveenKumarBandi for the inspiration. I ended up doing the following:

  • Create a query and data extension that queries All Subs and copies all records into the DE
  • Setup an automation to run this query every hour
  • Link this DE in an attribute group in Data Designer
  • When setting up the journey, use this DE in a decision split (or you can even reference it in the entry event filter criteria) to check that an email address exists on the DE (which is a clone of the All Subs list)

The *mostly is due to the fact that the automation only runs every hour, the list used for filtering could be up to an hour old at the time of checking against it, which may cause problems depending on your scenario.

Anyway, that's the best I could come up with. The fact that All Subscribers is not available as a data attribute is a bit annoying.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .