Snowflake integration overview
Cloud-based data platform enabling data storage, analysis, and sharing.
This page outlines how you are going to connect your Clay data to your Snowflake warehouse.
Snowflake Overview
Snowflake in Clay allows you to manage rows in your Snowflake database.
You can use the Snowflake integration to:
- Lookup rows
- Upsert rows
- Insert rows
- Lookup rows
Setting up the Snowflake integration
To set up the Snowflake and Clay integration, follow these steps:
- Visit the Settings page and navigate to Connections.
- Click + Add Connection and select Snowflake the menu
- Enter the following credentials and name your account key
- Username: Username of Snowflake account you want to connect
- Password: Password of Snowflake account you want to connect
- Native SSO URL Endpoint: This should be in the form of https://{{account_name}}.{{company_name}}.com
Setting up Snowflake as a source
You can use Snowflake as a source for a new or existing table.
To set up Snowflake as a source:
Step 1: Select Snowflake source option.
To create a new table, select + Create new and set Snowflake as the source. To add Snowflake to an existing table, open the table and select Actions > Import to configure Snowflake as a data source.
Step 2: Select the Snowflake account you want to use.
Step 3: Fill out Auth fields to connect to Snowflake’s database.
Snowflake Account ID
: Click here for steps to find it. Replace the period with a dash after pasting.
Database Name
: Provide the name of the database you wish to query.
Schema
: Specify the schema containing the tables to query. Defaults to “public”.
Table Name
: Input the name of the table where data will be pulled from.
(Optional) Snowflake Warehouse
: Enter the name of the Snowflake warehouse to execute the requests.
(Optional) Role
: Provide the Snowflake role to use. Defaults to AccountAdmin
if not specified.
Step 4: Write SQL Query to retrieve data from Snowflake.
Write the SQL query that retrieves data from your Snowflake database. The query results will be imported as a list into your new table.
Available Snowflake actions
Within your Clay table, you’re able to run the following Snowflake-supported actions:
- Insert Row
- Lookup Row
- Upsert Row
- Update Row
Action
Lookup Row
Check if row exists in your Snowflake database.
To run the Lookup Row action:
Step 1: Select the Snowflake account you want to use.
Step 2: Fill out Auth fields to connect to Snowflake’s database.
Snowflake Account ID
: Click here for steps to find it. Replace the period with a dash after pasting.
Database Name
: Provide the name of the database you wish to query.
Schema
: Specify the schema containing the tables to query. Defaults to “public”.
(Optional) Snowflake Warehouse
: Enter the name of the Snowflake warehouse to execute the requests.
(Optional) Role
: Provide the Snowflake role to use. Defaults to AccountAdmin
if not specified.
Step 3: Write SQL Query to retrieve data from Snowflake.
Write the SQL query to search for specific rows in your Snowflake database. This query will check for matching rows based on the criteria you provide. Use dynamic fields to reference other columns within your lookup action.
Example: SELECT * FROM customers WHERE email = 'example@example.com'
Step 4: Configure run settings.
By default, new rows within your Clay table will automatically run a Snowflake action. Learn more about auto-update in this brief guide.
To run enrichment only under specific conditions, use formulas that trigger the column when the formula is true. Learn more about AI formulas in this Clay University lesson.
Step 5: Run your enrichment to lookup row(s) within Snowflake.
If there are matches, the query can return one or multiple rows, depending on your conditions.
In most cases, a single row is expected (e.g., searching by a unique identifier like an email).
If no matches are found, the response will indicate “Nothing Found.”
Action
Upsert Row
Upsert row into Snowflake Database using a single field as a unique identifier. If the identifier exists, Clay will update the row. If not, Clay will create a new row.
To run the Upsert Row action:
Step 1: Specify the Snowflake account you want to use.
Step 2: Fill out Auth fields to connect to Snowflake’s database.
Snowflake Account ID
: Click here for steps to find it. Replace the period with a dash after pasting.
Database Name
: Provide the name of the database you wish to query.
Schema
: Specify the schema containing the tables to query. Defaults to “public”.
Table Name
: Input the name of the table where data will be upserted.
(Optional) Snowflake Warehouse
: Enter the name of the Snowflake warehouse to execute the requests.
(Optional) Role
: Provide the Snowflake role to use. Defaults to AccountAdmin
if not specified.
Step 3: Specify Lookup Field.
Select a field from your Clay table to match with a column in your Snowflake table.
- If a match is found, the row in Snowflake will be updated.
- If no match is found, a new row will be inserted.
Step 4: Map out fields to include in the rows you are upserting.
Select the fields from your Clay table that should be updated or inserted into the Snowflake table.
Ensure the selected fields in Clay match the data types and formats required by the corresponding Snowflake columns.
Fields with null values will be ignored during updates to prevent overwriting existing data.
Step 5: Configure run settings.
By default, new rows within your Clay table will automatically run a Snowflake action. Learn more about auto-update in this brief guide.
To run enrichment only under specific conditions, use formulas that trigger the column when the formula is true. Learn more about AI formulas in this Clay University lesson.
Step 6: Run your enrichment to upsert a row within Snowflake.
Action
Insert Row
Insert a row into Snowflake database.
To run the Insert Row action:
Step 1: Specify the Snowflake account you want to use.
Step 2: Fill out Auth fields to connect to Snowflake’s database.
Snowflake Account ID
: Click here for steps to find it. Replace the period with a dash after pasting.
Database Name
: Provide the name of the database you wish to query.
Schema
: Specify the schema containing the tables to query. Defaults to “public”.
Table Name
: Input the name of the table where data will be inserted.
(Optional) Snowflake Warehouse
: Enter the name of the Snowflake warehouse to execute the requests.
(Optional) Role
: Provide the Snowflake role to use. Defaults to AccountAdmin
if not specified.
Step 3: Map out fields to include in the inserted rows.
Select the fields from your Clay table that you want to include in the rows being inserted into Snowflake.
Ensure the selected fields in Clay match the data types and formats required by the corresponding Snowflake columns.
Step 4: Configure run settings.
By default, new rows within your Clay table will automatically run a Snowflake action. Learn more about auto-update in this brief guide.
To run enrichment only under specific conditions, use formulas that trigger the column when the formula is true. Learn more about AI formulas in this Clay University lesson.
Step 5: Run your enrichment to insert a row in Snowflake
Action
Update Row
Update row in database using a query from that table to find matching records.
To run the Update Row action:
Step 1: Select the Snowflake account you want to use
Step 2: Fill out Auth fields to connect to Snowflake’s database
Snowflake Account ID
: Click here for steps to find it. Replace the period with a dash after pasting.
Database Name
: Provide the name of the database you wish to query.
Schema
: Specify the schema containing the tables to query. Defaults to “public”.
Table Name
: Input the name of the table where data will be inserted.
(Optional) Snowflake Warehouse
: Enter the name of the Snowflake warehouse to execute the requests.
(Optional) Role
: Provide the Snowflake role to use. Defaults to AccountAdmin
if not specified.
Step 3: Specify Lookup Field
Select a field from your Clay table to match with a column in your Snowflake table.
- If a match is found, the row in Snowflake will be updated.
- If no match is found, a new row will be inserted.
Step 4: Map out fields to include in the rows you are updating.
Select the fields from your Clay table that should be updated in the Snowflake table.
Ensure the selected fields in Clay match the data types and formats required by the corresponding Snowflake columns.
Fields with null values will be ignored during updates to prevent overwriting existing data.
Step 5: Configure run settings
By default, new rows within your Clay table will automatically run a Snowflake action. Learn more about auto-update in this brief guide.
To run enrichment only under specific conditions, use formulas that trigger the column when the formula is true. Learn more about AI formulas in this Clay University lesson.
Step 6: Run your enrichment to update a row in Snowflake
FAQ
What data points can Clay enrich from Snowflake?
Clay can enrich fields such as:
- Email addresses (both business and Gmail addresses)
- Company details (domain, industry, revenue, employee count, headquarters location)
- Titles, countries, and other metadata.
Does Clay support batch processing for Snowflake?
Yes, you can bulk send large datasets (e.g., 100,000+ records) from Snowflake to Clay for enrichment.
Does Snowflake cost any credits?
Only enrichment actions (e.g., email lookups, company enrichment) consume credits. Therefore, importing/exporting data with Snowflake does not use credits.