ID5 Match Preview - Snowflake Native Application

Getting started: Match test on Snowflake

This guide walks you through everything needed to run a match test against the ID5 identity universe via the ID5 Match Preview Snowflake native app. The match test is free and gives you a coverage report showing how many of your emails (plain text or HEMs) we can resolve to digital identifiers including ID5 IDs.

What you need before we start

  • An active Snowflake account (any edition)

  • A table in Snowflake containing your HEMs, formatted as described below

    • 1M+ active B2C emails would be recommended as an ideal size, but this is a guideline, not a hard threshold. 

  • The table is available in AWS / eu-central-1

  • A warehouse (compute) available to run queries — medium size is recommended for most use cases

The ID5 Match Preview app is publicly listed on the Snowflake Marketplace — no prior access request needed. You can find and install it directly.


Step 1: Prepare Your HEM Table

Create a table in your Snowflake account with the following structure:

ColumnTypeDescription
id

VARCHAR


The hashed email (SHA-256 hash of the lowercased email address)


id_type


VARCHAR


HASHED_EMAIL or EMAIL


Example

SQL

CREATE TABLE my_database.my_schema.hem_input (
    id      VARCHAR NOT NULL,
    id_type VARCHAR NOT NULL
);

INSERT INTO my_database.my_schema.hem_input VALUES
    ('b642b4217b34b1e8d3bd915fc65c4452...', 'HASHED_EMAIL'),
    ('e99a18c428cb38d5f260853678922e03...', 'HASHED_EMAIL');

Important formatting notes:

  • Emails must be lowercased before hashing
  • Hashing algorithm must be SHA-256
  • In case Emails are not hashed the app can hash them before onboarding,  please ensure Emails are normalized as described here.
  • Both id and id_type columns must be NOT NULL
  • Duplicate rows are automatically handled by the app

Step 2 — Install the match preview app

  1. In Snowflake, navigate to Marketplace (left-hand menu)
  2. Search for "ID5 Data Onboarding: Match Preview"
  3. Select ID5 Data Onboarding: Match Preview
  4. Click Get
  5. Accept the permissions prompt — this allows the app to access the resources you explicitly grant in the next step
  6. Give the app a name (e.g. MATCH_PREVIEW) and confirm installation

The ID5 listing terms are accepted upon installing the application from the Snowflake Marketplace. 



Step 3 — Set Up Permissions (References)

After installation, you need to grant the app access to your warehouse and input table. Go to Apps > Select Match Preview App > Permissions:


Alternatively run the following in a Snowflake worksheet:

SQL

-- Grant the app access to a warehouse
CALL MATCH_PREVIEW.core.register_reference(
    'COMPUTE_WAREHOUSE', 'ADD',
    SYSTEM$REFERENCE('WAREHOUSE', 'MY_WAREHOUSE', 'PERSISTENT', 'USAGE'));
-- replace MY_WAREHOUSE with your warehouse name

-- Grant the app read access to your HEM table
CALL MATCH_PREVIEW.core.register_reference(
    'MATCH_PREVIEW_INPUT_REF', 'ADD',
    SYSTEM$REFERENCE('TABLE', 'MY_DATABASE.MY_SCHEMA.HEM_INPUT', 'PERSISTENT', 'SELECT'));
-- replace MY_DATABASE.MY_SCHEMA.HEM_INPUT with your table path

This step is required for privacy reasons — the app can only access resources you explicitly allow. It only requests read (SELECT) access to your input table; your data is never retained inside the app.

Step 4 — Run the match test

Run the match procedure with your chosen parameters:

SQL

CALL MATCH_PREVIEW.core.match_preview(
    'ID',         -- name of your id column
    'ID_TYPE',    -- name of your id_type column
    ARRAY_CONSTRUCT('CURRENT', 'INDIVIDUAL')  -- match methods (see options below)
);


Match method options (at least one required):

Match MethodDescription
CURRENTDirect one-to-one HEM → ID5 ID mapping (last observed HEM to ID5 ID connection)
INDIVIDUALExpands to all ID5 IDs linked to the same individual via the ID5 graph





The results combine all selected methods. The procedure runs asynchronously — it returns immediately with an execution ID and processes in the background. A few hundred thousand HEMs on a medium warehouse typically completes in a few minutes.

Step 5 — Check Status

SQL

CALL MATCH_PREVIEW.core.match_preview_status();

This returns the status of the most recent run: SCHEDULED, COMPLETED, or FAILED, along with timestamps and the execution ID.


Step 6 — View Results

Once the status shows COMPLETED:

SQL

SELECT * FROM MATCH_PREVIEW.core.match_preview_output;

The output returns the amount and percentage of unique HEMs that have been matched to at least one ID5 ID as well as the total matched ID5 Ids.

Example output:

{
"matched_id5Ids": {
"total_matched_id5_ids": 2000,
"matched_input_hems": 1000,
"matched_input_hems_perc": 50
}
}

Snowflake compute costs (Client-Side)

Running the match test incurs a small Snowflake compute cost on your side (not charged by ID5). Based on our testing, we recommend starting with a medium warehouse. If you encounter resource errors, increase the warehouse size.


Data Sharing and Telemetry

To help us support you, the app shares aggregated telemetry with ID5. By accepting the app's permissions during installation, you agree to this sharing. The telemetry includes:

  • Number of input HEMs and matched ID5 IDs

  • Which match methods were used

  • Execution duration and status

  • Your Snowflake account and organisation identifier (to attribute the run to your account)

ID5 cannot see your individual HEM values. Your raw input data stays within your Snowflake account at all times and is never retained by the app. Telemetry data is kept for 14 days on the ID5 side.


Troubleshooting

If the match preview does not return a result, you can check the following options to troubleshoot.


IssueWhat to check
App not visible in MarketplaceSearch for "ID5 Match Preview" — if it still doesn't appear, check with your Snowflake admin that you have Marketplace access enabled
Job fails immediately

Check that the warehouse and input table references are correctly registered (Step 3)

Check if your input data is stored and in  AWS / eu-central-1. If not, ask your Snowflake representative to replicate the data to the target destination. 


Low or zero matchesVerify emails are lowercased and normalised according to ID5 requirements before hashing, and that id_type is set to 'HEM'
Job takes a long timeConsider increasing the warehouse size

If you're stuck, share the execution ID with your ID5 account manager and we can check the error log on our side.