Docs

Console: Purposes & preference center

The versioned statement editor and the preference center builder.

Purpose editor

  1. New purpose → key (snake_case) + category. Optionally a version tag and enforce locale.
  2. Draft text tab → one or more languages (title + body + optional link).
  3. Row button reads Add text (nothing published yet) → New version (live, no edits) → Edit draft (unsaved edits). The Unpublished column says up to date or draft edits.
  4. Publish → choose Display-only or Requires re-consent, an optional tag and effective date.

Full detail and worked examples: Consent statements & versioning.

Dependency rules

Rules change what the banner asks next, based on what the person has answered so far — “if they opt into marketing email, also ask how often.” They run in the browser as the form is filled in; they never block or alter a saved consent.

The Dependency rules tab has a visual builder: each rule reads When [purpose] is / is not [granted | denied | not answered] … Then [require | show | hide | make optional] [these purposes or fields]. A plain-language sentence under each rule shows what it will do. An Advanced (JSON) tab is there for logic the builder can’t express (nested AND/OR, several effects).

You wantRule
Only ask for email frequency if they opted into emailWhen marketing_email is grantedrequire email_frequency
Hide the “topics” picker unless they said yes to marketingWhen marketing is not granted → hide marketing_topics
Force an analytics choice before they can continueWhen analytics is not answered → require analytics
Most sites need no dependency rules. Add one only when one answer should genuinely change what else is asked.

Preference center

Built from three tabs. Channels (email, SMS, push…) and Topics (newsletter, product updates…) are each a simple labelled list. Center composes them: one row per channel × topic, with a required toggle. Fields adds typed extras (BOOLEAN, SINGLE_SELECT, MULTI_SELECT, SCALE) with options. Publish freezes a version; the SDK reads it from GET /v1/preference-template.