{{unsubscribe_link}} in a campaign opens. Recipients see their current status, choose which topics they want, pause marketing email for a while, or leave entirely. The page is built in, so there is nothing to host or design yourself.
The page applies to marketing campaigns only. Transactional emails sent through the API or SMTP are not affected by anything a recipient does here. See Complaints & Unsubscribes for how unsubscribes work on the transactional side.
What Recipients See
The page is addressed to one contact and opens from the signed link in the email they received.
The page renders in the contact’s communication language, so a Czech recipient of a Czech-language team sees it in Czech.
How Choices Are Applied
Ticking and unticking topics changes only topic subscriptions. A recipient who unticks “Product updates” but leaves “Newsletter” ticked stayssubscribed and keeps receiving the newsletter. Topic opt-outs genuinely suppress sends: consent is re-checked when the campaign’s recipients are resolved and again for every batch.
Unticking every box unsubscribes the contact from all marketing email. Committing an empty selection opens a short dialog asking for an optional reason before it goes through. The contact’s status becomes unsubscribed, every topic is detached (private topics included), any active pause is cleared, and the unsubscribe.link_unsubscribe webhook event fires.
Coming back uses the same button. An unsubscribed recipient ticks the topics they want and presses Update preferences, and their status returns to
subscribed with exactly those topics. This is the only action on the page that resubscribes a contact; a pause never does.
Pausing keeps the contact subscribed but sets a paused_until date. Campaigns skip the contact until that date passes, after which sends resume on their own. Expiry is checked at send time, with no scheduled job that could fail. Pausing is only available to subscribed contacts.
What You See on Your Side
Paused contacts are visible everywhere you look at your audience:- Audiences shows a violet Paused badge with “until date” on each paused contact, and a Paused filter whose count matches the badges.
- CSV exports carry a
paused_untilcolumn alongsidestatus. - The API returns a nullable
paused_untilfield on contacts. Nothing you already parse changes; contacts that are not paused returnnull.
Redirects and Single-Topic Links
Theredirect form of the merge tag still works. After the recipient unsubscribes from all email, Lettr sends them to your URL:
List-Unsubscribe header bypasses the page entirely and unsubscribes immediately, as the RFC requires. See List-Unsubscribe.
Reliability Notes
- The page never fails closed. A malformed or missing optional parameter is dropped and the page renders anyway, because refusing to show an unsubscribe page is worse than ignoring a bad query string.
- Rate limits are per contact, not per IP. Corporate security gateways that prefetch every link in an email cannot exhaust a shared limit and lock a real recipient out of unsubscribing.
- Test emails open a preview. Links in test sends open the same page in preview mode with a banner explaining that nothing will be recorded.
Next Steps
Topics
Decide which topics are public and appear on the page
The Unsubscribe Link
Add the merge tag to your campaign footer
Contact Status
How statuses and pauses decide who receives a campaign
Unsubscribe Best Practices
Keep opt-outs easy and compliant