> ## Documentation Index
> Fetch the complete documentation index at: https://docs.haloagents.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Subscription Lists

> Consent management for marketing emails. Opt-in vs opt-out, unsubscribe handling, and CAN-SPAM compliance.

## Why subscription lists

Subscription lists give you and your customers control over who receives what. Instead of every user getting every marketing email, you create lists ("Product Updates", "Beta Newsletter", "Weekly Tips") and customers can opt in or out independently.

Halo enforces consent on every send. Users who've unsubscribed from a list never receive emails for that list, even if they're in the audience.

Configure at **Settings > Emails > Subscriptions**.

## Two consent models

Each subscription list has a `consent_type`:

| Model       | Behavior                                                                                           |
| ----------- | -------------------------------------------------------------------------------------------------- |
| **Opt-in**  | Only users who have **explicitly subscribed** receive emails for this list. Default for new lists. |
| **Opt-out** | All users **except** those who have explicitly unsubscribed receive emails.                        |

| Use case                                       | Recommended                                                               |
| ---------------------------------------------- | ------------------------------------------------------------------------- |
| Marketing newsletter                           | Opt-in                                                                    |
| Product update emails                          | Opt-in or opt-out depending on regulation (GDPR-leaning teams use opt-in) |
| Transactional notifications (account, billing) | Don't use a subscription list; these aren't subject to opt-out            |

## Subscribing and unsubscribing

Subscriptions live on **`contact_subscription_preferences`**:

* Users can **subscribe** by interacting with your product (e.g. clicking a "Subscribe to updates" button)
* Users can **unsubscribe** via the unsubscribe link in any email tied to a list
* The unsubscribe page is hosted by Halo (`/unsubscribe?...`) and includes branding

When a user unsubscribes from a list, Halo records `subscribed: false` for that pair. Future sends in that list are filtered out automatically.

## Unsubscribe page

The unsubscribe page is auto-generated and includes:

* The list name and description
* Unsubscribe and resubscribe buttons
* Your help center logo and brand colors
* Optional secondary lists for the user to manage at the same time
* Footer with your company info (CAN-SPAM compliant)

Customize the page at **Settings > Emails > Subscriptions > Unsubscribe Page Branding**.

## Failsafe behavior

Halo fails closed when subscription configuration is wrong:

* **Missing list ID** → no recipients
* **Wrong-org list** → no recipients
* **Subscription audience but list has zero subscribers** → no recipients

This prevents accidentally blasting "everyone" when you meant to send to a specific list.

## Audience targeting with subscription lists

When you set `audience_type: subscription` on a broadcast or series, you must specify a `subscription_id`. The audience is computed:

* **Opt-in lists**: only users with `subscribed: true` for this list
* **Opt-out lists**: all users **except** those with `subscribed: false` for this list

You can also combine subscription scoping with segment filters. A series audience can be "subscribers of the Beta Newsletter list AND on the Pro plan."

## Series with the unsubscribed exit rule

For series, you can add **`unsubscribed`** to the series' exit rules. When set:

* Before each step send, Halo checks if the user has unsubscribed from the linked list
* If yes, the user's pending rows are removed and they exit cleanly
* The next step in the series is skipped, not dropped

This is critical for compliance: a user who unsubscribes from your "Welcome series" should stop receiving the rest of the series immediately.

## Resubscribing

Users can re-subscribe at any time from the unsubscribe page. Halo restores their `subscribed: true` and they're eligible for future sends.

## Where to go next

<CardGroup cols={2}>
  <Card title="Broadcasts" icon="megaphone" href="/outreach/broadcasts">
    One-shot emails with subscription audiences.
  </Card>

  <Card title="Series" icon="layers" href="/outreach/series">
    Multi-step sequences with subscription audiences and unsubscribe exit rules.
  </Card>

  <Card title="Sending Settings" icon="sliders" href="/channels/sending-emails">
    The default unsubscribe link toggle and email branding.
  </Card>
</CardGroup>
