Outbound Wiki

Opt-out handling

Honoring unsubscribe and opt-out requests across channels, and keeping the suppression list current.

An opt-out starts a routing event. The footer is one entry point, but the request is complete only when it reaches the right state, covers the right scope, and blocks the next send. Check where that state lives: an unsubscribe can be recorded as a preference without adding a row to a suppression list.1 Review the preference state and the selection logic together, or a clean suppression table can create false confidence.

Run the workflow

Start with the request and check scope, storage, blocking, and proof. Move to the next stage only when you can answer the question in the last column.

Stage What you are trying to learn Example question
Receive Whether every entry point creates an opt-out event Where can a recipient ask to stop?
Scope Which channels, senders, and purposes the request covers Does this request apply to email only, or to another channel too?
Record Where the preference or suppression state is stored Which record does every sending path read?
Block Whether future selections exclude the recipient Can a queued or alternate send still select this address?
Verify Whether you can prove when the request arrived and took effect What record shows both timestamps?

Set the exit before the send

Give people a direct route out of every marketing message. It should work without a conversation with a rep or a search through the footer.

In most jurisdictions, the sender is legally required to offer a functional, easy-to-use unsubscription channel.2 Most legitimate bulk mail should offer several ways to accept unsubscription requests.3 Put a clearly visible unsubscribe link in the body or footer of each message.4

Add List-Unsubscribe headers that tell the inbox provider how to process an unsubscribe request.5 The HTTPS form supports synchronous, non-interactive unsubscription and resists bot clicks and related problems.6 Each subsequent marketing message must give the recipient an opportunity to opt out.7

Before launch, test the visible link and the inbox route with a real recipient record. Confirm that both routes reach the same scope decision and that the next send respects the result.

Capture every request

Treat replies and provider actions as intake routes, then send every request through the same handling path. Your team should be able to act without asking the recipient to repeat it.

If you accept replies, give the customer-support staff handling them the power to unsubscribe someone when asked.8 Do not let spam filters block opt-out requests. An unsubscribe reply that lands in the junk folder still counts as a received opt-out request.9

Have the handler preserve the exact address or identifier, the request wording, the channel, and the arrival time. That gives the blocking step enough detail to apply the request without guessing about its scope.

Apply the right scope

Set the boundary before recording an opt-out. Apply the request to the channels, sender, and purposes it covers under the applicable rules.10

Keep the concepts separate. Email unsubscribe, SMS STOP, advertising opt-out, data deletion, and service messaging do not carry the same scope.11 If the recipient chooses among message types, include a way to stop all marketing messages from you as well.12

For calls, a request to stop controls even when an established business relationship exists under federal regulations.13 Text campaigns should continue processing STOP requests and Do-Not-Call registrations as before.14 Use the request and the rules for its channel to decide what gets blocked.

Write the state and block the next send

The record protects the recipient only when every selection path reads it before sending. Make the state durable across campaigns, domains, and any queue that can release a message later.

Suppress the address on the first request across every campaign and sending domain.15 Send one message per campaign and never bump a thread, so an opt-out does not sit behind queued follow-ups.

After writing the state, test a future selection against the affected campaign and the other sending paths that share the recipient. Check alternate domains and queued messages before treating the request as complete.

Keep proof that the block worked

Set a time boundary for processing and keep a record another person can inspect. Keep the mechanism available long enough for a delayed request to reach you, then retain the timestamps that show what happened.

Any opt-out mechanism you offer must be able to process requests for at least 30 days after the message is sent.16 Where a ten-business-day rule applies, remove the recipient from the distribution list within that period.17

Keep a timestamped log of when the request arrived and when suppression took effect, so you can show that processing happened without delay.18 Test the log by sending a request through each intake route, checking the recorded scope, and confirming that the next-send query excludes the recipient.

What not to do

Most failures happen at the handoff between the recipient's request and the sending system.

  • Make the exit easy so recipients can unsubscribe.19
  • Do not rely on recipient replies followed by manual list removal as the unsubscribe design; this is a problematic way to handle requests.20
  • Do not ignore a request or force a customer-retention conversation before removing the recipient.21
  • Do not let spam filters block opt-out requests, including replies that land in junk.9

Sources

  1. 1
    “An unsubscribe, whether through the in-body link or the one-click button, does not appear here: it records a preference on the Preferences tab instead of adding a row to this list.”
  2. 2
    “Also in most jurisdictions you’re legally required to offer a functional, easy to use unsubscription channel.”
  3. 3
    “There are a few different ways to accept unsubscription requests, and most legitimate bulk mail should offer several of them.”
  4. 4
    “Provide a clearly visible unsubscribe link in the body &/or footer of each message.”
  5. 5
    “For easy unsubscribe to work, the email must contain headers that tell the inbox provider how to process an unsubscribe request. These are known as List-Unsubscribe headers.”
  6. 6
    “So RFC 8058 adds a bag on the side to the List-Unsubscribe header to provide synchronous, non-interactive unsubscription over https in a way that is resistant to bot clicks and other issues.”
  7. 7
    “One of these is that they must give you an opportunity to opt out in each subsequent message.”
  8. 8
    “But if you accept replies then give your customer support folks who handle them the power to unsubscribe someone when asked.”
  9. 9
    “The guide says explicitly to make sure your own spam filter is not blocking opt-out requests. An unsubscribe reply that lands in a junk folder is still an opt-out request you received.”
  10. 10
    “An opt-out should block the channels, sender, and purposes covered by the request and applicable rules.”
  11. 11
    “Boundaries: email unsubscribe, SMS STOP, advertising opt-out, data deletion, and service messaging are separate concepts. Apply the relevant scope without inventing permission or bypassing provider blocks.”
  12. 12
    “You may create a menu to allow a recipient to opt out of certain types of messages, but you must include the option to stop all marketing messages from you.”
  13. 13
    “If you ask a company not to call you, it must honor your request, even if you have an established business relationship.”
  14. 14
    “Continue processing “STOP” requests and Do-Not-Call registrations for text campaigns exactly as before.”
  15. 15
    “Our own practice is narrower than the law requires, deliberately. We run one-click unsubscribe in every message, we suppress on the first request rather than inside a ten-day window, and a suppression list applies across every campaign and every sending domain rather than per campaign. We also send one message per campaign and never bump a thread, which removes the situation where an opt-out arrives while three follow-ups are already queued behind it.”
  16. 16
    “Any opt-out mechanism you offer must be able to process opt-out requests for at least 30 days after you send your message.”
  17. 17
    “If a request to unsubscribe is received, the recipient must be removed from the distribution list within 10 business days of the request.”
  18. 18
    “Keep unsubscribe logs on the same footing. The obligation is to process a withdrawal without delay and no later than ten business days, and the only way to show that was met is a timestamped record of when the request arrived and when the suppression took effect.”
  19. 19
    “We’d far rather they do the first so we should make it as easy as possible for them to unsubscribe.”
  20. 20
    “The recipient replies to the email, the person handling replies removes them from the list. This is a problematic way of handling unsubscription requests.”
  21. 21
    “And you can’t just ignore those unsubscription requests and require your customer retention folks have a conversation with the recipient before you unsubscribe them – both because that breaks the law in many jurisidictions and because ain’t nobody got time for that, they’ll just hit the “This is Spam” button and move on.”