Cleanse and Match data with the Match app

The Match app enables businesses to cleanse, match, and resolve customer data without revealing personal information.

Standardize individual data, such as name and address, optionally including email and/or phone, to postal standards, and establish a persistent ID for the individual, household, and address.

This guide provides comprehensive instructions on utilizing the app. It includes steps to:

  • Submit data for processing
  • Check the status of the job
  • Find the output 

Submit data to the app

To submit data to the application, you will first populate the INPUT table, then the REQUESTS table, as described below.

Populate the INPUT table

The first step is to fill in the input table with the PII you would like the app to process. An example of what a user would typically populate is denoted below.

The Match App primarily uses Name and Postal Address data for matching, with Phone as an optional parameter. Only populate the Email if the confidence in its accuracy is high.
Please review the complete list of attributes.

Column Description Must be populated

REQUEST_ID

This field should be populated with a unique id for your batch run. All records in the batch set should have the same value. You will use this ID later to retrieve your output.

YES

RECORD_ID

This field should be populated with a unique id for the record within your batch run. This field will be returned to you on output and will be what you can use to tie a specific output record(s) back to a specific input record.

YES

COUNTRY_CODE

Populate this with US for all records. The app only supports US data. All other records will be discarded.

YES

FIRST_NAME
LAST_NAME

Populate with first and last name of individual respectively. Note that you can also optionally populate the FULL_NAME field if you do not have already parsed names on your data

 

ADDRESS_LINE_1

ADDRESS_LINE_2

CITY

STATE_PROVINCE_CODE

POSTAL_CODE

Populate these fields if you have the address for the individual on your data. Example:

  • 123 MAIN ST
  • APT 1C
  • ITHACA
  • NY
  • 14850

 

PHONE

Populate if you have a phone number for the individual

 

EMAIL_ADDRESS

Populate if you have an email address for the individual

 


Here is an example of inserting data into the input table, populating the fields above, and creating a REQUEST_ID of ‘TESTJOB01’:

INSERT INTO <APPLICATION_NAME>.APP_PUBLIC.INPUT 
(REQUEST_ID, RECORD_ID, COUNTRY_CODE, 
FIRST_NAME, LAST_NAME, ADDRESS_LINE_1, ADDRESS_LINE_2, 
CITY, STATE_PROVINCE_CODE, POSTAL_CODE, PHONE, EMAIL_ADDRESS)
SELECT 
    'TESTJOB01' as REQUEST_ID, RECORD_ID, 'US' as COUNTRY_CODE,
    FIRST_NAME, LAST_NAME, ADDRESS_LINE_1, ADDRESS_LINE_2,
    CITY, STATE_PROVINCE_CODE, POSTAL_CODE, PHONE, EMAIL_ADDRESS
from SAMPLE_INPUT_DATASET;

Populate the REQUESTS table

Once the INPUT table has been populated, the next step to submitting a job is to add a row to the REQUESTS table. This table is monitored by the app and triggers processing when a new row is detected. Below are the columns you will want to populate on this table.
For additional information, refer to the reference documentation.

Column Description
REQUEST_ID Populate with the REQUEST_ID of the job you are submitting
REQUEST_OPTIONS JSON string specifying runtime options
DATE_CREATED Date/Time you are submitting the job. Typically this is the system current time

Here is an example of submitting a job with default options:

INSERT INTO <APPLICATION_NAME>.APP_PUBLIC .REQUESTS (REQUEST_ID,REQUEST_OPTIONS,DATE_CREATED) 
SELECT 'TESTJOB01' as REQUEST_ID, 
null as REQUEST_OPTIONS, 
CURRENT_TIMESTAMP() as DATE_CREATED;

Here is an example of submitting a job with a few runtime parameters turned on:

INSERT INTO <APPLICATION_NAME>.APP_PUBLIC .REQUESTS (REQUEST_ID,REQUEST_OPTIONS,DATE_CREATED) 
SELECT 'TESTJOB01' as REQUEST_ID, 
OBJECT_CONSTRUCT('DSF2','Y','NCOA','Y') as REQUEST_OPTIONS,
CURRENT_TIMESTAMP() as DATE_CREATED;

Monitor the status of a request

After submitting data to the app, verify that the job has been accepted. To do this, locate the app's output view.
For a detailed description of request monitoring status, please refer to the reference documentation.

Monitor the REQUEST_STATUS view

This view provides the status of the job processing in the app. To retrieve the status, query the job records. Below is a sample query:

SELECT * FROM <APPLICATION_NAME>.APP_PUBLIC .REQUEST_STATUS
WHERE REQUEST_ID='TESTJOB01';

After the system detects your job and begins processing, you should see rows and their statuses, including:

  • REJECTED: If you encounter a STATUS of REJECTED, refer to the STATUS_MESSAGE to identify the issue. Correct the issue and resubmit the REQUEST.
  • ACCEPTED: Once a job is accepted, it enters the processing phase. Depending on the data volume, processing can take several hours. Regularly check the REQUEST_STATUS view to monitor job completion or failure.
  • PROCESSING: As your job progresses through various states, the DATE_UPDATED column will reflect that it is still processing.
  • COMPLETED: This means your output is ready to consume. Please refer to the following section on retrieving your output.
  • FAILED: Please contact Support to inquire about the cause of this batch job failure.

Retrieve output

After your job is complete, you can extract the output from the provided tables/views. In the APP_PUBLIC schema within the app, you will find the following, containing the output for your REQUEST_ID. These tables/views contain outputs from the current and previous requests. Use the REQUEST_ID column to retrieve the output for your specific job.
For a detailed description of these outputs, please refer to the reference documentation.

Retrieve your data from the following locations

<APPLICATION_NAME>.APP_PUBLIC.MATCH_OUTPUT

This table/view will contain the output of the matching process to the dentsu.ID Universe and provide you with IDs for the INDIVIDUAL, HOUSEHOLD, and ADDRESS levels.

<APPLICATION_NAME>.APP_PUBLIC.HYGIENE_OUTPUT

This table/view will contain the USPS standardized version of the PII. Note that if you requested NCOA, you may receive two records in the output for a single record in the input, representing both the input and output addresses.

<APPLICATION_NAME>.APP_PUBLIC.HYGIENE_REPORT

This table/view will contain the USPS Hygiene reports, including CASS and NCOA.
To copy the output to a table within your own database, you can use a query similar to the example provided below.

CREATE TABLE mydb.myschema.JOB_TESTJOB01_MATCH_OUTPUT
as SELECT * from <APPLICATION_NAME>.APP_PUBLIC .MATCH_OUTPUT 
where REQUEST_ID='TESTJOB01';