Marketing Cloud Data Extensions and Partial Delivery

Why did it only go to part of my list?

Have you ever sent an email to a data extension, then looked at the tracking and wondered why Marketing Cloud decided to only send to a portion of the recipients?

The most likely answer is that some of the people on your data extension have a Held, Bounced, or Unsubscribed status.

What if you want an easier way to see that data right on the email tracking results page? One solution: an auto-suppression list (ASL).

Some important context:

A subscriber’s status is tied to their Subscriber Key in the All Subscribers list, not necessarily an email address. You might assume that Marketing Cloud keeps track of an email address that it was not able to send to and that if the email address of the recipient was updated, they would get future messages. That is not necessarily the case.

Once a contact has an inactive status, their status must be manually reset to Active in the All Subscribers list before Marketing Cloud will attempt to send to that contact again.

You can check a recipient’s status by going to Email Studio -> Subscribers -> All Subscribers. Then, search for a contact by Subscriber Key or email address.

When you click the Send button, Marketing Cloud loads your recipient list, filters out those on any specified exclusion list, then filters out those on any ASLs, and finally filters out those who do not have an Active status on your All Subscribers list.

The tracking report page for each email displays a count of people that it filtered out based on an exclusion list or ASL, but it does not display a count of those that were suppressed based on an inactive status in All Subscribers.

Therefore, adding subscribers to an ASL makes it easy to see the number of inactive, suppressed subscribers right within the tracking report page. Then, you can add that number to the number of successful sends and it should equal the total number of people in your initially targeted data extension.

To set this up, first create a data extension to hold the extracted SQL data and name it something like “Inactive Subscribers DE.” Second, create an ASL named something like “Inactive Subscribers ASL.”

Then, it’s a four-part automation to populate that ASL:

  1. Create a SQL query to extract the tracking data from the system tables.
    • This populates the data extension with all inactive members with Held, Bounced, and Unsubscribed status.
    • Set to overwrite so that if someone’s status changes they’ll be removed from the data extension and ASL the next time the automation runs.
    • Here’s a link to info on the ListSubscribers data view in Marketing Cloud.
    • Example SQL:
SELECT EmailAddress, SubscriberKey, Status
FROM _ListSubscribers  /*change to ent._ListSubscribers if running in child BU*/
WHERE status in ('bounced', 'held', 'unsubscribed')
  1. Create a Data Extract activity to create a .csv file of that data extension and put it in the secure Marketing Cloud safehouse.
  2. Create a File Transfer activity to move the .csv file from the safehouse to the ftp site for the business unit.
  3. Create the Import Activity to populate the new auto-suppression list with the members of the .csv file.
  4. Finally, make sure add all these activities to an automation, schedule it to run daily, and activate it.

The next time you send an email to a data extension and it happens to include some inactive subscribers, you’ll be able to see that number right from the tracking view!

Viewing the detailed list of recipients that didn’t receive your email, however, is a trickier endeavor that I’m going to work on automating next. Currently, the manual process is to:

  1. Extract the list of subscribers that the email successfully went to.
  2. Put that list into an Excel document in Column A with the list of intended recipients in the original target data extension in Column B.
  3. Then, highlight the duplicate values and sort out the unique subscribers.

It works, but it’s annoyingly manual and time consuming to get that level of detail. But at least you’ve got a list of subscribers that you can investigate further and potentially fix bad email addresses.

On rare occasions you will look in the All Subscribers list and find that a subscriber actually has an Active status, they were not on an exclusion or suppression list, yet Marketing Cloud still failed to send the email to them. In those cases, I recommend simply re-sending your email to the subscriber(s) by targeting the original data extension but using an exclusion list that contains a list of those who successfully received it the first time. You can also open a ticket with Marketing Cloud Support to investigate further.

Happy troubleshooting!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: