Snowflake is a cloud data platform that enables organizations to store, analyze, and share data securely.
With this integration, you can connect to your Snowflake data warehouse and import data directly into Clay.
Connecting to Snowflake
When connecting your Snowflake account to Clay, you can choose between two authentication methods:
- Key-pair authentication (recommended): Uses a private key for secure authentication. This is the preferred method for enterprise teams. See Snowflake's key-pair authentication documentation for a guide to generating and configuring keys.
- Username and password: Traditional authentication method. Note that Snowflake is deprecating this method in favor of key-pair authentication.
Setting up key-pair authentication
Key-pair authentication requires an RSA key-pair. If you haven't already generated your keys, refer to Snowflake's key-pair authentication documentation for detailed instructions.
When setting up key-pair authentication, you'll need to provide:
- Connection name: A name to identify this connection in Clay.
- Username: The username tied to your private key.
- Private key: Upload your Snowflake private key file (.p8), or drag and drop it into the field.
- Private key passphrase: The passphrase for your private key, if applicable.
- Account: The account identifier for your Snowflake instance. This can either be an account ID or a full URL (e.g., NHDCQCP-SBB20777). For detailed instructions on how to find your account identifier, refer to the Snowflake documentation.
- Role (optional): The role to assume when connecting to Snowflake.
- Database (optional): The name of the database to connect to in Snowflake. If not specified, you'll be prompted to enter it when setting up a Snowflake enrichment.
- Schema (optional): The schema to connect to in Snowflake. If not specified, you'll be prompted to enter it when setting up a Snowflake enrichment.
- Warehouse (optional): The warehouse to use for queries in Snowflake. If not specified, you'll be prompted to enter it when setting up a Snowflake enrichment.
- Use static IP (optional): Enable this to ensure that the action runs from the same IP address, which can be useful for allow-listing.
Setting up username and password authentication
If your organization uses Okta, enter your Okta URL (e.g., example.okta.com) to ensure the integration functions correctly.
Creating a table with Snowflake
- In a workbook, click
+ Addat the bottom. - Search for
Snowflakeand select from the results. - In the modal, you will be asked to
Select Snowflake account.- If you haven't already connected your Snowflake account, click
+ Add accountand select your authentication method.
- If you haven't already connected your Snowflake account, click
Source Import from Snowflake
You can use Snowflake as a source for a new or existing table.
Inputs
- Snowflake account ID
- Database name
- Schema
- Table name
- Snowflake warehouse
- Role (optional)
Enriching data with Snowflake
- While in a Clay table, click
Add enrichmentand search forSnowflake. - Under
Integrations, select one of the Snowflake options. - In the modal, you will be asked to
Select Snowflake account.- If you haven't already connected your Snowflake account, click
+ Add accountand select your authentication method.
- If you haven't already connected your Snowflake account, click
Action Insert row
Insert a row into a Snowflake database.
Inputs
- Snowflake account ID
- Database name
- Schema
- Table name
- Snowflake warehouse
- Role (optional)
Action Lookup row
Check if a row exists in your Snowflake database.
Inputs
- Snowflake account ID
- Database name
- Schema
- Snowflake warehouse (optional)
- Role (optional)
- Query: The raw SELECT SQL query to run.
Action Upsert row
Upsert a row into a Snowflake database using a single field as a unique identifier. If the identifier exists, the row will be updated. If not, a new row will be created.
Inputs
- Snowflake account ID
- Database name
- Schema
- Table name
- Snowflake warehouse
- Role (optional)
Action Update row
Update a row in a Snowflake database using a single field as a unique identifier. If the identifier exists, the row will be updated. If not, a new row will be created.
Inputs
- Snowflake account ID
- Database name
- Schema
- Table name
- Snowflake warehouse
- Role (optional)
Run settings
- Auto-update
- Only run if: The enrichment will only run if conditions are met. (Learn more about conditional formulas here!)
Explore other docs
Other popular resources
Join a cohort, learn Clay fast!
The faster way to master Clay. Sign in if you're enrolled in a cohort (current or past) or apply to an upcoming one!

