# How consent works

The two consent axes in detail — the marketing preference (accepted, declined, no preference) and channel suppression (subscribed or suppressed) — where each shows on the contact profile, and the matrix that decides who receives a campaign from a contact's state and the campaign's policy.

**Language:** en
**Audience:** platform
**TLDR:** Consent on a channel is two separate values: the marketing preference (accepted, declined, or no preference, the default) and channel suppression (Subscribed, or suppressed). Suppression wins over everything: a suppressed contact receives nothing on that channel, whatever their preference and whatever policy the campaign carries. The preference only decides which policies reach them: declined still receives Basic, no preference receives Basic and Opt-out, accepted receives all three.
**Translation key:** platform.consent.marketing-preference-vs-suppression
**Search keywords:** marketing preference, suppression, suppressed, blocked, subscribed, accepts marketing, no preference, opted in, opted out, who receives, consent state, declined marketing, accepted marketing, channel preferences
**Related pages:** /platform/es/consent/marketing-preference-vs-suppression, /platform/en/consent, /platform/en/campaigns/compliance-policies, /platform/en/consent/opt-outs-reactivation, /platform/en/audience/contacts-profiles
**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/consent/marketing-preference-vs-suppression/ (HTML) · https://docs.instasent.com/platform/en/consent/marketing-preference-vs-suppression.md (Markdown)
**Other language (es):** https://docs.instasent.com/platform/es/consent/marketing-preference-vs-suppression.md

A contact's consent on a channel isn't one thing but two: **whether they accept marketing**,
and — separately — **whether they're suppressed from the channel entirely**. These are different
questions — wanting or not wanting promotions is one thing; being out of the channel altogether
is another — which is why it helps to look at them apart. This page covers what each value means,
where you see it on the profile, and how the two combine with a campaign's policy to decide who
actually receives a send.

## Marketing preference

The marketing preference answers a simple question: does this contact want promotional
messages on this channel? It isn't a plain yes/no — it's a **three-state** value:

- **Accepted** (opted in) — the contact explicitly agreed to marketing: they replied START,
  submitted a form, or were imported with consent on record. They receive marketing under
  every policy.
- **Declined** (opted out) — the contact explicitly said no: they replied STOP, used an
  unsubscribe link, or were imported as declined. They're excluded from campaigns under the
  Opt-in or Opt-out policy, but they're **still subscribed** — a Basic campaign still reaches
  them.
- **No preference** — nothing has been recorded yet. This is the default for a new contact,
  or one imported without consent data. It's neither a yes nor a no, and policies treat it
  as its own case (see the matrix below).

> **Note**: **No preference is not the same as declined.** A contact who never expressed a preference
> can still be reached by an Opt-out campaign; a contact who *declined* cannot. Importing a
> contact without consent data leaves them at **No preference**, never at *declined* — only
> an explicit refusal sets *declined*.

## Channel suppression

Suppression is the hard block — the "don't send them anything here." A **suppressed** contact
is removed from **every send on that channel**, whatever their marketing preference says and
whatever policy the campaign carries. There is no exception. On the contact profile this is the
**Subscribed** checkbox: checked, the contact is subscribed; cleared, they're suppressed.

Suppression is reserved for the strongest signals — a repeated opt-out, or a manual block by
your team or via the API. It is **not** set by a CSV import or a connector: data ingestion
can never suppress a contact. And a contact **can't lift their own suppression** — replying
START reverses an opt-out, but not a suppression (see
[Opt-outs & reactivation](/platform/en/consent/opt-outs-reactivation)).

## Where you see both

Both axes are on the contact's
[profile](/platform/en/audience/contacts-profiles#channel-preferences), in the **Channel
preferences** card — one row per channel (**SMS / RCS**, **Email**, **WhatsApp**), with the
**Subscribed** and **Accepts marketing** columns. Both are checkboxes: **Subscribed** is a plain
checkbox (checked means active, cleared means suppressed), and **Accepts marketing** is a
**three-state checkbox** — checked (opted in), unchecked (opted out) or indeterminate, shown as
**No preference** when no value has been recorded yet.

You can also surface the underlying [subscription attributes](/platform/en/consent/subscription-attributes)
as columns in the [audience table](/platform/en/audience/audience-table) and filter
[segments](/platform/en/audience/segments) on them — for example, a segment of contacts who
accept SMS marketing.

![The Channel preferences card showing a contact subscribed on SMS / RCS but with Accepts marketing set to No](/platform/en/consent/images/marketing-preference-vs-suppression--1-channel-preferences.png)
*A contact who declined marketing but is still subscribed: a Basic campaign reaches them, an Opt-in or Opt-out one doesn't.*

## Who receives a campaign

Whether a contact gets a marketing campaign comes from **both** axes together with the
campaign's **consent policy**. The policy is the campaign's setting; the state is the
contact's. The combination:

| Contact state          | Subscribed | Accepts marketing | Opt-in | Opt-out | Basic |
| ---------------------- | :--------: | :---------------: | :----: | :-----: | :---: |
| **Accepted marketing** |     Yes    |      Accepted     |    ✓   |    ✓    |   ✓   |
| **No preference**      |     Yes    |   No preference   |    ✗   |    ✓    |   ✓   |
| **Declined marketing** |     Yes    |      Declined     |    ✗   |    ✗    |   ✓   |
| **Suppressed**         |     No     |        any        |    ✗   |    ✗    |   ✗   |

Reading the matrix:

- A **suppressed** contact receives nothing — the bottom row is all ✗, whatever the policy.
- **Basic** ignores the marketing preference: it reaches every subscribed contact,
  including those who declined. Only suppression stops a Basic campaign.
- **Opt-out** drops the contacts who *declined* but keeps everyone else, including **No
  preference**.
- **Opt-in** is the strictest: only contacts who **accepted** marketing.

**Example.** A contact imported last month with no consent data sits at **No preference**,
**Subscribed**. An **Opt-out** promotion reaches them (they never declined); an **Opt-in**
promotion does not (they never opted in). If they then reply STOP, they become **Declined**
— and the same Opt-out promotion would no longer reach them.

> **Note**: This matrix is the heart of a campaign's
> [consent policy](/platform/en/campaigns/compliance-policies). That page also covers what a
> STOP *does* under each policy (the escalation from opt-out to suppression). This page is
> about the contact-state side of the same model.

Reading this matrix from your own systems? The API applies exactly the same rules when it
counts an audience under a policy: see
[Counting who can receive](/developers/product-api/audience/query-filter#counting-who-can-receive-filtercompliance)
in the developer docs.

Next: the [subscription attributes](/platform/en/consent/subscription-attributes) that store
these two axes per channel.

---

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.
