Preparing your data
Get your data ready before connecting: formatting rules, entity relationships, PII handling, and the readiness checklist.
Well-prepared data is the difference between a system that decides well and one that guesses. Clean identifiers raise match rates, complete fields keep good accounts in the ranking, and correct links between people and companies make every score sharper.
This page is about readiness. What tables you need is covered in Required tables; connecting a specific tool is covered in Your stack.
Formatting rules
The matching keys have to be clean, because signals only attach to clean identifiers.
jane@acme.com (lowercase, trimmed)
Jane@Acme.com
Domain
acme.com
https://www.acme.com/
Phone
+14155551234 (E.164)
(415) 555-1234
Timestamp
ISO 8601 or Unix
01/15/2024 10:30 AM
Typical normalization, run in your warehouse before connecting:
UPDATE contacts SET email = LOWER(TRIM(email)) WHERE email IS NOT NULL;
UPDATE accounts SET domain = LOWER(
REGEXP_REPLACE(REGEXP_REPLACE(domain, '^https?://(www\.)?', ''), '/.*$', '')
);Uniqueness and duplicates
Primary keys must be unique: duplicate IDs cause scoring errors downstream.
SELECT account_id, COUNT(*) FROM accounts
GROUP BY account_id HAVING COUNT(*) > 1;
-- should return 0 rowsDedupe examples that rely on ctid are Postgres-only. On Snowflake, BigQuery, Databricks, or Redshift, dedupe with a window function (ROW_NUMBER() OVER (PARTITION BY account_id ORDER BY updated_at DESC)) instead.
Link people to companies
Every contact should carry an account_id. Orphan contacts still score, but they cannot contribute to account-level decisions.
Handling PII
You choose how each sensitive field is handled at ingestion:
Hash: one-way SHA-256, still usable for matching. The default for email, IP, and device IDs.
Mask: partial visibility for operators (
***-***-1234).Encrypt: reversible, for fields authorized users need to read back.
Exclude: not ingested at all.
Hashing is consistent within your workspace, so identity resolution and ad-platform matching work without exposing the raw value. Full details live in Security model.
Readiness checklist
When the list is green, connect your sources (start with your CRM; see CRM sync), then watch Data health after you connect.
Outside the app
Readiness checks can be run outside the app via API and MCP as well.
Last updated