# Customer Data Platform

> How graph8 stores, unifies, and activates customer data — contacts, companies, events, audiences, enrichment, and identity resolution.

Source: https://docs.graph8.com/data/customer-data-platform/

graph8's Customer Data Platform (CDP) is the foundation of the entire system. Every contact, company, website event, and behavioral signal flows into the CDP — where it's unified, enriched, and made available for activation across all channels.

## How It Works

Data enters the CDP from multiple sources:

| Source | What It Captures |
|--------|-----------------|
| **Website tracking** | Page views, form submissions, custom events, session data |
| **CRM imports** | Contacts, companies, deals, and activities from HubSpot, Salesforce, or Pipedrive |
| **CSV uploads** | Bulk contact and company imports |
| **Enrichment providers** | Work emails, phone numbers, company data, technographics |
| **Sequences** | Email opens, clicks, replies, bounces, call outcomes |
| **Form submissions** | Captured from any form on your website via the tracking script |
| **Intent signals** | Keyword searches and topic-level buying intent |

All data is stored per-organization with full isolation — your data is never shared or mixed with other accounts.

## Contacts

Every person in your database is a unified contact record with fields across multiple categories.

### Personal Information

| Field | Example |
|-------|---------|
| **Name** | First, middle, last |
| **Gender** | Male, Female |
| **Age** | Derived from date of birth |
| **About** | Short bio or summary |

### Contact Details

| Field | Example |
|-------|---------|
| **Work email** | Primary business email |
| **Personal emails** | Additional email addresses |
| **Mobile phone** | Cell number |
| **Direct phone** | Direct dial at work |
| **Additional phones** | Other numbers on file |

### Job Information

| Field | Example |
|-------|---------|
| **Job title** | VP of Marketing |
| **Department** | Marketing |
| **Seniority level** | VP, Director, Manager, Individual Contributor |
| **Job category** | Functional category |
| **Start date** | When they started the role |
| **Job change** | Flag for recent role changes |

### Location

City, state, country, zip code, and full address — both personal and work locations.

### Social Profiles

LinkedIn URL, LinkedIn headline, Facebook URL, Twitter URL, and social connection count.

### Confidence Scoring

Each contact has a **confidence score** (0–100) indicating data quality, plus a separate **email confidence score** for deliverability.

### Record Sources

Contacts are tagged by how they entered the system:

| Source | Meaning |
|--------|---------|
| **graph8** | Enriched from graph8's data network |
| **Custom** | Uploaded by your team (CSV, manual) |
| **HubSpot** | Synced from HubSpot CRM |
| **Salesforce** | Synced from Salesforce CRM |
| **Pipedrive** | Synced from Pipedrive CRM |

## Companies

Every company in your database has a unified record with firmographic data.

| Category | Fields |
|----------|--------|
| **Basics** | Name, description, domain, website, logo |
| **Location** | Address, city, state, country, zip code |
| **Business** | Founded year, employee count, revenue range, industry, NAICS/SIC codes |
| **Social** | LinkedIn URL, LinkedIn followers, Facebook, Twitter, Crunchbase |
| **Stock** | Exchange, ticker symbol |
| **Scoring** | Company fit score |

### Company Size Categories

| Category | Employee Count |
|----------|---------------|
| **Startup** | Under 10 |
| **Small** | 10–50 |
| **Medium** | 50–200 |
| **Large** | 200–1,000 |
| **Enterprise** | Over 1,000 |

## Identity Resolution

graph8 resolves anonymous website visitors to known contacts and companies using a multi-layer identification system.

### Layer 1 — Email Matching

When a visitor's hashed email is available (from form submissions, login events, or email clicks), graph8 matches it against its B2B and B2C data network to return a full contact profile.

### Layer 2 — B2B and B2C Data Network

graph8 maintains a large-scale contact database with:

- **B2B contacts** — business emails, direct phone numbers, company information, job history
- **B2C contacts** — personal emails, demographics (age range, income, homeowner status)

Visitors matched through Layer 1 are enriched with this data automatically.

### Layer 3 — IP-to-Company Resolution

When a visitor can't be matched by email, graph8 falls back to IP-based company identification. The visitor's IP is matched against known company IP ranges, revealing which company they belong to — even if the individual remains anonymous.

### Layer 4 — Anonymous ID Persistence

Every visitor gets a persistent anonymous ID stored in their browser. This ID links all their sessions together over time, so when they eventually identify themselves (via a form submission or email click), graph8 retroactively connects all their prior visits to their contact record.

### Resolution Output

The result is a unified profile that ties together:

- The visitor's contact record (if identified)
- Their company
- All website sessions and page views
- Form submissions
- Email engagement history
- Intent signals

## Event Tracking

graph8's event store captures every interaction from your website and applications.

### Event Types

| Event | What It Captures |
|-------|-----------------|
| **Page views** | URL, title, referrer, time on page |
| **Custom events** | Any event you define (button clicks, signups, feature usage) |
| **Form submissions** | All form fields, form identifier, submission timestamp |
| **Identify** | User identification with traits (email, name, etc.) |
| **Group** | Account or company grouping |

### Event Context

Every event includes rich contextual data:

| Context | Fields |
|---------|--------|
| **Page** | Path, title, URL, referrer, host, search params |
| **User** | Email (if identified), anonymous ID, user agent, locale |
| **Device** | Screen dimensions, screen density |
| **Geo** | Country, city, region, latitude/longitude, timezone, ISP |
| **UTM** | Campaign, source, medium, term, content |

Events are stored in graph8's analytics engine — optimized for fast aggregation across millions of rows. Each organization's events are fully isolated.

## Audiences

Audiences let you segment your contacts and companies for targeting.

### Audience Types

| Type | What It Contains |
|------|-----------------|
| **Contacts** | People lists |
| **Companies** | Company lists |
| **Suppressions** | Exclusion lists (do-not-contact) |
| **Deals** | Deal records from CRM |
| **Leads** | Lead records from CRM |

### Static vs. Dynamic

- **Static audiences** — a fixed list of contacts. Built from CSV uploads, CRM imports, or manual selection. The list only changes when you add or remove contacts.
- **Dynamic audiences** — rules-based segments that auto-update. Define criteria (industry, seniority, location, etc.) and graph8 continuously re-evaluates contacts against those rules.

### Audience Sources

Audiences can be populated from:

- graph8 prospecting and enrichment
- CSV uploads
- Form submissions
- Website visitors
- Keyword and intent signals
- CRM sync (HubSpot, Salesforce, Pipedrive)

## Enrichment

graph8's enrichment engine fills in missing contact and company data using a waterfall approach.

### How Waterfall Enrichment Works

1. You select a field to enrich (work email, phone number, company domain, etc.)
2. You configure a provider sequence — an ordered list of data providers to try
3. graph8 calls the first provider. If it returns data, enrichment stops. If not, it tries the next provider.
4. This continues until data is found or all providers are exhausted.

This approach maximizes coverage while controlling cost — cheaper providers can be tried first, with premium providers as fallback.

### Enrichment Providers

graph8 integrates with multiple data providers:

| Provider | Capabilities |
|----------|-------------|
| **Apollo** | Email, phone, job title, company data |
| **Hunter** | Email discovery, domain verification |
| **Clearbit** | Email, company firmographics |
| **ZeroBounce** | Email validation, bounce detection |
| **Lusha** | Contact info, company data |
| **Prospeo** | Email finder, company insights |
| **Leadmagic** | Verified B2B contact data |
| **RocketReach** | Professional profiles, contact info |
| **DropContact** | Contact validation |
| **BuiltWith** | Technology stack detection |

### Auto-Enrichment

Audiences can be configured with auto-enrichment. When new contacts are added — via form submission, CRM sync, or import — graph8 automatically triggers enrichment jobs in the background. Events are batched and processed every 30 seconds with up to 500 records per job.

## Data Activation

The CDP isn't just storage — it powers every outbound action in graph8.

| Activation | How CDP Data Is Used |
|------------|---------------------|
| **Sequences** | Contact data personalizes emails, selects channels, and determines timing |
| **Dialer** | Phone numbers and company context are available during calls |
| **Inbox** | Full contact and company profiles appear alongside conversations |
| **Signals** | Intent data and website behavior trigger alerts and workflows |
| **Studio** | Contact and company attributes inform AI campaign generation |
| **Analytics** | Event data powers all dashboards and reports |

### Real-Time Triggers

The CDP fires events in real time when contacts are created or updated. These triggers can:

- Start enrichment jobs automatically
- Add contacts to sequences based on criteria
- Update CRM records via sync
- Generate audit trail entries

> **Tip:**
> Build dynamic audiences early — they keep your targeting criteria fresh as new contacts enter the system. Combine enrichment with auto-enrichment to ensure every new contact has complete data before they enter a sequence.

## Next Steps

- [Data →](https://docs.graph8.com/data/prospecting/) — Search and build prospect lists
- [Signals →](https://docs.graph8.com/signals/overview/) — Detect buying intent from website visitors
- [Analytics →](https://docs.graph8.com/analytics/overview/) — Track website and campaign performance
