Skip to content

Identity Resolution & Enrichment

Identity resolution answers a simple question: who is this record really about?

Enrichment answers the next one: what would be useful to know about them?

Infinite Audience does both in one workflow. Bring the customer data you already have. We connect it to our identity graph, return a durable Infinite Audience Graph Person ID for strong matches, and add the attributes you choose.

Your recordNames, addresses, emails, phones, DOB, or a person ID
DeterministicExact, verified connections in the graphProbabilisticWeighs every detail when data is messySpatialReal-world geography and commuting distance
Resolved personPerson ID, match level, confidence, and enrichment

Each step runs only for records that earlier steps have not yet matched to a specific person.

  • A single customer record from a form, checkout, or sales workflow.
  • A small group of records that needs an immediate answer.
  • A full customer file in CSV, JSON, JSONL, or Avro format.
  • Customer records already living in HubSpot, Shopify, Klaviyo, or another connected system.

You do not need a perfect file. Clear column names help, and the platform gives you a chance to review how they were understood before matching begins.

Inputs

The signals that matter

Names, postal addresses, emails, phones, date of birth, or a person ID you already received. Email and phone can arrive raw or pre-hashed.

Multiple values

Every email, phone, and address

Send all of a customer’s emails, phones, and addresses on one record. Each one is tried as its own match point, so no signal is left behind.

Large files

Ready for your data lake

Upload a large list as up to 50 shards straight from your warehouse or lake export, compressed or not, as one logical job.

Real customer data has nicknames, typos, name changes, recent moves, and work addresses. Every record runs through three matching approaches in order, moving on until it reaches a confident person-level answer or runs out of approaches.

Exact match

Deterministic

Verified links in the graph, with smart handling of nicknames, address formatting variations, and last-name changes confirmed by date of birth.

Messy data

Probabilistic

Weighs every detail together when no exact link exists: typos, unit formats, hyphenated surnames, and a mistyped ZIP code. One hard conflict rules a candidate out.

Spatial engine

Spatial

Uses real-world geography to find the right person nearby when text matching cannot, such as a move across an apartment complex or a work address.

Every match is labeled with what it confirms:

Level What it confirms
I · Individual The specific person.
H · Household The home and family the record belongs to.
D · Digital A known email or phone, without a confirmed name.
S · Spatial The person, placed by the spatial engine.
A · Address The physical address only.

Each match also carries a confidence score. When the engine is not confident enough, it leaves the record unmatched instead of guessing.

When addresses differ on paper, geography reveals the ground truth. Traditional fuzzy matching drops records when street numbers or ZIP codes change. The spatial engine evaluates physical distance, neighborhood density, name frequency, middle names, and date of birth to locate individuals who moved locally or submitted an office address.

Default

Residential

Finds matches traditional fuzzy matching misses—such as moves between buildings in an apartment complex, local moves, or neighboring ZIP codes.

Workplace

Work

Connects a person you only know at a workplace, such as a lead form or event signup, to their home profile within commuting distance.

Mixed lists

Auto

Checks each address. Commercial addresses get the commuting search, and homes stay in their neighborhood. No need to split your list.

File exports preserve your original columns alongside match diagnostics and the enrichment attributes you requested. Real-time API responses return results keyed by row_id so you can join them back to your original records.

A resolved identity

Strong matches receive a durable, organization-safe Infinite Audience Graph Person ID you can use in future workflows.

Match details & confidence

Matched records include a match_level, specific match_type, and a 0–1 match_confidence score. A direct Person ID refresh preserves the prior match level, which may be empty.

The attributes you chose

Select a ready-made attribute bundle or pick individual attributes from the catalog.

A complete result

File exports keep every source row; real-time API results use row_id to connect back to your source records. Matched records gain intelligence; unmatched records stay visible with consistent derived keys.

  • Identity
  • Audiences & Segments
  • Demographics & Household
  • Financial & Property
  • Media & Behavioral
  • Geography
  • Land Context
  • Census Demographics & Socioeconomic
  • Health
  • Environment & Risk
  • Economic Indicators
  • Brand Proximity
  • Neighborhood Lifestyle
  • Transportation & Mobility

A resolved identity is more useful when it travels with the customer. Keep the returned Infinite Audience Graph Person ID and Infinite Audience can recognize that identity in later supported workflows without repeating the full matching step.

That makes refreshes faster, makes customer history easier to connect, and lets one good match support work across the platform and your integrations.

The ID is salted for your organization: the same resolved person receives a consistent ID inside your workspace and a different ID in another company’s workspace. Unmatched rows may receive a derived ID for continuity, but derived IDs are not resolved people within IAG.

Both ways of matching run the same engine with complete matching parity between real-time and file workflows.

Up to 100 records per call

Real time

Built for forms, checkouts, and CRM events. A 100-record call averaged about 10 seconds in testing, which works out to about 100 ms per record.

Thousands to tens of millions

Files at scale

Built for full customer lists. In testing, 1 million records matched in about 8 minutes and 10 million in about 17 minutes.

  1. Upload the file. Give the match a friendly name so it is easy to find later.
  2. Review the columns. Confirm the suggested mapping and skip anything that should not be used.
  3. Choose enrichment attributes. Pick an attribute bundle or select individual attributes.
  4. Let the match run. Follow progress in the platform activity rail.
  5. Use the result. Download the enriched file or keep the matched identities in the platform.