1. Executive Summary & Regulatory Scope
Direct electronic marketing in South Africa is governed by four complementary statutory frameworks enforced by the Information Regulator (South Africa), the Department of Trade, Industry and Competition (DTIC), and the National Consumer Commission (NCC):
- Protection of Personal Information Act 4 of 2013 (POPIA Section 69): Prohibits direct marketing by means of any form of electronic communication (including WhatsApp, Email, and SMS) unless the data subject has given prior opt-in consent, or is an existing customer of the responsible party subject to strict soft opt-in conditions under Section 69(3). The burden of proving when and how consent was obtained rests on the Responsible Party under Section 11(2).
- Consumer Protection Act 68 of 2008 (CPA Section 11 — Right to Restrict Unwanted Direct Marketing): Guarantees every consumer the right to refuse to accept, require another person to discontinue, or pre-emptively block any approach or communication that is primarily for the purpose of direct marketing, free of charge.
- DTIC / NCC National Opt-Out Registry: Established under Section 11(3) of the CPA by the Department of Trade, Industry and Competition and administered by the National Consumer Commission. Direct marketers operating in South Africa must register on the National Opt-Out Registry, ensure they do not dispatch direct marketing to any consumer who has registered a pre-emptive block, and regularly scrub their recipient lists against the registry.
- Consumer Protection Act 68 of 2008 (CPA Section 12 — Regulation of Time for Contacting Consumers): Prohibits contacting consumers at home for direct marketing purposes during prescribed prohibited periods (Sundays, South African public holidays, Saturdays outside
09:00–13:00, and weekdays outside08:00–20:00) unless the consumer has expressly or implicitly requested or agreed otherwise. - Electronic Communications and Transactions Act 25 of 2002 (ECTA Section 45): Requires commercial electronic communications to provide the sender's true identity, contact details, and a functioning facility to opt out of future communications.
Multi-Jurisdiction Architecture: These statutory registry and time-window controls come pre-configured for South African (ZA) organisations and are built on an international, multi-tenant compliance engine that extends cleanly to GDPR (EU/UK) and other regional jurisdictions.
2. How Customer Consent Is Obtained & Recorded
ProfilePilot enforces a strictly channel-separated, default-opt-out consent model on every contact record (inbox_contacts), paired with an immutable, append-only activity ledger (inbox_contact_activities):
- Channel Independence: Opting into WhatsApp promotions never grants Email marketing consent, and subscribing to an Email newsletter never grants WhatsApp marketing consent. Each channel maintains its own independent opt-in and opt-out state.
- Default Opt-Out Until Explicit Opt-In: Newly created contacts, inbound customer support enquiries, WhatsApp order checkouts (without the marketing checkbox ticked), and e-commerce store buyers synced without an explicit marketing opt-in flag (
accepts_marketing = true) remain unsubscribed by default and are excluded from all marketing broadcasts. - Tamper-Evident Consent Proof Payload: Whenever a contact opts into WhatsApp or Email marketing, ProfilePilot records structured JSON proof alongside the UTC timestamp:
source— The exact capture mechanism (checkout_checkbox,yes_reply,hosted_form,web_form,csv_import,store_sync, orstaff_manual).wording— The verbatim disclosure text shown to the consumer at the moment of opt-in (for example, "Yes, send me specials and offers on WhatsApp").actor_user_id— The authenticated team member ID when consent is imported via verified CSV or recorded by authorised staff.ip&user_agent— SHA-256 hashed submitter IP address and browser user-agent string for hosted signup forms and landing pages.captured_at— Exact ISO-8601 UTC timestamp of the consent event, plus channel-specific identifiers such as the inbound WhatsAppmessageIdor CSV filename and row number.
- Immutable Audit Trail (
inbox_contact_activities): Every opt-in and opt-out transition appends a permanent, timestamped audit entry (`marketing_opt_in`, `marketing_opt_out`, `email_opt_in`, `email_opt_out`) that cannot be overwritten by subsequent profile edits.
3. How WhatsApp Opt-Outs Are Processed
ProfilePilot enforces real-time, automated opt-out interception on all connected WhatsApp Business Accounts:
- Keyword & Quick-Reply Button Interception: When a recipient taps a template Quick-Reply opt-out button (
Stop promotions/Unsubscribecarrying payloadpp:mkt:stop) or replies with a recognised opt-out keyword — includingSTOP,UNSUBSCRIBE,OPT OUT,CANCEL,QUIT,STOP PROMOTIONS,STOP PROMOS,STOP MARKETING, orNO MORE MESSAGES— ProfilePilot intercepts the inbound webhook immediately. - Pre-AI & Pre-Automation Execution: Opt-out interception runs at the very top of the inbound ingestion pipeline before any AI assistant, chatbot flow, or commerce catalogue handler executes. The contact's marketing status is deactivated instantaneously, and a free-of-charge confirmation message is returned acknowledging that promotional messages have been stopped.
- Permanent
whatsapp_suppressionsRegistry: In addition to settingmarketing_opted_out_aton the contact record, ProfilePilot writes the normalizedphone_e164number to your organisation's permanentwhatsapp_suppressionstable. This ensures that even if a contact record is later deleted from the CRM, their opt-out orncc_registryblock remains permanently enforced. - Send-Time Re-Verification on Every Queued Recipient: Before dispatching each individual message in a scheduled or running WhatsApp broadcast, the background send worker re-evaluates both the contact's live opt-in state and the
whatsapp_suppressionsledger. Any recipient who opted out after the campaign was queued is automatically skipped (skipped_opt_out). - CSV Re-Import Protection: Staff CSV imports and API syncs cannot override an existing WhatsApp opt-out or suppression record. Once suppressed, a number can only be re-subscribed if the consumer personally initiates an inbound opt-in message (such as replying
YESor tapping an explicit opt-in button from their own WhatsApp handset). - Campaign Opt-Out Spike Auto-Alerting: ProfilePilot monitors campaign-level opt-out rates in real time and alerts workspace administrators if a broadcast experiences an elevated opt-out spike so teams can review audience targeting and template relevance immediately.
4. How Email Opt-Outs & Suppressions Are Processed
Every marketing email, newsletter, sequence step, and automated workflow email dispatched through ProfilePilot is governed by multi-layered unsubscribe and suppression guardrails:
- Mandatory Unsubscribe Footer Injection: ProfilePilot automatically injects your organisation's physical business address and a tamper-proof unsubscribe link into every marketing email. Campaigns cannot be dispatched without a valid unsubscribe mechanism.
- RFC 8058 One-Click Unsubscribe Headers: Every marketing email includes standard
List-Unsubscribe: <https://.../api/email/unsubscribe/[token]>andList-Unsubscribe-Post: List-Unsubscribe=One-Clickheaders required by Gmail, Yahoo, Apple Mail, and Microsoft Outlook, enabling recipients to unsubscribe with a single tap directly inside their mail client header. - Signed Token Instant Opt-Out (Zero Login Barrier): Unsubscribe links use cryptographically signed HMAC tokens scoped to the recipient and organisation. Clicking the link processes the opt-out immediately without requiring the recipient to log in, enter a password, or complete a survey.
- Permanent
email_suppressionsLedger: Opted-out addresses are written toemail_suppressionswith a structured reason (unsubscribe,ncc_registry,complaint,hard_bounce, orstaff_manual). Suppression records are permanent and block any future CSV import or API call from re-subscribing the address. - Automatic Exit from Active Sequences & Automations: The instant an email address is unsubscribed or suppressed, ProfilePilot immediately terminates all active Email Sequences and Automation enrollments for that contact so no queued follow-up step is ever delivered.
- Hard Bounce & Spam Complaint Auto-Suppression: Real-time delivery feedback webhooks automatically suppress addresses that hard-bounce or register a spam complaint, protecting both consumer rights and your sender reputation.
5. National Opt-Out Registry (NCC) Scrubbing & CPA Section 12 Time Windows
a. Built-In NCC Registry Scrub Tool
To help South African direct marketers comply with the DTIC / NCC National Opt-Out Registry requirements, ProfilePilot provides a dedicated NCC Registry Scrub workflow accessible under Marketing → Contacts and Marketing → Email → Suppression:
- Step 1 — Export Active Opted-In Lists: Generate a complete, paginated CSV export of all currently opted-in WhatsApp phone numbers (
phone_e164) and Email addresses (email_normalized) in your workspace for verification against the NCC National Opt-Out Registry. - Step 2 — Upload NCC Blocked Contacts CSV: Upload the block file returned by the NCC portal (or push blocks via
POST /api/v1/marketing/opt-outs). ProfilePilot automatically normalizes all phone numbers and email addresses, writes permanentncc_registryentries to bothwhatsapp_suppressionsandemail_suppressions, marks matching contacts opted out, cancels any queued broadcast items, and exits active email workflows in a single atomic operation. - 30-Day Audit Verification & Freshness Tracking: ProfilePilot records
last_ncc_scrub_aton your workspace whenever you upload an NCC block file or mark a zero-match 30-day audit verified. If more than 30 days have elapsed since your last recorded scrub, ProfilePilot displays a compliance reminder before new broadcasts are scheduled.
b. CPA Section 12 Statutory Marketing Hours Enforcement
Under Section 12 of the Consumer Protection Act and its regulations, direct marketing to consumers in South Africa is prohibited outside prescribed hours. ProfilePilot enforces these windows automatically for South African (ZA) workspaces (`Africa/Johannesburg`, SAST / UTC+2):
- Weekdays (Monday to Friday): Permitted only between
08:00and20:00 SAST(blocked before08:00and from20:00onwards). - Saturdays: Permitted only between
09:00and13:00 SAST(blocked before09:00and from13:00onwards). - Sundays: Prohibited all day.
- South African Public Holidays: Prohibited all day (evaluated dynamically against the official South African public holiday calendar, including observed Mondays when a holiday falls on a Sunday).
When an operator attempts to launch or schedule a WhatsApp broadcast, Email campaign, or automated marketing step during a prohibited window, ProfilePilot blocks immediate dispatch or automatically defers delivery to the next permitted statutory window (for example, 08:00 SAST on the next working weekday).
7. Client Action Checklist for South African Direct Marketers
We recommend that every South African organisation using ProfilePilot for WhatsApp or Email marketing complete the following operational checklist:
- Register on the NCC National Opt-Out Portal: Register your legal entity as a Direct Marketer on the official DTIC / National Consumer Commission (NCC) National Opt-Out Registry portal and keep your registration number on file.
- Perform Monthly 30-Day NCC Registry Scrubs: At least once every 30 days (and prior to major promotional campaigns), open Marketing → Contacts → NCC Registry Scrub in ProfilePilot, export your active opted-in audience, verify it against the NCC Registry, and upload the resulting block CSV (or confirm a zero-match audit).
- Maintain Lawful POPIA Section 69 Consent Wording: Ensure all web forms, checkout opt-in checkboxes, and lead capture flows clearly state your brand name and the channels the customer is agreeing to receive marketing on, with checkboxes unchecked by default.
- Include Clear Opt-Out Instructions on Meta Templates: When submitting WhatsApp marketing templates for approval, always include a
Stop promotionsQuick-Reply button (payloadpp:mkt:stop) or a clear footer line instructing recipients to "Reply STOP to opt out". - Honour CPA Section 12 Permitted Hours: Keep CPA Statutory Marketing Hours enforcement enabled for your workspace and schedule promotional broadcasts within permitted South African windows (Weekdays
08:00–20:00, Saturdays09:00–13:00, excluding Sundays and public holidays). - Verify Sender Identity & Physical Address: Confirm that your organisation's legal or trading name, Reply-To email address, and physical street address are populated under Marketing → Email → Settings.
8. Requesting Consent Audit Logs for Regulator Inspections
If the Information Regulator or the National Consumer Commission (NCC) ever requests proof of consent or confirmation of opt-out handling for a specific consumer or campaign, you can retrieve comprehensive evidentiary records directly from the ProfilePilot portal:
- Individual Contact Timeline & Proof Export: Navigate to Marketing → Contacts, select the contact record, and inspect the timestamped
inbox_contact_activitiesaudit log along with the stored JSON consent proof (source, exact consent wording, actor ID, IP hash, user-agent, or inbound WhatsAppmessageId). - Bulk Consent & Suppression Register Exports: Export your complete opted-in and opted-out registers (including permanent
whatsapp_suppressionsandemail_suppressionsledgers withncc_registrytimestamps) in CSV format from Marketing → Contacts or Marketing → Email → Suppression. - Compliance Support Assistance: For formal regulatory inspections or certified audit bundle requests, contact our compliance team at support@profilepilotapp.com or via our Contact page.