Unsubscribe Management
Where to find it
Sidebar > Campaigns > Editor (footer)
Unsubscribe Management
Every campaign email Leadflip sends includes an unsubscribe footer. This article explains how that works, what gets recorded, and why the flow looks the way it does.
What recipients see
At the bottom of every campaign email, recipients see an Unsubscribe link. Clicking it takes them through a two-step flow:
- Confirmation page. Shows their email address and asks them to confirm. Nothing has happened yet at this point.
- Unsubscribed page. Records the opt-out and shows confirmation.
In addition, Gmail, Yahoo, and Apple Mail users see a native Unsubscribe button in the email-list view, next to the sender name. Clicking that button skips straight to step 2 (the system treats the native button as proof of intent).
Why the two-step flow
Modern email security tools pre-fetch links to scan them for malware: Outlook Safe Links, Gmail's link checker, Microsoft Defender, and similar systems. If clicking the unsubscribe link directly performed the unsubscribe, these scanners would unsubscribe recipients automatically the moment the email arrived, before the human ever read it.
The first step (confirmation page) makes no state change, so pre-fetchers can safely visit it. Only the second step records the actual unsubscribe.
The native one-click button is exempt from this because it requires an authenticated POST with a specific payload that pre-fetchers do not send.
What gets recorded
When a lead unsubscribes, a row is written to the campaign_unsubscribes table with:
| Field | What it stores |
|---|---|
| Lead and Account | Identifies who unsubscribed |
| Campaign ID | Which campaign triggered the opt-out (optional, may be empty for admin or API opt-outs) |
| Source | How the unsubscribe happened (see below) |
| IP Address | Audit trail |
| User Agent | Audit trail |
| Timestamp | When the opt-out happened |
Sources
| Source | Meaning |
|---|---|
link |
The recipient clicked the in-email Unsubscribe link and confirmed |
list_unsubscribe |
One-click unsubscribe from the Gmail/Yahoo/Apple native button |
admin |
A team member manually unsubscribed the lead from the admin UI |
api |
An external system unsubscribed the lead via the API |
spam_complaint |
The lead reported the email as spam; their email provider forwarded the complaint |
bounce |
The email hard-bounced enough times that the system suppressed future sends |
legacy |
Backfilled from the old per-lead unsubscribe column during the May 2026 migration |
How unsubscribes affect future campaigns
Once a lead is unsubscribed, they are excluded from every future campaign on that account, automatically. The exclusion happens in the audience query at send time. There's no way to opt them back in without explicit user action.
Two important boundaries:
- Unsubscribes are campaign-scoped. A lead who unsubscribes from campaigns still receives:
- Automation emails ("when a lead enters stage X, send Y") because those are explicit per-lead triggered messages, not bulk broadcasts.
- Distribution partner emails when their lead is delivered.
- System notifications (password reset, account confirmation, etc.).
- Unsubscribes are per-account. If your organisation has multiple Leadflip accounts (e.g. separate brands or business units), an unsubscribe on Account A does not propagate to Account B. If the same person exists as a lead in both accounts, they need to unsubscribe in each.
GDPR and CAN-SPAM compliance
The system is designed to satisfy the typical requirements of both regimes:
- A clear and visible unsubscribe link in every campaign email (required by both GDPR and CAN-SPAM).
- No "double-opt-out" or hoops. One click confirms, and they're out.
- An audit trail of the unsubscribe (IP, user agent, timestamp, source) for proof of compliance.
- The List-Unsubscribe and List-Unsubscribe-Post headers as specified by RFC 8058, satisfying Gmail's and Yahoo's bulk-sender requirements from February 2024.
This does NOT replace your obligation to have a lawful basis for sending the campaign in the first place. Make sure your leads consented (or qualify for legitimate-interest processing under GDPR Article 6).
Manually managing unsubscribes
You can manually unsubscribe a lead from the CRM:
- Open the lead.
- Find the Unsubscribe from campaigns action on the lead's right-hand side panel.
- Confirm. The unsubscribe is recorded with
source: adminand your user ID.
To re-subscribe a previously opted-out lead, do the same thing in reverse. This should only ever happen with the lead's explicit consent (in writing if possible). Re-subscribing someone who did not ask to be re-subscribed exposes you to spam complaints and legal risk.
Bounce and spam complaint handling
- Hard bounces are processed asynchronously when your SMTP provider reports them. Multiple hard bounces from the same address result in suppression with
source: bounce. - Spam complaints are processed when your provider supports FBL (feedback loops). The lead is unsubscribed with
source: spam_complaint.
If your SMTP provider does not forward bounces or spam complaints to Leadflip, this automatic suppression doesn't run. Consider switching to a provider with proper webhook support (Postmark, Mailgun, Amazon SES with SNS notifications, etc.).