# Compliance policies

Every campaign carries a consent policy — Basic, Opt-out or Opt-in — that decides who it's allowed to reach and what happens when someone opts out. How each policy works and which to choose.

**Language:** en
**Audience:** platform
**TLDR:** Every campaign carries a consent policy that decides who it reaches: Basic reaches every subscribed contact, including those who declined marketing; Opt-out excludes those who declined; Opt-in only those who explicitly accepted. A contact with no preference recorded (the default state) receives under Basic and Opt-out, never under Opt-in, and suppressed contacts receive nothing under any policy. An opt-out suppresses straight away under Basic, and only on a repeat under the other two.
**Translation key:** platform.campaigns.compliance-policies
**Search keywords:** compliance policy, consent policy, basic, opt-out, opt-in, who receives, marketing consent, unsubscribe, stop, opt out, suppression, suppressed contacts, blacklist, marketing preferences
**Related pages:** /platform/es/campaigns/compliance-policies, /platform/en/campaigns, /platform/en/campaigns/audience-targeting, /platform/en/channels/compliance-defaults, /platform/en/consent
**Docs index (every page):** https://docs.instasent.com/llms.txt
**This zone's index:** https://docs.instasent.com/platform/en/llms.txt
**This page:** https://docs.instasent.com/platform/en/campaigns/compliance-policies/ (HTML) · https://docs.instasent.com/platform/en/campaigns/compliance-policies.md (Markdown)
**Other language (es):** https://docs.instasent.com/platform/es/campaigns/compliance-policies.md

Every campaign carries a **consent policy** — chosen when you create it and editable
in the campaign details, where the selector is labelled **Consent policy**. ("Compliance
policies" is the name of this section; the setting on each campaign is the *consent
policy*.) It decides two things at once: **who the campaign is allowed to reach**, and
**what happens when a contact opts out**. There are three policies: **Basic**, **Opt-out**
and **Opt-in** — from the widest reach to the most restrictive.

| Policy      | In short                                                                         |
| ----------- | -------------------------------------------------------------------------------- |
| **Basic**   | Sends to all subscribed contacts, ignoring marketing preferences. Maximum reach. |
| **Opt-out** | Excludes contacts who explicitly declined marketing. Reaches everyone else.      |
| **Opt-in**  | Only contacts who explicitly accepted marketing. The most restrictive policy.    |

## Who each policy reaches

Whether a contact gets the campaign depends on their marketing-consent state and the
policy you pick:

| Contact                            | Basic | Opt-out | Opt-in |
| ---------------------------------- | :---: | :-----: | :----: |
| **Accepted marketing** (opted in)  |   ✓   |    ✓    |    ✓   |
| **No preference set**              |   ✓   |    ✓    |    ✗   |
| **Declined marketing** (opted out) |   ✓   |    ✗    |    ✗   |
| **Suppressed**                     |   ✗   |    ✗    |    ✗   |

A contact has **no preference set** when nothing has been recorded either way — it
wasn't collected at signup, or the data source or CSV didn't bring a marketing
preference. This is the default state. **Suppressed** contacts — those blocked from all
sending on that channel (suppression is per channel) — never receive a campaign, under
any policy. The difference between the policies is how they treat contacts who have *no
preference* recorded and those who *declined* marketing.

The three policies form widening circles: **Opt-in** reaches the fewest contacts,
**Basic** the most. Put the other way round, each contact's consent state decides which
policies can reach them:

```mermaid
flowchart TD
    C["A contact in your audience"] --> Q1{"On the suppression list?"}
    Q1 -->|Yes| N["No policy reaches them"]
    Q1 -->|No| Q2{"Their marketing consent?"}
    Q2 -->|Accepted| All["Basic, Opt-out and Opt-in"]
    Q2 -->|No preference| BO["Basic and Opt-out"]
    Q2 -->|Declined| B["Basic only"]
    class All success
    class N destructive
    class BO neutral
    class B neutral
```

> **Note**: The recipient count in the [Audience step](/platform/en/campaigns/audience-targeting)
> already reflects the policy you've chosen — change the policy and the count updates.

## What happens when someone opts out

A contact can opt out in several ways — replying **STOP** (or the country's keyword),
clicking an **unsubscribe link**, or a channel-native action on RCS or WhatsApp. They all
lead to the same outcome, which depends on the campaign's policy:

- **Basic** — the contact is **suppressed** straight away, removed from all future
  sends on that channel. Because Basic ignores the opt-out preference, suppression is the
  only way to honour the request.
- **Opt-out and Opt-in** — the first opt-out marks the contact as **opted out**: they
  stop receiving marketing but aren't fully suppressed. If an already opted-out contact
  opts out again, they're then **suppressed**.

An opted-out contact isn't blocked from everything: they no longer receive campaigns sent
under Opt-out or Opt-in, but a **Basic** campaign — which ignores marketing preferences —
would still reach them. That's exactly why a STOP on a Basic campaign goes straight to
suppression: nothing milder would stop the messages. The gentler policies give a contact
a reversible opt-out first and only escalate to suppression on a repeat request.

```mermaid
flowchart TD
    STOP["Contact opts out (STOP, unsubscribe link, ...)"]
    STOP --> Q{"Campaign's policy"}
    Q -->|Basic| S1["Suppressed — removed from every send"]
    Q -->|Opt-out or Opt-in| OUT["Opted out — no more marketing"]
    OUT -->|opts out again| S2["Suppressed"]
    class OUT neutral
    class S1 destructive
    class S2 destructive
```

## Choosing a policy

The default policy comes from the **channel**: SMS and RCS campaigns start on
**Basic**, which is what a channel with no policy configured resolves to — out of the box
none has one set. You can change it per campaign, and the per-channel default is
configurable —
see [Compliance defaults](/platform/en/channels/compliance-defaults). Every project can
use any of the three policies; none is restricted by plan.

Pick the policy that matches how you collected your audience: **Opt-in** if you only
want contacts who explicitly agreed to marketing, **Opt-out** to reach everyone except
those who declined, **Basic** for maximum reach when marketing preferences don't apply
to the message.

> **Note**: How a contact comes to be opted in, opted out or suppressed in the first place — the
> underlying consent model — is covered in [Consent](/platform/en/consent). This page
> is about how a campaign's policy *uses* those states.

![The consent policy selector showing Basic, Opt-out and Opt-in](/platform/en/campaigns/images/compliance-policies--1-policy-selector.png)
*The consent policy selector, in the campaign details.*

Counting from your own systems? The API can tell you how many contacts a policy reaches
before you create the campaign: see
[Counting who can receive](/developers/product-api/audience/query-filter#counting-who-can-receive-filtercompliance)
in the developer docs.

---

This is one page of the Instasent documentation. For the complete machine-readable index of every guide and API reference, fetch https://docs.instasent.com/llms.txt — start there for full context.
