In our Marketing Cloud's data model, we have defined a unique ID for each user (subscriber), but it is possible that we have the same email address for different IDs.

We currently do not have a publication or subscriber list in place and use Data Extensions to send our emails.

Recipients have reached out to us and complained that they still receive emails even though they have unsubscribed many times. When I search for their email in the All Subscribers list I notice that they are right. There are more than one record with different keys but the same email address.

What is the best way of handling this situation? Should we set up an automation to unsubscribe all contacts with the same email address as soon as they unsubscribe from a mail?

1 Answer 1


We've generally created an automation that selects these subscribers using a Query Activity and then extracts and imports them into All Subscribers as an unsubscribe.

If you don't want to use an extract and an import, you can do it with a single Server-Side JavaScript Activity that logs an unsub event for the subscriber records identified. Unsub events provide you the opportunity to record an official reason for the unsubscribe.

You should always be doing one of these options if there's any chance that your subscriber keys result in not honoring opt-out requests.

I've also seen this process include a Contact Delete instead of an unsub event -- if your scenario is "fixing" a process that generally doesn't or shouldn't happen. If you go down this route, you must ensure that deleted subscribers are not inadvertently re-introduced.

Here's an example query suited for an export/import into All Subscribers.

select distinct
  s1.emailaddress [email address]
, s2.[subscriberkey] [subscriber key]
, 'unsubscribed' status
, s1.DateUnsubscribed [Unsubscribe Date]
from _subscribers s1
inner join _subscribers s2 on (s2.emailaddress = s1.emailaddress and s2.status != 'unsubscribed')
where s1.status = 'unsubscribed'
'[email protected]' [email address]
, '[email protected]' [subscriber key]
, 'unsubscribed' status
, getDate() [Unsubscribe Date]
/* name: Manual_Unsubs */
/* target: Manual_Unsubs */
/* action: overwrite */
  • Let us continue this discussion in chat. Commented Aug 19, 2019 at 14:26
  • Sorry for bothering you again Adam, but what was the Master DE in the above code segment? Commented Aug 21, 2019 at 7:54
  • Does Master DE contain people who have unsubscribed in the past and we would like to append them to the All Subscribers list as "Unsubscribed"? Commented Aug 21, 2019 at 7:56
  • Sorry, that was leftover from my previous revision. The query above doesn't involve any Maser sending audience. Commented Aug 21, 2019 at 11:42
  • 1
    No, if you're going to import, you'll always need at least one record. the union ensures that. Commented Aug 21, 2019 at 13:42

You must log in to answer this question.

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