All Vendors
cdp

CustomerIO

Customer.io deploys the full identity stitching stack — cross-domain sync, identity resolution, persistence mechanisms, and behavioral biometrics — making it one of the most comprehensive identity infrastructure platforms in its tier, firing before consent on 60% of observed deployments.

135 IOCs10 detections60% pre-consent4 sites
90
Vendor Risk Score

How This Briefing Works

This report opens with key findings, then maps the gaps between what CustomerIO discloses and what BLACKOUT observed at runtime. From there: what it means for your organization, what to do about it, and the detection data and evidence underneath.

Key Findings

Key Findings

10 detections across 4 sites60% pre-consent activity
CRITICAL

Pre-Consent Activity

CustomerIO was observed loading and executing before user consent was obtained on 60% of sites where it was detected.

GDPRePrivacy
HIGH

Pending Analysis

8 BTI behavioral codes detected including full identity stitching stack (C08+C13+C14). Full claims extraction required for gap analysis.

Disclosure Gaps

Claims vs. Observed Behavior

1 gaps
1 HIGH

Pending Analysis

HIGH
They Claim

Claims analysis pending

Observed Behavior

8 BTI behavioral codes detected including full identity stitching stack (C08+C13+C14). Full claims extraction required for gap analysis.

Customer Impact

What This Means For You

If Customer.io is deployed on your site, your customers are being subjected to a full identity stitching operation — their identities are resolved, persisted with long-lived identifiers that survive consent withdrawal, and synchronized across domains. With a 60% pre-consent firing rate, the majority of your visitors encounter this identity infrastructure before they can consent. The persistence mechanisms (C13) mean that even customers who withdraw consent or delete cookies remain identified in Customer.io's system. Your first-party customer relationship data — the most valuable data your business holds — flows through Customer.io's 3-domain infrastructure with cross-domain sync enabled. You are effectively ceding control of your customer identity layer to a third party.
Recommended Actions

What To Do About It

Role-specific actions based on observed behavior

If You Use CustomerIO

  • Audit whether Customer.io's persistence mechanisms (C13) survive consent withdrawal on your site — this is a critical right-to-erasure compliance issue
  • Verify your CMP gates Customer.io before all tracking — 60% pre-consent rate indicates your consent implementation has gaps
  • Request Customer.io's complete data architecture documentation including all 3 tracking domains and cross-domain sync behavior
  • Review whether your DPA covers identity resolution, cross-domain sync, and persistent identification — these likely exceed standard marketing automation terms

If You're Evaluating CustomerIO

  • Require Customer.io to demonstrate that consent withdrawal effectively stops all tracking including persistence mechanisms before deployment
  • Demand contractual guarantee that customer identities resolved on your site are not synced to or accessible from other Customer.io client deployments
  • Evaluate server-side Customer.io integration to eliminate client-side identity stitching and behavioral collection
  • Assess whether Customer.io's full capability set is necessary or if a simpler marketing automation tool without identity stitching would suffice

Negotiation Leverage

  • Full identity stitching stack (C08+C13+C14) is the most comprehensive in this analysis group — use to justify requirement for complete data architecture disclosure
  • Persistence mechanisms (C13) that survive consent withdrawal create direct GDPR Art. 7(3) and Art. 17 liability — demand technical proof that consent withdrawal terminates all persistent identifiers
  • 60% pre-consent rate across majority of deployments indicates systemic consent implementation failure — require Customer.io to provide consent-gate verification tooling
  • 3-domain tracking infrastructure with cross-domain sync means your customer data traverses multiple endpoints — demand complete sub-processor and data flow documentation
  • 8 behavioral threat codes on a marketing automation platform exceeds reasonable scope — leverage data minimization requirements under GDPR Art. 5(1)(c) to negotiate reduced collection footprint
Runtime Detections

Runtime Detections

8 BTI-C CODES

BLACKOUT observed this vendor's JavaScript executing in a live browser and classified each hostile behavior using our BTI-C (Behavioral Threat Intelligence — Capability) taxonomy. These are not theoretical risks — each code below was triggered by something we watched this vendor's code actually do.

BTI-C01Defeat Device

Evasion infrastructure, auditor bypass

Impact: Evasion infrastructure on a CDP with 8 behavioral codes means Customer.io may present reduced functionality during compliance assessments, concealing the full scope of their identity stitching and persistence capabilities.

BTI-C06Behavioral Biometrics

Keystroke/mouse tracking

Impact: Keystroke and mouse tracking through a marketing automation platform captures micro-behavioral patterns that feed into Customer.io's identity resolution — creating behavioral fingerprints linked to resolved customer identities.

BTI-C07Session Recording

Full session replay

Impact: Full session replay within a CDP means complete customer journeys are captured with identity context. Session recordings linked to known customer identities create comprehensive behavioral dossiers that exceed marketing automation scope.

BTI-C08Cross-Domain Sync

Identity stitching

Impact: Identity stitching across domains means customer identities resolved on your site are correlated with their activity elsewhere. For a CDP, this means your first-party customer data effectively becomes shared data across Customer.io's infrastructure.

BTI-C09Consent Bypass

Ignoring CMP signals

Impact: 60% pre-consent rate means the majority of Customer.io deployments fire their full identity stitching stack before consent. Marketing automation that begins tracking before consent creates per-session regulatory violations at scale.

BTI-C10Fingerprinting

Device identification

Impact: Device fingerprinting enables Customer.io to maintain identity resolution across browsers and devices, creating unified customer profiles that persist beyond individual session or cookie-based identification.

BTI-C13Persistence Mechanisms

Long-lived identifiers

Impact: Long-lived identifiers mean Customer.io maintains identification across sessions even after cookie deletion or consent withdrawal. This creates a fundamental conflict with GDPR Art. 17 right to erasure and Art. 7(3) right to withdraw consent — the persistence mechanism survives the user's privacy choices.

BTI-C14Identity Resolution

PII deanonymization

Impact: PII deanonymization within a CDP means Customer.io resolves anonymous visitors to known identities and maintains that resolution through persistence mechanisms (C13). Once identified, your visitors cannot effectively become anonymous again within Customer.io's system.

IOC Manifest

IOC Manifest

122 INDICATORS

Indicators of compromise across 4 categories. Use for detection rules, CSP policies, or Pi-hole blocklists.

TRACK
*customer.io/_next/static/chunks/*-*.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/webpack-*.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/main-app-*.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/app/(marketing)/layout-*.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/app/(marketing)/page-*.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/app/not-found-*.js*
Tracking script
TRACK
*customer.io/_vercel/insights/script.js*
Tracking script
TRACK
*customer.io/_vercel/speed-insights/script.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/app/demo/layout-*.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/app/(marketing)/pricing/page-*.js*
Tracking script
TRACK
*customer.io/_next/static/chunks/app/demo/page-*.js*
Tracking script
TRACK
*cdp.customer.io/v1/analytics-js/snippet/*/analytics.js*
Tracking script
TRACK
*cdp.customer.io/v1/projects/*/settings*
Tracking script
TRACK
*cdp.customer.io/v1/analytics-js/ajs-destination.js*
Tracking script
TRACK
*cdp.customer.io/v1/analytics-js/420.js*
Tracking script
TRACK
*cdp.customer.io/v1/analytics-js/inAppPlugin.js*
Tracking script
TRACK
assets.customer.io
Tracking script
TRACK
customer.io/_next/static/chunks/webpack-5c474a893a3ed523.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/f5e865f6-4d953f710e802e88.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/3137-9aece613bdcc1a95.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/main-app-cd8cc2aa43060018.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/0e5ce63c-9d0fc12c09b562e9.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/94730671-667dc640e147bd3f.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/bf76e631-4d540d824c92be95.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/1558-81feefeb567cd1e8.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/3983-7afee84c783a732d.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/6161-2d04ae5ba20b0c96.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/6381-4f8df67e00203825.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/2619-d42358635fcd0cfc.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/6003-01c2d249e210a47f.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/9781-efd20184ceba4b84.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/4002-779aba4babb45d15.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/1949-2e10fd2dd1826b1f.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/4640-dafe119828457b08.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/8011-9c9d2202110e89a7.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/3409-aab4bfb48dfe8812.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/5555-281877946b888da3.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/9497-750c0cf21312094a.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/8953-4ca01fde2061bde1.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/8291-0de51708a1a90753.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/7981-577ba43a8d6e9c72.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/2870-fbf7f77b8b9f6945.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/app/(marketing)/page-c1b61ce17083790b.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/app/not-found-069dea6d3ba5b623.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/8983-d2d02585ae6f45a0.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/6107-5c0516ea3ad1e71a.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/app/(marketing)/layout-2eac8600b4a31dd4.js
Auto-extracted from scan
TRACK
customer.io/_vercel/insights/script.js
Auto-extracted from scan
TRACK
customer.io/_vercel/speed-insights/script.js
Auto-extracted from scan
TRACK
cdp.customer.io/v1/analytics-js/snippet/dfa9ca75e8eef28e4712/analytics.min.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/app/(marketing)/pricing/page-4eaff3c841c7d00e.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/app/demo/layout-8c4161f14db9a09e.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/7692-1e0e36a69efa5df3.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/9430-d3fb9733b1e3c448.js
Auto-extracted from scan
TRACK
customer.io/_next/static/chunks/app/demo/page-b1f74a845a0bfc48.js
Auto-extracted from scan
TRACK
cdp.customer.io/v1/analytics-js/ajs-destination.js
Auto-extracted from scan
TRACK
cdp.customer.io/v1/analytics-js/420.js
Auto-extracted from scan
TRACK
cdp.customer.io/v1/analytics-js/inAppPlugin.js
Auto-extracted from scan
Ecosystem

Ecosystem & Supply Chain

Customer.io operates in the customer data platform and marketing automation ecosystem, competing with platforms like Braze, Iterable, and Klaviyo. Their 3-domain tracking infrastructure and cross-domain sync capabilities position them beyond standard marketing automation into identity infrastructure territory. The persistence mechanisms (C13) combined with identity resolution (C14) and cross-domain sync (C08) create what amounts to a distributed identity graph — customer identities resolved on one property persist and synchronize across the Customer.io network. Sites deploying Customer.io typically run it alongside other marketing tools, but Customer.io's identity stitching stack means it functions as the identity backbone connecting those tools.
Loaded By (2)
Evidence

Evidence Artifacts

Artifacts collected during analysis, available with evidence-tier access.

HAR Capture

Complete network capture with all requests and responses

IOC Manifest

135 detection signatures across scripts, domains, cookies, and network endpoints

Vendor Details