{"id":12759,"date":"2026-09-21T05:42:55","date_gmt":"2026-09-21T12:42:55","guid":{"rendered":"https:\/\/www.serviceobjects.com\/docs\/?page_id=12759"},"modified":"2026-09-21T06:27:31","modified_gmt":"2026-09-21T13:27:31","slug":"nv3-snowflake-guide","status":"publish","type":"page","link":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/","title":{"rendered":"Name Validation 3 &#8211; Quick-Start guide"},"content":{"rendered":"<p><!-- NV3DOCS:START --><\/p>\n<style>\nmain header h1{display:none}\n\/* Fonts + enhancements only. All core styling is inline (survives WP sanitizing). *\/\n@font-face{font-family:\"Museo sans\";font-style:normal;font-weight:300;font-display:swap;src:url(\"https:\/\/www.serviceobjects.com\/wp-content\/uploads\/2021\/05\/MuseoSans-300.woff\") format(\"woff\");}\n@font-face{font-family:\"Museo sans\";font-style:normal;font-weight:500;font-display:swap;src:url(\"https:\/\/www.serviceobjects.com\/wp-content\/uploads\/2021\/05\/MuseoSans_500.woff\") format(\"woff\");}\n@font-face{font-family:\"Museo sans\";font-style:normal;font-weight:700;font-display:swap;src:url(\"https:\/\/www.serviceobjects.com\/wp-content\/uploads\/2021\/05\/MuseoSans_700.woff\") format(\"woff\");}\n.nv3docs-page code{font-family:\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,monospace;font-size:.92em;background:#eef1f8;color:#1b2a63;padding:2px 6px;border-radius:6px;}\n.nv3docs-page pre code{background:none;color:#e7ecff;padding:0;border-radius:0;}\n.nv3docs-page a.nv3docs-link{color:#004E95;}\n.nv3docs-copy:hover{background:rgba(255,255,255,.18) !important;color:#fff !important;}\n.nv3docs-faq summary{list-style:none;}\n.nv3docs-faq summary::-webkit-details-marker{display:none;}\n.nv3docs-faq summary:after{content:\"+\";float:right;font-size:22px;line-height:1;color:#377dff;font-weight:700;}\n.nv3docs-faq details[open] summary:after{content:\"\\2212\";}\n<\/style>\n<div class=\"nv3docs-page\" style=\"margin:0 auto;padding:34px 20px 76px;font-family:'Museo sans','museoSans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:#17072B;line-height:1.65;-webkit-font-smoothing:antialiased;\">\n<p>  <!-- ===================== TITLE (replaces hero) ===================== --><\/p>\n<p style=\"display:inline-block;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#064ea2;margin:0 0 12px;\">Quick-Start Guide<\/p>\n<h1 style=\"font-size:clamp(28px,4.4vw,42px);font-weight:800;line-height:1.15;letter-spacing:-.02em;color:#17072B;margin:0 0 14px;\">Name Validation 3 (NV3) for Snowflake: Quick-Start Guide<\/h1>\n<p style=\"font-size:clamp(16px,1.6vw,19px);color:#5C6077;margin:0 0 20px;max-width:720px;\">From install to your first validated name in under 10 minutes. Validate, classify, and parse names directly in SQL, inside your own Snowflake account.<\/p>\n<div style=\"display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;color:#5C6077;margin:0 0 22px;\">\n    <span style=\"display:inline-flex;align-items:center;gap:7px;\">&#128337; Time to first validated name: under 10 minutes<\/span><br \/>\n    <span style=\"display:inline-flex;align-items:center;gap:7px;\">&#128221; 6 steps, SQL only<\/span><br \/>\n    <span style=\"display:inline-flex;align-items:center;gap:7px;\">&#9989; No credit card required<\/span>\n  <\/div>\n<p>  <a target=\"_blank\" href=\"https:\/\/app.snowflake.com\/marketplace\/listing\/GZ1MJZ4VGDH62\/service-objects-inc-name-validation-classification-parsing-for-snowflake-nv3\" style=\"display:inline-flex;align-items:center;gap:10px;background:#377dff;color:#fff;font-weight:700;font-size:16px;padding:14px 24px;border-radius:12px;text-decoration:none;box-shadow:0 10px 24px rgba(55,125,255,.35);\">Get NV3 on the Snowflake Marketplace &rarr;<\/a><\/p>\n<p>  <!-- ===================== SUMMARY ===================== --><\/p>\n<div style=\"border:1px solid #E6E6E6;border-radius:16px;background:#F7FAFD;padding:22px 24px;margin:28px 0;\">\n<h3 style=\"font-size:19px;font-weight:700;color:#17072B;margin:0 0 10px;\">What this guide covers<\/h3>\n<p style=\"color:#5C6077;margin:0 0 12px;\">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:<\/p>\n<ul style=\"color:#5C6077;margin:0;padding-left:22px;\">\n<li style=\"margin:6px 0;\">Install NV3 from the Snowflake Marketplace and start a free 20 day trial, covering 1,000 name validations with full <code>ValidateName<\/code> output.<\/li>\n<li style=\"margin:6px 0;\">Grant the app the privileges it needs on your own database and schema.<\/li>\n<li style=\"margin:6px 0;\">Run <code>NV3_VALIDATE_NAME<\/code> on a <code>SELECT<\/code> query and specify where the results should be saved.<\/li>\n<li style=\"margin:6px 0;\">Read the classification, confidence score, parsed name components, and notes back in SQL.<\/li>\n<\/ul><\/div>\n<p>  <!-- ===================== BEFORE YOU START ===================== --><\/p>\n<section id=\"before-you-start\" style=\"margin-top:34px;\">\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:0 0 14px;\">Before you start<\/h2>\n<p style=\"margin:0 0 12px;\">You need:<\/p>\n<ul style=\"margin:0 0 12px;padding-left:22px;\">\n<li style=\"margin:6px 0;\">A Snowflake account on a supported cloud and region.<\/li>\n<li style=\"margin:6px 0;\">The <code>ACCOUNTADMIN<\/code> role, or a role that can install a Native App and grant an external access integration.<\/li>\n<li style=\"margin:6px 0;\">A running virtual compute cluster you can use for the session.<\/li>\n<li style=\"margin:6px 0;\">A table containing the names you want to validate, or permission to create one.<\/li>\n<\/ul>\n<\/section>\n<p>  <!-- ===================== STEP 1 ===================== --><\/p>\n<section id=\"step-1\" style=\"border-top:1px solid #eef1f6;margin-top:34px;padding-top:30px;\">\n    <span style=\"display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,#377dff,#004E95);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 18px rgba(55,125,255,.3);\">1<\/span><\/p>\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:12px 0 14px;\">Get the app from the Snowflake Marketplace<\/h2>\n<p style=\"margin:0 0 16px;\">Already installed Name Validation 3 and started your trial? Skip to Step 2.<\/p>\n<p style=\"margin:0 0 16px;\">If not: open the Name Validation 3 listing on the Snowflake Marketplace and select <strong>Try Now<\/strong> to start the free trial.<\/p>\n<p style=\"margin:0 0 16px;\">The trial is for 20 days and includes 1,000 name validations with full output &mdash; including parsed name components, name type, and confidence scoring. No credit card required.<\/p>\n<p style=\"margin:0 0 16px;\">Snowflake will ask you to name the installed application. The examples below use the application schema <code>APP_CODE<\/code> exactly as it appears in the listing&rsquo;s own quick-start examples.<\/p>\n<\/section>\n<p>  <!-- ===================== STEP 2 ===================== --><\/p>\n<section id=\"step-2\" style=\"border-top:1px solid #eef1f6;margin-top:34px;padding-top:30px;\">\n    <span style=\"display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,#377dff,#004E95);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 18px rgba(55,125,255,.3);\">2<\/span><\/p>\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:12px 0 14px;\">Grant the external access integration<\/h2>\n<p style=\"margin:0 0 16px;\">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.<\/p>\n<div style=\"background:#0e1530;border:1px solid #243056;border-radius:10px;margin:16px 0 22px;overflow:hidden;\">\n<div style=\"display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #243056;background:rgba(255,255,255,.03);\">\n        <span style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8ea0d6;font-weight:700;\">SQL<\/span><br \/>\n        <button type=\"button\" class=\"nv3docs-copy\" style=\"background:rgba(255,255,255,.08);border:1px solid #243056;color:#cdd8ff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer;\">Copy<\/button>\n      <\/div>\n<pre style=\"margin:0;padding:16px;overflow-x:auto;\"><code style=\"color:#e7ecff;font-family:Consolas,Menlo,monospace;font-size:13.5px;line-height:1.7;white-space:pre;\">GRANT USAGE ON DATABASE MY_DB\n  TO APPLICATION SERVICE_OBJECTS_NV3_APP;\n\nGRANT USAGE ON SCHEMA MY_DB.PUBLIC\n  TO APPLICATION SERVICE_OBJECTS_NV3_APP;\n\nGRANT CREATE TABLE ON SCHEMA MY_DB.PUBLIC\n  TO APPLICATION SERVICE_OBJECTS_NV3_APP;<\/code><\/pre>\n<\/p><\/div>\n<p style=\"margin:0 0 16px;\">Substitute your own database and schema for <code>MY_DB<\/code> and <code>MY_DB.PUBLIC<\/code>.<\/p>\n<p style=\"margin:0 0 16px;\">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.<\/p>\n<div style=\"border-left:4px solid #377dff;background:#f4f8ff;border-radius:0 10px 10px 0;padding:14px 18px;margin:18px 0;font-size:15px;\"><strong>What this connection does.<\/strong> The app sends name data to the Service Objects API through this one integration, and nothing is stored, logged, or retained by Service Objects. Data is encrypted in transit over HTTPS.<\/div>\n<\/section>\n<p>  <!-- ===================== STEP 3 ===================== --><\/p>\n<section id=\"step-3\" style=\"border-top:1px solid #eef1f6;margin-top:34px;padding-top:30px;\">\n    <span style=\"display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,#377dff,#004E95);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 18px rgba(55,125,255,.3);\">3<\/span><\/p>\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:12px 0 14px;\">Prepare your name data<\/h2>\n<p style=\"margin:0 0 16px;\">You can validate any table containing names. The input should include the following columns. If your table uses different names, create a <code>VIEW<\/code> that maps your columns to these names and pass that query to the procedure.<\/p>\n<div style=\"overflow-x:auto;border:1px solid #E6E6E6;border-radius:10px;margin:16px 0 20px;\">\n<table cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px;\">\n<thead>\n<tr>\n<th style=\"text-align:left;padding:12px 16px;background:#F7FAFD;color:#17072B;font-weight:700;font-size:13px;border-bottom:1px solid #eef1f6;\">Column<\/th>\n<th style=\"text-align:left;padding:12px 16px;background:#F7FAFD;color:#17072B;font-weight:700;font-size:13px;border-bottom:1px solid #eef1f6;\">Required<\/th>\n<th style=\"text-align:left;padding:12px 16px;background:#F7FAFD;color:#17072B;font-weight:700;font-size:13px;border-bottom:1px solid #eef1f6;\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>CONSUMER_ROW_ID<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#e7f6ee;color:#087443;\">Recommended<\/span><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">1<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>FULLNAME<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#fef3e2;color:#b54708;\">Conditional<\/span><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">jonathan r. mcallister jr<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>PREFIX<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#eef1f8;color:#3538cd;\">Optional<\/span><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Ms<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>FIRSTNAME<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#fef3e2;color:#b54708;\">Conditional<\/span><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Robert<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>MIDDLENAME<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#eef1f8;color:#3538cd;\">Optional<\/span><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">A<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>LASTNAME<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#fef3e2;color:#b54708;\">Conditional<\/span><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Smith<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>SUFFIX<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#eef1f8;color:#3538cd;\">Optional<\/span><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Jr<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;vertical-align:top;\"><code>OPTIONS<\/code><\/td>\n<td style=\"padding:12px 16px;vertical-align:top;\"><span style=\"display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;text-transform:uppercase;background:#eef1f8;color:#3538cd;\">Optional<\/span><\/td>\n<td style=\"padding:12px 16px;vertical-align:top;\">&mdash;<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p style=\"margin:0 0 16px;\">Supply a complete name in <code>FULLNAME<\/code>, or supply the parts separately in <code>PREFIX<\/code> through <code>SUFFIX<\/code>. Every column must appear in the <code>SELECT<\/code> statement in the order shown, even when a record has no value for it. Pass an empty string rather than dropping the column.<\/p>\n<p style=\"margin:0 0 16px;\"><code>CONSUMER_ROW_ID<\/code> 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.<\/p>\n<h3 id=\"sample-data\" style=\"font-size:19px;font-weight:700;color:#17072B;margin:24px 0 10px;\">Sample data to test with<\/h3>\n<p style=\"margin:0 0 16px;\">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.<\/p>\n<div style=\"background:#0e1530;border:1px solid #243056;border-radius:10px;margin:16px 0 22px;overflow:hidden;\">\n<div style=\"display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #243056;background:rgba(255,255,255,.03);\">\n        <span style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8ea0d6;font-weight:700;\">SQL<\/span><br \/>\n        <button type=\"button\" class=\"nv3docs-copy\" style=\"background:rgba(255,255,255,.08);border:1px solid #243056;color:#cdd8ff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer;\">Copy<\/button>\n      <\/div>\n<pre style=\"margin:0;padding:16px;overflow-x:auto;\"><code style=\"color:#e7ecff;font-family:Consolas,Menlo,monospace;font-size:13.5px;line-height:1.7;white-space:pre;\">CREATE OR REPLACE TABLE MY_SCHEMA.TEST_NAMES (\n  CONSUMER_ROW_ID INT,\n  FULLNAME        VARCHAR,\n  PREFIX          VARCHAR,\n  FIRSTNAME       VARCHAR,\n  MIDDLENAME      VARCHAR,\n  LASTNAME        VARCHAR,\n  SUFFIX          VARCHAR,\n  OPTIONS         VARCHAR\n);\n\nINSERT INTO MY_SCHEMA.TEST_NAMES VALUES\n  (1, 'jonathan r. mcallister jr', '', '',       '',  '',      '',   ''),\n  (2, 'MARIA DE LA CRUZ',          '', '',       '',  '',      '',   ''),\n  (3, 'Acme Logistics LLC',        '', '',       '',  '',      '',   ''),\n  (4, 'asdfgh qwerty',             '', '',       '',  '',      '',   ''),\n  (5, '',                          '', 'Robert', 'A', 'Smith', '',   '');<\/code><\/pre>\n<\/p><\/div>\n<\/section>\n<p>  <!-- ===================== STEP 4 ===================== --><\/p>\n<section id=\"step-4\" style=\"border-top:1px solid #eef1f6;margin-top:34px;padding-top:30px;\">\n    <span style=\"display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,#377dff,#004E95);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 18px rgba(55,125,255,.3);\">4<\/span><\/p>\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:12px 0 14px;\">Run your first validation<\/h2>\n<p style=\"margin:0 0 16px;\">Call <code>NV3_VALIDATE_NAME<\/code> with two inputs: a <code>SELECT<\/code> query containing the names you want to validate, and the schema and base table name where you want the results written.<\/p>\n<div style=\"background:#0e1530;border:1px solid #243056;border-radius:10px;margin:16px 0 22px;overflow:hidden;\">\n<div style=\"display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #243056;background:rgba(255,255,255,.03);\">\n        <span style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8ea0d6;font-weight:700;\">SQL<\/span><br \/>\n        <button type=\"button\" class=\"nv3docs-copy\" style=\"background:rgba(255,255,255,.08);border:1px solid #243056;color:#cdd8ff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer;\">Copy<\/button>\n      <\/div>\n<pre style=\"margin:0;padding:16px;overflow-x:auto;\"><code style=\"color:#e7ecff;font-family:Consolas,Menlo,monospace;font-size:13.5px;line-height:1.7;white-space:pre;\">CALL SERVICE_OBJECTS_NV3_APP.APP_CODE.NV3_VALIDATE_NAME(\n  'SELECT CONSUMER_ROW_ID, FULLNAME, PREFIX, FIRSTNAME,\n          MIDDLENAME, LASTNAME, SUFFIX, OPTIONS\n   FROM MY_SCHEMA.TEST_NAMES',\n  'MY_DB.PUBLIC.NV3_RESULTS'\n);<\/code><\/pre>\n<\/p><\/div>\n<p style=\"margin:0 0 16px;\">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.<\/p>\n<p style=\"margin:0 0 16px;\">Use the <code>SELECT<\/code> query to control exactly which records are processed. Add a <code>WHERE<\/code> clause or a <code>LIMIT<\/code> when testing the app on a subset of your data.<\/p>\n<div style=\"background:#0e1530;border:1px solid #243056;border-radius:10px;margin:16px 0 22px;overflow:hidden;\">\n<div style=\"display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #243056;background:rgba(255,255,255,.03);\">\n        <span style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8ea0d6;font-weight:700;\">SQL<\/span><br \/>\n        <button type=\"button\" class=\"nv3docs-copy\" style=\"background:rgba(255,255,255,.08);border:1px solid #243056;color:#cdd8ff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer;\">Copy<\/button>\n      <\/div>\n<pre style=\"margin:0;padding:16px;overflow-x:auto;\"><code style=\"color:#e7ecff;font-family:Consolas,Menlo,monospace;font-size:13.5px;line-height:1.7;white-space:pre;\">CALL SERVICE_OBJECTS_NV3_APP.APP_CODE.NV3_VALIDATE_NAME(\n  'SELECT CONSUMER_ROW_ID, FULLNAME, PREFIX, FIRSTNAME,\n          MIDDLENAME, LASTNAME, SUFFIX, OPTIONS\n   FROM MY_SCHEMA.CUSTOMERS\n   LIMIT 100',\n  'MY_DB.PUBLIC.NV3_RESULTS'\n);<\/code><\/pre>\n<\/p><\/div>\n<\/section>\n<p>  <!-- ===================== STEP 5 ===================== --><\/p>\n<section id=\"step-5\" style=\"border-top:1px solid #eef1f6;margin-top:34px;padding-top:30px;\">\n    <span style=\"display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,#377dff,#004E95);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 18px rgba(55,125,255,.3);\">5<\/span><\/p>\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:12px 0 14px;\">Read the results<\/h2>\n<p style=\"margin:0 0 16px;\">Results land in the table path you passed in the call. When the output path is <code>MY_DB.PUBLIC.NV3_RESULTS<\/code>, that is the table to query. There is no generated suffix to look up.<\/p>\n<div style=\"background:#0e1530;border:1px solid #243056;border-radius:10px;margin:16px 0 22px;overflow:hidden;\">\n<div style=\"display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #243056;background:rgba(255,255,255,.03);\">\n        <span style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8ea0d6;font-weight:700;\">SQL<\/span><br \/>\n        <button type=\"button\" class=\"nv3docs-copy\" style=\"background:rgba(255,255,255,.08);border:1px solid #243056;color:#cdd8ff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer;\">Copy<\/button>\n      <\/div>\n<pre style=\"margin:0;padding:16px;overflow-x:auto;\"><code style=\"color:#e7ecff;font-family:Consolas,Menlo,monospace;font-size:13.5px;line-height:1.7;white-space:pre;\">SELECT * FROM MY_DB.PUBLIC.NV3_RESULTS;<\/code><\/pre>\n<\/p><\/div>\n<h3 style=\"font-size:19px;font-weight:700;color:#17072B;margin:24px 0 10px;\">What the results include<\/h3>\n<p style=\"margin:0 0 16px;\">These are the columns you act on. The full response carries considerably more, and a developer will see all of it in testing.<\/p>\n<div style=\"overflow-x:auto;border:1px solid #E6E6E6;border-radius:10px;margin:16px 0 24px;\">\n<table cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px;\">\n<thead>\n<tr>\n<th style=\"text-align:left;padding:12px 16px;background:#F7FAFD;color:#17072B;font-weight:700;font-size:13px;border-bottom:1px solid #eef1f6;\">Column<\/th>\n<th style=\"text-align:left;padding:12px 16px;background:#F7FAFD;color:#17072B;font-weight:700;font-size:13px;border-bottom:1px solid #eef1f6;\">What it tells you<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>CONSUMER_ROW_ID<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Your original row identifier, for joining back to source.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_ISVALIDNAME<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Whether the input reads as a real name at all.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_CLASSIFICATION<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">What the input actually is: a person name, a business, a dictionary word, or garbage.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_CONFIDENCE<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">How confident the service is in the result for this record.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_TEXTIN<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">The name exactly as you supplied it.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_TEXTOUT<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">The cleaned and standardized name.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_PARSEDNAME_FIRST<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Parsed given name.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_PARSEDNAME_MIDDLE<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Parsed middle name or initial.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_PARSEDNAME_LAST<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">Parsed surname, with multi part surnames kept intact.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\"><code>NAMERESULT_NOTES<\/code><\/td>\n<td style=\"padding:12px 16px;border-bottom:1px solid #eef1f6;vertical-align:top;\">What was observed or changed for this record.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;vertical-align:top;\"><code>NAMERESULT_WARNINGS<\/code><\/td>\n<td style=\"padding:12px 16px;vertical-align:top;\">Anything the service wants to flag, including negative sentiment.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p style=\"margin:0 0 16px;\">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 <code>ValidateName<\/code> documentation.<\/p>\n<div style=\"border-left:4px solid #377dff;background:#f4f8ff;border-radius:0 10px 10px 0;padding:14px 18px;margin:18px 0;font-size:15px;\"><strong>How the decision is made.<\/strong> Name Validation 3 uses machine learning to assess and classify the input rather than checking it against a fixed list. That is why it can distinguish a real name it has never seen from a business, a dictionary word, or keyboard junk, and why it returns alternate interpretations when a name can be read more than one way.<\/div>\n<p style=\"margin:0 0 16px;\">Join the results back to your source data to see the before and after together:<\/p>\n<div style=\"background:#0e1530;border:1px solid #243056;border-radius:10px;margin:16px 0 22px;overflow:hidden;\">\n<div style=\"display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #243056;background:rgba(255,255,255,.03);\">\n        <span style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8ea0d6;font-weight:700;\">SQL<\/span><br \/>\n        <button type=\"button\" class=\"nv3docs-copy\" style=\"background:rgba(255,255,255,.08);border:1px solid #243056;color:#cdd8ff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer;\">Copy<\/button>\n      <\/div>\n<pre style=\"margin:0;padding:16px;overflow-x:auto;\"><code style=\"color:#e7ecff;font-family:Consolas,Menlo,monospace;font-size:13.5px;line-height:1.7;white-space:pre;\">SELECT s.FULLNAME,\n       r.NAMERESULT_CLASSIFICATION,\n       r.NAMERESULT_TEXTOUT,\n       r.NAMERESULT_CONFIDENCE\nFROM MY_SCHEMA.TEST_NAMES s\nJOIN MY_DB.PUBLIC.NV3_RESULTS r\n  ON s.CONSUMER_ROW_ID = r.CONSUMER_ROW_ID;<\/code><\/pre>\n<\/p><\/div>\n<p style=\"margin:0 0 16px;\">A common first pass is to separate the records you can trust from the ones a person should look at:<\/p>\n<div style=\"background:#0e1530;border:1px solid #243056;border-radius:10px;margin:16px 0 22px;overflow:hidden;\">\n<div style=\"display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #243056;background:rgba(255,255,255,.03);\">\n        <span style=\"font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8ea0d6;font-weight:700;\">SQL<\/span><br \/>\n        <button type=\"button\" class=\"nv3docs-copy\" style=\"background:rgba(255,255,255,.08);border:1px solid #243056;color:#cdd8ff;font-size:12px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer;\">Copy<\/button>\n      <\/div>\n<pre style=\"margin:0;padding:16px;overflow-x:auto;\"><code style=\"color:#e7ecff;font-family:Consolas,Menlo,monospace;font-size:13.5px;line-height:1.7;white-space:pre;\">SELECT *\nFROM MY_DB.PUBLIC.NV3_RESULTS\nWHERE NAMERESULT_CLASSIFICATION &lt;&gt; 'Person'\n   OR NAMERESULT_ISVALIDNAME = FALSE;<\/code><\/pre>\n<\/p><\/div>\n<\/section>\n<p>  <!-- ===================== STEP 6 ===================== --><\/p>\n<section id=\"step-6\" style=\"border-top:1px solid #eef1f6;margin-top:34px;padding-top:30px;\">\n    <span style=\"display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(150deg,#377dff,#004E95);color:#fff;font-weight:800;font-size:15px;box-shadow:0 8px 18px rgba(55,125,255,.3);\">6<\/span><\/p>\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:12px 0 14px;\">Use the output in your workflows<\/h2>\n<p style=\"margin:0 0 16px;\">With validated results in a Snowflake table, you can:<\/p>\n<ul style=\"margin:0 0 16px;padding-left:22px;\">\n<li style=\"margin:6px 0;\">Join validated names back to your source table by row ID.<\/li>\n<li style=\"margin:6px 0;\">Filter on the classification to separate people from businesses, dictionary words, and junk before the data reaches a campaign or a CRM sync.<\/li>\n<li style=\"margin:6px 0;\">Route records on the notes and warnings: accept, flag for manual review, or suppress.<\/li>\n<li style=\"margin:6px 0;\">Feed standardized, parsed names into downstream pipelines, matching logic, or ML models.<\/li>\n<li style=\"margin:6px 0;\">Schedule recurring validation by running the procedure from a Snowflake task.<\/li>\n<\/ul>\n<\/section>\n<p>  <!-- ===================== FAQ ===================== --><\/p>\n<section id=\"faq\" class=\"nv3docs-faq\" style=\"border-top:1px solid #eef1f6;margin-top:34px;padding-top:30px;\">\n<h2 style=\"font-size:clamp(23px,2.6vw,29px);font-weight:700;color:#17072B;letter-spacing:-.02em;margin:0 0 14px;\">Frequently asked questions<\/h2>\n<details name=\"nv3docs-faq\" style=\"border:1px solid #E6E6E6;border-radius:10px;margin:12px 0;background:#fff;overflow:hidden;\">\n<summary style=\"cursor:pointer;padding:16px 20px;font-weight:700;color:#17072B;\">What does the NV3 free trial include?<\/summary>\n<div style=\"padding:0 20px 18px;color:#5C6077;\">1,000 name validations over 20 days with full <code>ValidateName<\/code> output. No credit card is required, and there are no automatic charges when the trial ends.<\/div>\n<\/details>\n<details name=\"nv3docs-faq\" style=\"border:1px solid #E6E6E6;border-radius:10px;margin:12px 0;background:#fff;overflow:hidden;\">\n<summary style=\"cursor:pointer;padding:16px 20px;font-weight:700;color:#17072B;\">Which Snowflake regions are supported?<\/summary>\n<div style=\"padding:0 20px 18px;color:#5C6077;\">AWS US East (N. Virginia), AWS US East (Ohio), AWS US West (Oregon), and Azure Central US (Iowa), among others listed on the Marketplace.<\/div>\n<\/details>\n<details name=\"nv3docs-faq\" style=\"border:1px solid #E6E6E6;border-radius:10px;margin:12px 0;background:#fff;overflow:hidden;\">\n<summary style=\"cursor:pointer;padding:16px 20px;font-weight:700;color:#17072B;\">Does Service Objects store or retain my name data?<\/summary>\n<div style=\"padding:0 20px 18px;color:#5C6077;\">No. NV3 uses a single external access integration to reach the Service Objects API, and no data is stored, logged, or retained. You grant the integration explicitly and can revoke it at any time.<\/div>\n<\/details>\n<details name=\"nv3docs-faq\" style=\"border:1px solid #E6E6E6;border-radius:10px;margin:12px 0;background:#fff;overflow:hidden;\">\n<summary style=\"cursor:pointer;padding:16px 20px;font-weight:700;color:#17072B;\">What if my table columns are named differently?<\/summary>\n<div style=\"padding:0 20px 18px;color:#5C6077;\">Create a <code>VIEW<\/code> that maps them to the expected names, then pass that <code>SELECT<\/code> query to <code>NV3_VALIDATE_NAME<\/code>.<\/div>\n<\/details>\n<details name=\"nv3docs-faq\" style=\"border:1px solid #E6E6E6;border-radius:10px;margin:12px 0;background:#fff;overflow:hidden;\">\n<summary style=\"cursor:pointer;padding:16px 20px;font-weight:700;color:#17072B;\">Can I pass first and last name separately?<\/summary>\n<div style=\"padding:0 20px 18px;color:#5C6077;\">Yes. Supply a complete name in <code>FULLNAME<\/code>, or supply the parts in <code>PREFIX<\/code>, <code>FIRSTNAME<\/code>, <code>MIDDLENAME<\/code>, <code>LASTNAME<\/code> and <code>SUFFIX<\/code>. Columns you do not use still have to appear in the query, with an empty string as the value.<\/div>\n<\/details>\n<details name=\"nv3docs-faq\" style=\"border:1px solid #E6E6E6;border-radius:10px;margin:12px 0;background:#fff;overflow:hidden;\">\n<summary style=\"cursor:pointer;padding:16px 20px;font-weight:700;color:#17072B;\">Where do the results go?<\/summary>\n<div style=\"padding:0 20px 18px;color:#5C6077;\">To the exact table path you pass as the second argument. Query that table directly. Note that the AV3 app behaves differently and creates a timestamped table, so do not carry the AV3 pattern across to NV3.<\/div>\n<\/details>\n<details name=\"nv3docs-faq\" style=\"border:1px solid #E6E6E6;border-radius:10px;margin:12px 0;background:#fff;overflow:hidden;\">\n<summary style=\"cursor:pointer;padding:16px 20px;font-weight:700;color:#17072B;\">Can I schedule validation to run automatically?<\/summary>\n<div style=\"padding:0 20px 18px;color:#5C6077;\">Yes. Run the procedure from a Snowflake task to validate on a schedule.<\/div>\n<\/details>\n<\/section>\n<\/div>\n<p><!-- ================= JSON-LD: HowTo + FAQPage + Breadcrumb (SEO \/ LLM) ================= --><br \/>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"HowTo\",\n      \"name\": \"Validate names in Snowflake with Service Objects NV3\",\n      \"description\": \"Install Name Validation 3 (NV3) from the Snowflake Marketplace, grant external access, run NV3_VALIDATE_NAME, and read classification, confidence, and parsed names - your first validated name in under 10 minutes.\",\n      \"totalTime\": \"PT10M\",\n      \"tool\": [{ \"@type\": \"HowToTool\", \"name\": \"Snowflake account in a supported region\" }],\n      \"supply\": [{ \"@type\": \"HowToSupply\", \"name\": \"A table of names (or the provided sample data)\" }],\n      \"step\": [\n        { \"@type\": \"HowToStep\", \"position\": 1, \"name\": \"Get the app from the Snowflake Marketplace\", \"text\": \"Open the Name Validation 3 listing on the Snowflake Marketplace and select Try Now to start the free 20-day trial (1,000 validations, no credit card).\", \"url\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide#step-1\" },\n        { \"@type\": \"HowToStep\", \"position\": 2, \"name\": \"Grant the external access integration\", \"text\": \"Grant the application usage on your database and schema and create-table on the schema, then grant the single external access integration NV3 uses to reach the Service Objects API. No data is stored, logged, or retained by Service Objects.\", \"url\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide#step-2\" },\n        { \"@type\": \"HowToStep\", \"position\": 3, \"name\": \"Prepare your name data\", \"text\": \"Provide a table with a name in FULLNAME, or the parts in PREFIX, FIRSTNAME, MIDDLENAME, LASTNAME and SUFFIX, plus CONSUMER_ROW_ID and OPTIONS. Every column appears in the SELECT in order. Map different column names with a VIEW.\", \"url\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide#step-3\" },\n        { \"@type\": \"HowToStep\", \"position\": 4, \"name\": \"Run your first validation\", \"text\": \"Call SERVICE_OBJECTS_NV3_APP.APP_CODE.NV3_VALIDATE_NAME with a SELECT query and the output table path where results are written.\", \"url\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide#step-4\" },\n        { \"@type\": \"HowToStep\", \"position\": 5, \"name\": \"Read the results\", \"text\": \"Query the output table for the name classification, confidence, cleaned name, parsed first\/middle\/last, notes, and warnings. Separate people from businesses, dictionary words, and junk with the classification.\", \"url\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide#step-5\" },\n        { \"@type\": \"HowToStep\", \"position\": 6, \"name\": \"Use the output in your workflows\", \"text\": \"Join results back by row ID, filter and route by classification, notes, and warnings, feed parsed names into downstream pipelines, and schedule recurring validation with a Snowflake task.\", \"url\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide#step-6\" }\n      ]\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        { \"@type\": \"Question\", \"name\": \"What does the NV3 free trial include?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"1,000 name validations over 20 days with full ValidateName output. No credit card is required, and there are no automatic charges when the trial ends.\" } },\n        { \"@type\": \"Question\", \"name\": \"Which Snowflake regions are supported?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"AWS US East (N. Virginia), AWS US East (Ohio), AWS US West (Oregon), and Azure Central US (Iowa), among others listed on the Marketplace.\" } },\n        { \"@type\": \"Question\", \"name\": \"Does Service Objects store or retain my name data?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"No. NV3 uses a single external access integration to reach the Service Objects API, and no data is stored, logged, or retained. You grant the integration explicitly and can revoke it at any time.\" } },\n        { \"@type\": \"Question\", \"name\": \"What if my table columns are named differently?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Create a VIEW that maps them to the expected names, then pass that SELECT query to NV3_VALIDATE_NAME.\" } },\n        { \"@type\": \"Question\", \"name\": \"Can I pass first and last name separately?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Yes. Supply a complete name in FULLNAME, or supply the parts in PREFIX, FIRSTNAME, MIDDLENAME, LASTNAME and SUFFIX. Columns you do not use still have to appear in the query, with an empty string as the value.\" } },\n        { \"@type\": \"Question\", \"name\": \"Where do the results go?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"To the exact table path you pass as the second argument. Query that table directly. Note that the AV3 app behaves differently and creates a timestamped table, so do not carry the AV3 pattern across to NV3.\" } },\n        { \"@type\": \"Question\", \"name\": \"Can I schedule validation to run automatically?\", \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Yes. Run the procedure from a Snowflake task to validate on a schedule.\" } }\n      ]\n    },\n    {\n      \"@type\": \"BreadcrumbList\",\n      \"itemListElement\": [\n        { \"@type\": \"ListItem\", \"position\": 1, \"name\": \"Home\", \"item\": \"https:\/\/www.serviceobjects.com\/\" },\n        { \"@type\": \"ListItem\", \"position\": 2, \"name\": \"Docs\", \"item\": \"https:\/\/www.serviceobjects.com\/docs\/\" },\n        { \"@type\": \"ListItem\", \"position\": 3, \"name\": \"Snowflake\", \"item\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/\" },\n        { \"@type\": \"ListItem\", \"position\": 4, \"name\": \"Name Validation 3 quick start\", \"item\": \"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\" }\n      ]\n    }\n  ]\n}\n<\/script><\/p>\n<p><!-- ================= Copy-to-clipboard helper ================= --><br \/>\n<script>\n(function () {\n  var root = document.querySelector('.nv3docs-page');\n  if (!root) return;\n  root.addEventListener('click', function (e) {\n    var btn = e.target.closest('.nv3docs-copy');\n    if (!btn) return;\n    var block = btn.parentElement.parentElement;\n    var code = block && block.querySelector('code');\n    if (!code) return;\n    var done = function () {\n      btn.textContent = 'Copied';\n      setTimeout(function () { btn.textContent = 'Copy'; }, 1600);\n    };\n    if (navigator.clipboard && navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(code.innerText).then(done).catch(done);\n    } else {\n      var ta = document.createElement('textarea');\n      ta.value = code.innerText; document.body.appendChild(ta); ta.select();\n      try { document.execCommand('copy'); } catch (err) {}\n      document.body.removeChild(ta); done();\n    }\n  });\n})();\n<\/script><br \/>\n<!-- NV3DOCS:END --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Name Validation 3 (NV3) is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly in SQL \u2014 no exports, CSVs, or re-imports required. This quick start covers installing NV3 from the Snowflake Marketplace, granting the app access to your database and schema, running NV3_VALIDATE_NAME against a SELECT query, and reading back classification, confidence score, parsed name components, and notes.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":12736,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12759","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Name Validation 3 - Quick-Start guide<\/title>\n<meta name=\"description\" content=\"Name Validation 3 (NV3) is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly in SQL \u2014 no exports, CSVs, or re-imports required. This quick start covers installing NV3 from the Snowflake Marketplace, granting the app access to your database and schema, running NV3_VALIDATE_NAME against a SELECT query, and reading back classification, confidence score, parsed name components, and notes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Name Validation 3 - Quick-Start guide\" \/>\n<meta property=\"og:description\" content=\"Name Validation 3 (NV3) is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly in SQL \u2014 no exports, CSVs, or re-imports required. This quick start covers installing NV3 from the Snowflake Marketplace, granting the app access to your database and schema, running NV3_VALIDATE_NAME against a SELECT query, and reading back classification, confidence score, parsed name components, and notes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-21T13:27:31+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/\",\"name\":\"Name Validation 3 - Quick-Start guide\",\"isPartOf\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#website\"},\"datePublished\":\"2026-09-21T12:42:55+00:00\",\"dateModified\":\"2026-09-21T13:27:31+00:00\",\"description\":\"Name Validation 3 (NV3) is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly in SQL \u2014 no exports, CSVs, or re-imports required. This quick start covers installing NV3 from the Snowflake Marketplace, granting the app access to your database and schema, running NV3_VALIDATE_NAME against a SELECT query, and reading back classification, confidence score, parsed name components, and notes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Snowflake\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/snowflake\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Name Validation 3 &#8211; Quick-Start guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#website\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.serviceobjects.com\/docs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#organization\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"contentUrl\":\"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"width\":2560,\"height\":1440,\"caption\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\"},\"image\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Name Validation 3 - Quick-Start guide","description":"Name Validation 3 (NV3) is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly in SQL \u2014 no exports, CSVs, or re-imports required. This quick start covers installing NV3 from the Snowflake Marketplace, granting the app access to your database and schema, running NV3_VALIDATE_NAME against a SELECT query, and reading back classification, confidence score, parsed name components, and notes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/","og_locale":"en_US","og_type":"article","og_title":"Name Validation 3 - Quick-Start guide","og_description":"Name Validation 3 (NV3) is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly in SQL \u2014 no exports, CSVs, or re-imports required. This quick start covers installing NV3 from the Snowflake Marketplace, granting the app access to your database and schema, running NV3_VALIDATE_NAME against a SELECT query, and reading back classification, confidence score, parsed name components, and notes.","og_url":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/","og_site_name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","article_modified_time":"2026-09-21T13:27:31+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/","url":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/","name":"Name Validation 3 - Quick-Start guide","isPartOf":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#website"},"datePublished":"2026-09-21T12:42:55+00:00","dateModified":"2026-09-21T13:27:31+00:00","description":"Name Validation 3 (NV3) is a Snowflake Native App from Service Objects that validates, classifies, and parses names directly in SQL \u2014 no exports, CSVs, or re-imports required. This quick start covers installing NV3 from the Snowflake Marketplace, granting the app access to your database and schema, running NV3_VALIDATE_NAME against a SELECT query, and reading back classification, confidence score, parsed name components, and notes.","breadcrumb":{"@id":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/nv3-snowflake-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.serviceobjects.com\/docs\/"},{"@type":"ListItem","position":2,"name":"Snowflake","item":"https:\/\/www.serviceobjects.com\/docs\/snowflake\/"},{"@type":"ListItem","position":3,"name":"Name Validation 3 &#8211; Quick-Start guide"}]},{"@type":"WebSite","@id":"https:\/\/www.serviceobjects.com\/docs\/#website","url":"https:\/\/www.serviceobjects.com\/docs\/","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","description":"","publisher":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.serviceobjects.com\/docs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.serviceobjects.com\/docs\/#organization","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","url":"https:\/\/www.serviceobjects.com\/docs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/","url":"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","contentUrl":"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","width":2560,"height":1440,"caption":"Service Objects | Contact, Phone, Email Verification | Data Quality Services"},"image":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/12759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/comments?post=12759"}],"version-history":[{"count":7,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/12759\/revisions"}],"predecessor-version":[{"id":12770,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/12759\/revisions\/12770"}],"up":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/12736"}],"wp:attachment":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/media?parent=12759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}