Identity Resolution

Merge sessions, devices, and identifiers into unified profiles — your way, with YAML.

💡 What is Identity Resolution?

When events come in — whether from anonymous sessions, logged-in users, or mobile numbers — Growcado helps you decide who’s who and what belongs together.

You define the identifiers that matter (like user_id, anonymous_id, email, mobile_number) and set up a priority system. Growcado builds a flexible identity graph based on your rules.

No assumptions. No vendor magic. Just your config, your logic.

🧩 Why it matters

  • Tie anonymous sessions to logged-in behavior

  • Resolve data across devices (web, mobile, app)

  • Handle cases like user account merges or mobile-first users

  • Keep your tracking consistent and human-centric

⚙️ Config: Defining Customer Identifiers

In your YAML config, you’ll define which identifiers Growcado should look for — and how to prioritize them if multiple exist.

Here’s an example:

customer_identifiers:
  - name: user_id
    path: user_id
    priority: 10

  - name: email
    path: context_traits_bsn
    priority: 20

  - name: mobile_number
    path: context_traits_mobile_number
    priority: 30

  - name: anonymous_id
    path: anonymous_id
    priority: 40

🧠 How it works:

  • Path: Tells Growcado where to find this value in the event payload

  • Name: Used for identity graph linking — e.g., user_id, mobile_number

  • Priority: Lower number = higher authority. If two events conflict, the one with higher-priority ID wins.

🧪 Example in action

Let’s walk through a real-world identity resolution story. Three events, three contexts — one unified customer profile.

🧍 Event 1: Anonymous visit

{
  "anonymous_id": "anon_123",
  "event": "Page Viewed"
}

The user is browsing anonymously. No login, no traits — just a session.


🙋 Event 2: Logs in with email

{
  "user_id": "user_789",
  "anonymous_id": "anon_123",
  "context_traits_email": "sarah@example.com",
  "event": "User Logged In"
}

Now they log in. Growcado sees both user_id and the original anonymous_id, and links the two. Bonus: we now know their email, too!


📨 Event 3: New anonymous session, joins newsletter

{
  "anonymous_id": "anon_456",
  "context_traits_email": "sarah@example.com",
  "event": "Newsletter Signup"
}

A few days later, they return (on a different device or cleared cookies), so they have a new anonymous ID. But they enter the same email as before.

Growcado detects the matching context_traits_email and connects this session to the existing profile — even without user_id.

📋 Final Result: One Unified Identity — Multiple Views in Your Warehouse

After these events are resolved, Growcado generates the following materialized outputs directly in your data warehouse:

🔗 identity_graph

A table that shows clusters of connected identifiers — for example, all the user_id, anonymous_id, and email values that belong to the same person.

cluster_id
identifier_type
identifier_value

cluster_001

user_id

user_789

cluster_001

anonymous_id

anon_123

cluster_001

anonymous_id

anon_456

cluster_001

email

sarah@example.com

👤 unified_profile

One row per resolved profile — this is your master view of each customer.

profile_id
is_anonymous
first_seen_at
last_seen_at
identifier_count

e602c827d11

false

2024-10-17 15:20:09

2024-10-17 16:06:52

3

a45436cd9992

true

2024-10-18 16:39:03

2024-10-18 16:54:41

1

🔍 identity_lookup

Need to find someone fast by any ID? This table gives you instant profile lookup by any known identifier.

identifier_type
identifier_value
profile_id

user_id

user_789

profile_abc

email

sarah@example.com

profile_abc

anonymous_id

anon_456

profile_abc

🎟 enriched_events

Your original events — but now with a profile_id attached, so you can join or segment with ease.

event
timestamp
profile_id
...

Page Viewed

2025-05-10T10:15Z

profile_abc

...

User Logged In

2025-05-10T10:20Z

profile_abc

...

Newsletter Signup

2025-05-12T08:44Z

profile_abc

...

Last updated