Quick-Start Guide
Name Validation 3 (NV3) for Snowflake: Quick-Start Guide
From install to your first validated name in under 10 minutes. Validate, classify, and parse names directly in SQL, inside your own Snowflake account.
📝 6 steps, SQL only
✅ No credit card required
Get NV3 on the Snowflake Marketplace →
What this guide covers
Name Validation 3 is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly from SQL, without exports, CSV files, or re-imports. In this quick start you will:
- Install NV3 from the Snowflake Marketplace and start a free 20 day trial, covering 1,000 name validations with full
ValidateNameoutput. - Grant the app the privileges it needs on your own database and schema.
- Run
NV3_VALIDATE_NAMEon aSELECTquery and specify where the results should be saved. - Read the classification, confidence score, parsed name components, and notes back in SQL.
Before you start
You need:
- A Snowflake account on a supported cloud and region.
- The
ACCOUNTADMINrole, or a role that can install a Native App and grant an external access integration. - A running virtual compute cluster you can use for the session.
- A table containing the names you want to validate, or permission to create one.
Get the app from the Snowflake Marketplace
Already installed Name Validation 3 and started your trial? Skip to Step 2.
If not: open the Name Validation 3 listing on the Snowflake Marketplace and select Try Now to start the free trial.
The trial is for 20 days and includes 1,000 name validations with full output — including parsed name components, name type, and confidence scoring. No credit card required.
Snowflake will ask you to name the installed application. The examples below use the application schema APP_CODE exactly as it appears in the listing’s own quick-start examples.
Grant the external access integration
After installation, grant the application permission to reach the database and schema you are working in, and to create the table it writes results to.
Substitute your own database and schema for MY_DB and MY_DB.PUBLIC.
NV3 reaches the Service Objects validation service through a single external access integration. This is the only external connection the app requires. You can see exactly what it accesses in the app manifest, and you can revoke it at any time.
Prepare your name data
You can validate any table containing names. The input should include the following columns. If your table uses different names, create a VIEW that maps your columns to these names and pass that query to the procedure.
| Column | Required | Example |
|---|---|---|
CONSUMER_ROW_ID |
Recommended | 1 |
FULLNAME |
Conditional | jonathan r. mcallister jr |
PREFIX |
Optional | Ms |
FIRSTNAME |
Conditional | Robert |
MIDDLENAME |
Optional | A |
LASTNAME |
Conditional | Smith |
SUFFIX |
Optional | Jr |
OPTIONS |
Optional | — |
Supply a complete name in FULLNAME, or supply the parts separately in PREFIX through SUFFIX. Every column must appear in the SELECT statement in the order shown, even when a record has no value for it. Pass an empty string rather than dropping the column.
CONSUMER_ROW_ID is your unique identifier for each record. It is carried through to the output so you can join validated results back to your source table.
Sample data to test with
If you want to test before using your own data, create a sample table. These records break in the ways real name data breaks: casing and punctuation noise, a multi part surname, a business name sitting in a person name column, keyboard junk, and a name supplied already split.
Run your first validation
Call NV3_VALIDATE_NAME with two inputs: a SELECT query containing the names you want to validate, and the schema and base table name where you want the results written.
NV3 processes the selected records and writes the results to exactly the table you name in the second argument. If that table already exists, the call replaces its contents, so use a distinct output path when you want to keep an earlier run.
Use the SELECT query to control exactly which records are processed. Add a WHERE clause or a LIMIT when testing the app on a subset of your data.
Read the results
Results land in the table path you passed in the call. When the output path is MY_DB.PUBLIC.NV3_RESULTS, that is the table to query. There is no generated suffix to look up.
What the results include
These are the columns you act on. The full response carries considerably more, and a developer will see all of it in testing.
| Column | What it tells you |
|---|---|
CONSUMER_ROW_ID |
Your original row identifier, for joining back to source. |
NAMERESULT_ISVALIDNAME |
Whether the input reads as a real name at all. |
NAMERESULT_CLASSIFICATION |
What the input actually is: a person name, a business, a dictionary word, or garbage. |
NAMERESULT_CONFIDENCE |
How confident the service is in the result for this record. |
NAMERESULT_TEXTIN |
The name exactly as you supplied it. |
NAMERESULT_TEXTOUT |
The cleaned and standardized name. |
NAMERESULT_PARSEDNAME_FIRST |
Parsed given name. |
NAMERESULT_PARSEDNAME_MIDDLE |
Parsed middle name or initial. |
NAMERESULT_PARSEDNAME_LAST |
Parsed surname, with multi part surnames kept intact. |
NAMERESULT_NOTES |
What was observed or changed for this record. |
NAMERESULT_WARNINGS |
Anything the service wants to flag, including negative sentiment. |
Each record also carries the parsed prefix and suffix, up to two alternate interpretations of the name with their own confidence and parse, flags for whether the first and last names were found and whether they are common, lists of similar and related names, and a status message. Full field descriptions are in the ValidateName documentation.
Join the results back to your source data to see the before and after together:
A common first pass is to separate the records you can trust from the ones a person should look at:
Use the output in your workflows
With validated results in a Snowflake table, you can:
- Join validated names back to your source table by row ID.
- Filter on the classification to separate people from businesses, dictionary words, and junk before the data reaches a campaign or a CRM sync.
- Route records on the notes and warnings: accept, flag for manual review, or suppress.
- Feed standardized, parsed names into downstream pipelines, matching logic, or ML models.
- Schedule recurring validation by running the procedure from a Snowflake task.
Frequently asked questions