The is_subscribed field
Each contact has a single is_subscribed boolean:
true— contact is opted in and can receive emails.false— contact has opted out and will be skipped on all sends.
When contacts are subscribed
A contact is created as subscribed by default when:- A
signupevent arrives for a new email. - A contact is imported via CSV without an explicit
is_subscribed: false. - A contact is created via API without explicitly setting subscription state.
When contacts are unsubscribed
A contact becomes unsubscribed when:- They click an unsubscribe link in a MailerPath email.
- Their subscription state is explicitly set to
falsevia the API. - They are imported via CSV with
is_subscribed: false.
unsubscribed_at: the timestamp of the opt-out.unsubscribe_reason: a short label for why (e.g.,manual opt out,bounced,user request).
How skipped sends are recorded
When a send is skipped due to unsubscribe state, MailerPath creates a sent email record with:status: skippederror_messageor skip reason indicatingcontact is unsubscribed
subscription entry.
Re-subscribing a contact
To re-subscribe a contact, update their subscription state viaPATCH /client/contacts/{id}/subscription:
Unsubscribe link behavior
MailerPath automatically injects an unsubscribe URL into every email via the{{unsubscribeUrl}} template variable.
When a recipient clicks this link:
- MailerPath marks the contact as
is_subscribed: false. - All pending workflow queue items for the contact are cancelled.
- Subsequent send attempts are skipped automatically.
unsubscribe_url, that URL is used instead of the built-in public unsubscribe endpoint.
Subscription state in CSV imports
When importing contacts:| Field | Required when |
|---|---|
is_subscribed | Always recommended |
unsubscribed_at | Required when is_subscribed: false |
unsubscribe_reason | Required when is_subscribed: false |
Impact on workflows
When a contact unsubscribes:- All queued workflow executions for that contact are cancelled.
- New events will not trigger new workflow executions.
- The contact remains in the system but is excluded from all future sends.
Impact on campaigns
Unsubscribed contacts are excluded during audience materialization. Even if a contact matches the campaign audience (by tag, filter, or explicit contact ID), they will not receive the email ifis_subscribed: false.
Compliance notes
- Always include
{{unsubscribeUrl}}in campaign and workflow templates. - Never re-subscribe contacts without explicit consent from the recipient.
- Keep
unsubscribed_atandunsubscribe_reasonaccurate for audit purposes.

