We have a task to implement opt-in/out for different topics for multiple emails of one Contact in Marketing Cloud. Initially I've prepared the solution with two Data Extensions:

  • ContactDetails DE with all general information about Contact (Name, Title etc.);
  • ContactEmails DE - sendable DE with actual subscribers with emails and reference to the ContactDetails DE

Topics are implemented as Publication lists that allow me to control Opt-In/Out for different Topics and different Emails of specific 'Contact' from ContactDetails DE.

It works fine for me but Salesforce team is against this approach and propose to use separate Suppression Data Extensions as opposite to Publication Lists. The comment from them is following: "Salesforce recommend do not use publication lists, but use a master data extension that supports all the email addresses within the same data extension. Then use this data extension to create and maintain a separate suppression data extension for each topic that is kept refreshed by running a filter activity. This is how customers typically implement instead of using publication lists that become too rigid for most business logic."

Can you please explain me more about how we can use Data Extensions to cover multiple opt-in/outs for different Topics and multiple email addresses if you have experience with something similar? And what is the reason do not use publication lists as this is good tool that allows opt-in/out separate topics for the same email addresses as for me.

Thank you, Roman

1 Answer 1


I always recommend using Publication Lists when sending to DEs -- along with flags in your master DE that represent your publications.

Otherwise, you'll need to manually create an entire system to maintain opt-outs.

You can use the flags for filtering and let the standard status handling happen with the Publication List.

They key thing is to make sure you assign the Publication Lists to all of your send definitions.

  • Thanks Adam. We are implementing our custom solution using MC API so we can control assigning appropriate publication lists to all send definitions. If we use flags in master data extensions that means that we are limited by constant number of topics. But we have to implement topics to be dynamic and configurable. It is not possible with flags as for me. Apr 7, 2017 at 11:01
  • You can certainly have your topics as rows in a related DE, but it'll make your segmentation a little more complex. I've done it both ways. I prefer the flexibility of Query Activities, but it's not ideal in every case. Apr 7, 2017 at 11:27
  • Hi Adam. I was able to find opt-in/out solution using DEs. I created 2 different DEs: one with the list of topics and second one is junction between contacts DE and topics DE that contains contactId, topicId and OptIn flag attributes. Then I created appropriate Attribute Group with relationships that allows me to setup criteria in Journey Entry Source that only contacts with record in junction DE that has OptIn=true can enter into the Journey. It works fine. Another possible solution to add Exclusion Script in the Send Email journey activity. Apr 10, 2017 at 7:43

You must log in to answer this question.

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