ChangelogBook a demoSign up

Lookup table usage

Identity resolution is only available on Business tier plans. You can use it with or without Customer Studio.

After Hightouch runs identity resolution (IDR) on your graph, Hightouch outputs lookup tables into your warehouse. These tables live in the hightouch_planner schema (or the schema override for your source) and can be used across your downstream workflows.

While the hightouch_planner schema is generally managed internally by Hightouch, the IDR output tables described on this page are intentionally created for your use. You can safely query them directly, reference them in downstream ETL pipelines, or register them as dbt sources. For long-term stability, we recommend creating a view or derived table that references these outputs rather than transforming them in place.

Your marketing team can use these tables for paid campaigns, your sales team for deduplicating outreach efforts, or your data science team for fraud detection.

The output of IDR can also helpful in constructing models or parent models in Hightouch.

Hightouch creates the following output tables:

  1. A RESOLVED table (<output_prefix>_resolved) that labels each row from your input tables with a HT_ID representing a profile. This table tells you all the input rows associated with a profile by its HT_ID. The SOURCE is the slug of an input model. The PRIMARY_KEY is the primary key value from the input model. The LATEST_TIMESTAMP is the timestamp of the row from the input model.
HT_IDSOURCEPRIMARY_KEYLATEST_TIMESTAMP
ht1earl-s-ecommerce-events12024-08-01 12:00:00.000
ht1earl-s-ecommerce-events22024-08-01 12:05:00.000
ht1earl-s-ecommerce-events32024-08-01 12:10:00.000
ht1earl-s-ecommerce-events42024-08-01 12:15:00.000
ht5earl-s-ecommerce-events52024-08-01 12:20:00.000
ht5earl-s-ecommerce-events62024-08-01 12:25:00.000
ht5earl-s-ecommerce-events72024-08-01 12:30:00.000
ht5earl-s-ecommerce-events82024-08-01 12:35:00.000
ht9earl-s-ecommerce-events92024-08-01 12:40:00.000
ht9earl-s-ecommerce-events102024-08-01 12:45:00.000
  1. A RESOLVED_IDENTIFIERS table (<output_prefix>_resolved_identifiers) includes all the unique identifiers associated with each profile. Each row represents a unique identifiers associated with a profile. COUNT represents the number of times the identifier was seen in an input row, including updated rows if the same row gets seen multiple times due to updates. IDENTIFIER is the type of identifier. VALUE is the identifier value for the profile.
HT_IDIDENTIFIERVALUEINITIAL_ROW_PKINITIAL_ROW_SOURCEFIRST_TIMESTAMPLAST_TIMESTAMPCOUNT
ht1user_iduser_0034earl-s-ecommerce-events2024-08-01 12:15:00.0002024-08-01 12:15:00.0001
ht1anonymous_idanon_1251earl-s-ecommerce-events2024-08-01 12:00:00.0002024-08-01 12:15:00.0004
ht5user_iduser_0048earl-s-ecommerce-events2024-08-01 12:35:00.0002024-08-01 12:35:00.0001
ht5anonymous_idanon_1265earl-s-ecommerce-events2024-08-01 12:20:00.0002024-08-01 12:35:00.0004
ht9anonymous_idanon_1279earl-s-ecommerce-events2024-08-01 12:40:00.0002024-08-01 12:45:00.0002
  1. A UNRESOLVED table (<output_prefix>_unresolved) lists all input rows Hightouch couldn't process because the primary key values weren't unique within the originating model.

  2. GOLDEN_RECORD table (<output_prefix>_golden_records):
    (Optional) Only appears if you enable Golden Record in your IDR project's settings. Golden Record flattens all possible values of each identifier into either:

    • A single "best" or "primary" value based on survivorship rules (most recent, most frequent, or source priority)
    • An array of all unique values when using the array survivorship rule

    See our Golden Record doc for more details about survivorship rules and array fields.

    Each row corresponds to a single HT_ID (one identity). For example, a row might look like:

    {
      "ht_id": "ht1",
      "most_recent_email": "user@example.com",                -- using most recent survivorship
      "all_phone_numbers": ["123-456-7890", "098-765-4321"],  -- using array survivorship
      "primary_user_id": "user_123"                           -- using source priority survivorship
    }
    

State tables

Hightouch also uses the same hightouch_planner schema to manage state tables for each identity graph. These tables, typically prefixed with IDR_... or IDR_BACKUP_..., are used internally to support incremental runs and maintain graph consistency.

These internal tables are managed by Hightouch and shouldn’t be queried directly. Only the output tables (e.g., <output_prefix>_resolved, <output_prefix>_resolved_identifiers, <output_prefix>_golden_records, etc.) are intended for external use.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: Nov 11, 2025

On this page
  • State tables

Was this page helpful?