CDP Downstream Impact (DockBlocks)

Date: 2026-07-27 | Owner: Alecia (PivotPlanit) | Jui = CDP build owner

What changes on OUR side once Jui's CDP goes live. Not the CDP build itself - the ~32 downstream docs/scripts/flows that need updating or change behavior. Grounded in live files.

5 THINGS TO CONFIRM WITH JUI (gate the build)

  1. person_id write-back: Does the CDP write a person_id (or CDP_Person_ID) BACK into Zoho Leads/Contacts that our scripts can query? Or is CDP read-only? (This is the join key for reconversion detection, shiplog PO->person match, and reporting joins. CRITICAL.)
  2. Brevo attribute ownership: Per Brevo attribute, who writes it - Zoho sync or CDP? Conflicts if both write the same attribute (e.g. Zoho writes PRODUCT_APPLICATION/REP_PHONE; CDP writes FIRST_TOUCH_SOURCE/REPEAT_CUSTOMER). Need a per-attribute ownership matrix.
  3. Consent model: Does CDP track consent as an immutable event log (given on DATE via SOURCE) or just current state? Who is authoritative on unsub/re-opt - Zoho field or CDP?
  4. Backfill coverage: Does the CDP backfill include ALL historical Contacts/Deals (incl 2024 records), or will some lack person_id? Scripts assuming person_id exists fail silently on gaps.
  5. Real-time vs nightly to Brevo: Is CDP push-syncing Brevo attributes in real-time? If so we must turn OFF the zoho_to_brevo attribute sync (or define merge rules) to avoid double-writes.

MOST-AFFECTED SCRIPTS (CRITICAL)

WHAT CDP UNBLOCKS (once live)

DOCS TO UPDATE (when CDP lands)

CUSTOMER_DATA_MANAGEMENT.md (reconversion + collection sections), LIFECYCLE_COMMS_MAP.md (reconversion row + unsub handling), ZOHO_BREVO_SYNC_FUNCTION.md (consent + dedup no longer webhook-triggered), conversion-mapping-source-of-truth.md, shiplog-shipped-notification-as-built.md (match logic), google-ads-reporting-as-built.md + conversion_attribution.py docstring (attribution source: Zoho field vs CDP attribute).

IMMEDIATE ACTION

Add a "CDP contract" section to CUSTOMER_DATA_MANAGEMENT.md capturing the 5 answers above - it becomes the SoT all downstream scripts key on. Then a 30-min Alecia+Jui sync to lock it.