Free trial
Colour

Marketing consent: opt-ins and opt-outs

Record when and where a contact agreed to marketing messages, record opt-outs, and send marketing only to contacts with a current opt-in.

For
OwnerAdministrator
Hosting
Any hosting
Devices
Web browserServer
Business
All businesses

Checked against Pop Dispatch 0.1.0

Every marketing message in Pop Dispatch goes only to a contact whose newest consent record is an opt-in. A record holds the time, the channel (email or text message), where the person agreed, the wording they saw and, for an opt-out, when they withdrew.

Before you start #

  • You need the owner or manager role.
  • Customers whose record carried the marketing flag before this feature keep their opt-in, dated from that flag and sourced as "customer record".

Steps #

  1. Open Privacy and choose Marketing consent.
  2. Type an email address or phone number and choose Look up. The screen shows whether the contact may receive marketing and the history of records.
  3. To record an opt-in, choose Opt-in, say where the person agreed (for example "sign-up form" or "phone call"), add the wording shown and choose Record consent. An opt-in needs a source.
  4. To record an opt-out, choose Opt-out and Record consent. The opt-out takes effect at once.
  5. To send, fill in Send a marketing message with the channel, subject and message. Customers without an opt-in are left out, and the screen says how many were queued and how many were left out.

How every send is checked #

  • The send action checks consent for each contact.
  • The database refuses to queue a marketing notification for a contact without a current opt-in, so any other path that tries is stopped there.
  • Opt-outs from the existing opt-out route, from customer requests and from an erasure are recorded the same way and end the sends.
Technical details

GET /privacy/consent?contact=, POST /privacy/consent with {"contact", "event": "opt_in"|"opt_out", "source", "wording"} and POST /privacy/marketing/send. Contacts are stored in lower case for email and as digits for phones. Marketing notifications carry related_type = 'marketing'; the trigger notifications_marketing_consent (migration 0142) enforces the rule.