Feeding the Durable Unsubscribe List without increasing the database

Level 10

One common question is how can we add a list of emails to the durable unsubscribed list, coming for instance from other systems, without increasing the size of the Marketo database. This is a key requirement as soon as you use other systems than Marketo to send emails and want to keep complying with legal requirements.

This getting even more complex if one has to manage the fact that some of these leads already exist in the Marketo database and should be kept there, together with their historical information.

The idea is to create a simple program that will handle this efficiently and automatically. Here are the components of the program :


  1. Let start with the "DurableUnsubscribed Import" list : This is where the durable unsubscribed will be imported. Once the process is finished as we will see, the list will be empty.
  2. The "Durable Unsubscribed Deletion List" will contain all the leads that are unsubscribed but should not be kept in the database. In other words, they were added to Marketo when you imported leads to the Durable Unsubscribe Import list. It's filters are set as is :
    • Please note the usage of the "lead was created" filter with a "List Name" constraint : it enables you to detect specifically the leads that were added only to be added to the DUL.
    • We combine this with a "member of list" filter that also checks during the process that the lead is still a member of the import list. As the lead deletion will occur after 2 hours, it enables you to change your mind and remove a lead from the list.
  3. The smart campaign that does the job is a triggered one
    • It will fire when the lead is added to the list
    • As it is not allowed to change the "unsubscribe" field through an import, we need to handle it in the smart campaign flow :
      Then we wait 2 hours to leave Marketo ample time to log the un-subscription (We can even leave it 1 day, but do not make it too short). After this delay, we check the lead is still there, waiting for deletion and has been created during the import. For this, we check the lead still belong the the "Durable Unsubscribed Deletion List" smart list and, if so, we delete it.Finally, if the lead has not been deleted (meaning it was there already and is supposed to have some history in the database), we remove it from the Import List

Alternatively, we can set the smart campaign as a batch and run it manually after completing an import in the Import List. In this case, we would replace the trigger with the  following filter :

This process will also work if you use the import list API calls and import them to the "Durable Unsubscribe Import" List :

Do not hesitate to provide feedback and alternatives, I'll incorporate them.



Hi Greg

I was really interested to see this post because at this very moment this is the challenge I am facing. We use Responsys for B2C  and some B2B (millions of contacts) and we have Marketo for B2B (with some B2C cross sell) - only a few hundred thousand records.

We need to keep the Subscription Preferences in sync as well as the OptOut. I'm trying to automate this running an export from both systems into a SQL Server Database - creating a Master list - and then incrementally updating that master list and then creating an export file to update each system accordingly. Its some pretty hairy logic and I hope its going to work.

Hi Justin,

It will work for the opt-out, but if you want to keep the subscriptions preferences, you will need to keep the records in Marketo.


Level 7 - Champion Alumni

However Grégoire Michel

Does not the issue remain that if you delete the unsubscribed lead in the first place, you lose the Activity Log.

Do we know or has it been confirmed if this holds true with the Durable Unsubscribe or whether we get the Activity Log back.

I would think the latter, but would like to know from someone who has actually implemented this.



Hi Geoffrey,

No, you are right, the activity log is lost forever when you delete the lead. Only the info about the "unsubscribe" remains, and it is not linked to the lead itself but to the email address.


Level 7 - Champion Alumni

A disappointment

Hoping this can be improved moving forward!

Well, I feel it makes sense: you keep the lead, you keep the activity log, you pay for it . You want it for free, you delete it, but then you loose the activity log.

You can't have your cake and eat it...

Furthermore, it may make sense to keep some unsubscribes. They have an history and they may re-subscribe again later. And I have had once a prospect who unsubscribed but yet ended as a customer (and still unsubscribed )


Level 7 - Champion Alumni

I suppose in some way that makes sense, since it requires DB storage to retain the log(s)!

With my current job, we yet have had the need to purge unsubscribes (while I've been with PR Newswire).  However, I've seen this done with my former company.

Generally my recommendation would be to look at inactives for removal versus unsubscribes.  Also, start at 2+ years of inactivity.

If someone is not engaging, they are likely no longer interested in your messages.

We took full field backup of the leads that remained inactive after running a "Last Chance" email campaign.

Then we reexamined the list and purged/deleted those leads still meeting the following criteria.


What happens if a lead with a durable unsubscribed email address gets created again? will the Unsubscribed field get populated as true? can you resubscribe it? I can do the test but if you can tell me would save me some time.

Hi Diego,

In this case, yes, the unsub fields will be flagged as true. You can resubscribe it then, but of course, remain compliant with your applicable law (in other terms, if the customer asks for it).


I tried this process and it ended up creating duplicates in SalesForce.

The leads I imported into the "Durable Unsubscribed Import" list already exist in my SalesForce instance (from a previous email tool). Do you have a workaround that will account for that?