Skip to content

Concept map· 6 connected terms

Customer Data Platform(CDP)

Also called: Unified customer profile · Customer data hub · Audience data platform

In one line
A system that unifies customer profiles and events from many sources into one view and syncs audience segments to channels such as WhatsApp.

Reviewed

What is a customer data platform (CDP)?

A customer data platform (CDP) is software that collects customer data from many systems — website and app events, the online store, point-of-sale, the CRM, support tools and messaging channels — and resolves it into one persistent profile per person. Each profile holds identifiers, attributes such as city, language and lifetime value, consent state and a timeline of events. The CDP turns those profiles into audience segments and syncs them to channels such as WhatsApp, email, SMS and ad platforms.

On WhatsApp the profile has to be keyed on something WhatsApp understands: the phone number, normalised to the E.164 Phone Number Format (+919876543210). WhatsApp's own wa_id is the same digits without the plus sign, so the two map one-to-one. Since 2026 some users can chat through a username instead of sharing their number, and webhooks then identify them by a Business-Scoped User ID (BSUID), which is scoped to your business portfolio. A CDP that stores only phone numbers cannot match those users.

A CDP sits beside the WhatsApp Business Platform, not inside it. It does not send messages: it pushes a segment — say "bought in the last 90 days, opted in to WhatsApp marketing, lives in Pune" — to a campaign tool or your own code, which sends approved templates. The value comes from closing the loop: delivered, read and failed statuses, replies, button taps and Click-to-WhatsApp ad referrals flow back into the profile, so the next segment is built on how people actually responded.

It is easy to confuse with CRM Integration. A CRM is the agent-facing system where sales and support teams see the chat, own deals and log tickets; connecting it to WhatsApp is about people working conversations. A CDP is the marketing and analytics data layer underneath: it feeds segmentation, RFM Segmentation and personalisation, and keeps one consent record that every team's tools respect.

Key takeaways

  • A customer data platform (CDP) merges records and events from every source into one profile per person and syncs segments to channels.
  • For WhatsApp the identity key is the phone number in E.164 format, plus a BSUID for username users who have not shared a number.
  • A CDP decides who is in an audience; WhatsApp opt-in and marketing preferences decide who may actually be messaged.
  • Feed WhatsApp statuses, replies and clicks back into the CDP so segments reflect engagement, not just purchases.
  • Unlike a CRM, which agents work in every day, a CDP is a data layer for marketing and analytics.

Is this the same customer? Normalise the number first

E.164 is the one format phone APIs agree on: a +, the country code, then the number — no spaces, no leading 0.

Try

Any format works: spaces, dashes, brackets, a 0 or 00 prefix.

Identity key the CDP merges on
+919876543210
Digits
12
For wa.me
919876543210
  • Dropped the leading 0 — a trunk prefix used only for domestic calls.
  • Assumed India (+91): a 10-digit number starting 6–9 is an Indian mobile.
  • Valid E.164: a + followed by 12 digits, nothing else.
Phone numbers arrive from the store, the website and WhatsApp webhooks in different shapes. Pick one, or type your own, to see the E.164 key a CDP merges profiles on.

Example: One customer, three phone formats

A Hyderabad electronics chain holds the same customer in its point-of-sale system as 09876543210, in its online store as +91 98765 43210 and in a WhatsApp reply webhook as 919876543210. Before the CDP she counted as three people and received three Diwali offers. After E.164 normalisation the records merge into one profile with her store and online purchases, the WhatsApp opt-in she ticked at checkout and her recent read of a warranty reminder. The festive segment now includes her once, the template greets her by name and mentions the television she bought, and her quick-reply tap is written back as an engagement event for the next campaign.

How does a customer data platform (CDP) work?

  1. Collect records and events

    Connect the sources: website and app events, orders, store purchases, CRM fields and WhatsApp webhooks. Each record arrives with whatever identifiers that system holds — an email address, a loyalty ID, or a phone number written any way at all.

  2. Resolve identity

    Normalise every phone number to E.164 at ingestion, then merge records that share a key into one profile. Keep BSUIDs as their own identifier type: a BSUID cannot be turned back into a phone number, and it is regenerated if the user changes number.

  3. Keep consent per channel

    Record each WhatsApp opt-in with its source and timestamp, and update it from STOP replies and from the user_preferences webhook, which reports when someone stops or resumes your marketing from inside WhatsApp.

  4. Build and sync segments

    Define audiences from attributes and behaviour, then sync them to the tool that sends WhatsApp templates. Filter out anyone without a valid WhatsApp opt-in at sync time, not after the campaign has gone out.

  5. Write results back

    Store statuses, replies, quick-reply taps and conversions as events on the profile, keyed by wamid, so engagement shapes the next segment and contacts who keep failing or ignoring messages drop out.

A customer data platform (CDP) in code

// Forward WhatsApp webhook events to a CDP as profile events.
// "cdp" stands for your CDP's server-side SDK or HTTP ingestion API.
import { cdp } from "./cdp-client.js";
const toE164 = (waId) => "+" + waId; // wa_id is E.164 without the "+"
export async function forwardToCdp(body) {
for (const entry of body.entry ?? []) {
for (const change of entry.changes ?? []) {
const v = change.value ?? {};
for (const s of v.statuses ?? []) { // sent, delivered, read, failed
await cdp.track({
userId: toE164(s.recipient_id),
event: "whatsapp_message_" + s.status,
properties: { wamid: s.id, error_code: s.errors?.[0]?.code ?? null },
timestamp: new Date(Number(s.timestamp) * 1000).toISOString(),
});
}
for (const m of v.messages ?? []) { // replies, button taps, ad referrals
await cdp.track({
userId: toE164(m.from),
event: "whatsapp_reply_received",
properties: {
type: m.type,
in_reply_to: m.context?.id ?? null, // wamid of the campaign message
ad_id: m.referral?.source_id ?? null, // set for Click-to-WhatsApp ads
},
timestamp: new Date(Number(m.timestamp) * 1000).toISOString(),
});
}
// Username users arrive with a BSUID instead of a number:
// store it as a separate identifier rather than forcing it into userId.
}
}
}

Statuses and replies become events on the right profile, so the next segment knows who read, replied or failed.

Why does a customer data platform (CDP) matter?

WhatsApp rewards relevance and punishes noise: untargeted marketing gets ignored or blocked, and blocks pull down a number's quality rating. A CDP is how a business stops sending one template to everyone — it supplies the segments targeting needs, the attributes that fill template variables, and one consent state shared by every team. Without it, data lives in silos, audience counts are inflated by duplicates, and the same customer can be messaged by three different tools in one afternoon.

Key facts at a glance

A customer data platform (CDP): key facts and limits

Core jobs
Collect, unify, segment, activate
WhatsApp identity key
Phone number in E.164 (wa_id = same digits, no +)
Username users
BSUID, scoped to the business portfolio
Consent signals
Opt-in record, STOP replies, user_preferences webhook
Events from WhatsApp
Statuses, replies, button taps, ad referrals
Sends messages itself?
No — it syncs audiences to a sending tool

Common wrong turns

Common mistakes with a customer data platform (CDP)

  • Matching on unnormalised numbers

    098765…, +91 98765… and 919876… look like three people to a naive merge. Normalise to E.164 before identity resolution runs, or you will double-message customers and overstate audience size.

  • Treating segment membership as permission

    Being in a segment is not consent to WhatsApp marketing. Filter on a recorded WhatsApp opt-in at sync time and honour user_preferences stops — Meta does not deliver marketing to someone who has stopped it, and the send fails with error 131050.

  • Syncing in one direction only

    A CDP that only pushes audiences never learns who ignored, blocked or failed. Send statuses and replies back, and exclude contacts whose recent messages all failed or went unread.

  • Copying full profiles into every tool

    Each extra copy of personal data adds breach and DPDP exposure. Send each destination only the fields it needs — usually the phone number and the values for the template variables.

Good practice

Best practices for a customer data platform (CDP)

  • Make E.164 the one phone format across every system that feeds the CDP.
  • Store the opt-in source, wording and timestamp with the consent flag, not just yes or no.
  • Refresh WhatsApp segments close to send time so recent opt-outs and purchases are respected.
  • Log the wamid of every send so replies and statuses join back to the right campaign.

CDP FAQs

What is the difference between a CDP and a CRM?+
A CRM is where people work with customers; a CDP is where customer data is unified for marketing and analytics. The CRM holds deals, tickets and conversations that agents act on, while the CDP collects events from every system, resolves identity and syncs segments to channels. Many businesses run both and sync key fields between them.
Can a CDP send WhatsApp messages directly?+
Usually not; it syncs audiences to a tool that sends through the WhatsApp Business Platform. That tool, or your own code, sends approved templates through the Cloud API or the Marketing Messages API for WhatsApp. Even when a CDP bundles a WhatsApp connector, the message still goes through Meta's API and its rules on templates, opt-in and pricing.
What identifier should a CDP use for WhatsApp contacts?+
The phone number in E.164 format, plus a BSUID for people who chat through a username. WhatsApp's `wa_id` is the E.164 number without the plus sign, so the two map one-to-one. A BSUID is scoped to your business portfolio and changes if the user changes number, so store it as a separate identifier.
Does a CDP make WhatsApp marketing DPDP-compliant?+
No; it can help, but compliance depends on how consent is collected and used. India's DPDP Act expects consent that is free, specific, informed and unambiguous, with easy withdrawal, and most obligations phase in by 2027. A CDP helps by holding one consent record per person and pushing withdrawals to every channel quickly.

See InfiQ pricing

Try it on the official WhatsApp Business API

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.