DEN-36Required
Remove people who objected from every sync out of the warehouse
Every sync that copies people from the warehouse into a marketing, advertising or sales tool drops those who objected or withdrew consent, on every run. It also removes them from audiences it filled before.
How to do it
Copying warehouse data back into other tools is called reverse ETL. GDPR Article 21(3) says that once a person objects to direct marketing, their data may no longer be processed for it. An audience uploaded last month still holds people who objected this week, so the sync deletes as well as adds. Read objections and consent from the app's own records, as Track only after consent and Keep unsubscribe links working keep them. Send only the columns the tool needs, as Copy only the personal columns an analysis needs says. Give each sync its own account, as Give each pipeline and BI tool its own narrow account says. Stop any run that would change more rows than a written limit, such as 10 percent of the audience.
Examples
SQL example
-- The only view a marketing sync may read
CREATE VIEW sync.marketing_audience AS
SELECT p.person_key, p.email, p.country
FROM marts.people p
WHERE p.marketing_consent
AND NOT EXISTS (SELECT 1 FROM marts.marketing_objections o WHERE o.person_key = p.person_key);
How to check
Mark a test person as objected in the staging app and run the sync. They are gone from the target audience. A run that would change more rows than the limit stops and alerts.
Sources
Related rules
- ANA-7 Track only after consent in Product analytics and experiments
- EML-37 Keep unsubscribe links working and never pass on who left in Email
- DEN-23 Copy only the personal columns an analysis needs in Data engineering
- DEN-30 Give each pipeline and BI tool its own narrow account in Data engineering
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/data-engineering/personal-data-in-the-warehouse/reverse-sync-objections">Agent Wranglers data engineering playbook</a>. In code you write, add a comment next to it with the same link.