How do I synchronize unsubscribes with my own database?

It is a requirement of using Campaign Monitor that you include our instant unsubscribe link in every campaign. If you want to also capture unsubscribes in your own system, there are a couple of ways you can do it, as explained on this page.


The best way to keep your own data source up to date with changes that happen in Campaign Monitor — such as subscribes, unsubscribes and subscriber updates — is to use a webhook. A webhook is simply a user-defined callback in the form of an HTTP POST, which is triggered when something changes.

You will need web development experience to set this up. To get started, see our API documentation on webhooks.

Custom unsubscribe confirmation page

If using webhooks is not an option, an alternative is to set up a custom unsubscribe confirmation page. Every list can have its own redirect confirmation page which subscribers see after unsubscribing via a campaign link or unsubscribe form, if you use one.

With a custom confirmation page you replace our generic confirmation page URL, see example below, with your own:

For example, you could change your unsubscribe URL to:[email]

The email address of the individual who unsubscribes (from a real campaign send, not a test) will then be passed into the query string of that page. For example, the subscriber would be redirected to:

From there, your page can grab the email address in the query string to update your own systems.

Handy to know:
  • This technique will work for anyone who unsubscribes via the unsubscribe link in a campaign, an unsubscribe form, or the "Unsubscribe" button in subscriber preference centers.
  • You can also pass through custom field values on the query string, for example: age, address, phone number.
  • To test the email address is passed through to your page correctly, you'll need to test with a real campaign send. When you send a quick test email, the tags in the URL are not replaced with the value.