Snowflake Integration

If you're using Pool and want to integrate with your Snowflake CRM to have participants automatically show up in Ethnio, and also update from Ethnio to Snowflake, this is for you.


🔄 How the Ethnio & Snowflake Integration Works

With Ethnio's Snowflake integration, you can securely import enriched participant data from Snowflake directly into your Ethnio Pool. This makes it easier to build highly targeted segments and automate study recruitment with minimal manual effort.

Currently, Ethnio supports a one-way sync from Snowflake to Ethnio, meaning participant data flows into Ethnio from your Snowflake instance — not the other way around.

After connecting Snowflake via OAuth, you can:

  • Import participant data from any authorized table in your Snowflake environment
  • Map columns to Ethnio fields (email, name, custom attributes, etc.)
  • Build and reuse dynamic segments based on that data for intercepts, invites, or panel management
  • Trigger automatic or manual imports based on your research needs

🔧 Configuration and Mapping

Once connected, you’ll be able to select a specific Snowflake table from a dropdown and map its columns to Ethnio participant properties. This process is similar to importing a CSV, XLSX, or G Sheet into Pool, but fully integrated with Snowflake’s secure API.

Mapping lets you match your Snowflake table columns to existing or custom Ethnio properties


🎯 Benefits for Researchers

With enriched Snowflake data in Ethnio, researchers can:

  • Instantly build hyper-targeted segments based on real-time data
  • Cut study recruitment time from weeks to minutes
  • Invite, schedule, and manage participants directly in Ethnio

To import data securely from Snowflake into Ethnio, we use a secure OAuth integration that gives you full control over which data is accessible. This guide walks you through the setup in Snowflake. You'll need admin access to your Snowflake account to complete the steps below.


✅ Step 1: Create the Snowflake OAuth Integration

This must be done by someone with the ACCOUNTADMIN  role in Snowflake. To simplify access and testing, we recommend inviting your Snowflake admin as an Ethnio admin during setup. If you’re out of admin seats, just contact us and we’ll temporarily add one for you.

In your Snowflake worksheet, run the following SQL:

CREATE OR REPLACE SECURITY INTEGRATION ETHNIO
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://ethn.io/snowflake_integrations/callback'
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE;

🔑 Step 2: Get Your Client Credentials

After creating the integration, run this command to get your OAUTH_CLIENT_ID  and OAUTH_CLIENT_SECRET :

SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('ETHNIO');

🌐 Step 3: Retrieve Your Account URL

This is used by Ethnio to identify your Snowflake account during authentication:

SELECT CONCAT('https://', t.value:host::varchar) AS account_url
FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$ALLOWLIST()))) AS t
WHERE t.value:type::varchar = 'SNOWFLAKE_DEPLOYMENT';

👤 Step 4: Assign Access Role

You’ll need to grant access to the Snowflake user who will authenticate with Ethnio. Assign a role (e.g., ETHNIO_ROLE ) with read access to the appropriate tables and views.

Ethnio will only be able to view data — no writing or modifying.

Example SQL:

GRANT ROLE ETHNIO_ROLE TO USER your_user_name;

GRANT USAGE ON DATABASE your_db TO ROLE ETHNIO_ROLE;
GRANT USAGE ON SCHEMA your_db.your_schema TO ROLE ETHNIO_ROLE;
GRANT SELECT ON TABLE your_db.your_schema.your_table TO ROLE ETHNIO_ROLE;

📂 Step 5: Connect via Ethnio UI

Once the above is complete:

  1. Go to Settings > Integrations > Snowflake inside Ethnio.

    Paste your:

    • Account URL
    • Client ID
    • Client Secret
  2. Click Connect.

You’ll be redirected to Snowflake’s login screen to authorize access.


🧠 What Happens Next?

After connection, Ethnio automatically fetches:

  • All warehousesdatabasesschemas, and tables you have access to via the provided role.
  • You’ll then be able to select what to import directly from a dropdown menu — no need to predefine table names.

From there, you can choose to import any supported table as participants into your Ethnio Pool.

Just like with a CSV, XLSX, or G Sheet import, you’ll see a mapping step where you match the columns from your Snowflake table to Ethnio fields (email, name, location, custom attributes, etc.). You can preview and adjust before confirming the import.

Once imported, participants can:

  • Be filtered and segmented in your Pool
  • Receive intercepts or direct study invites
  • Be used in follow-up research or panel management

Learn more about participant importing in our import guide.


🔐 Required User Permissions

To set up and manage the Snowflake integration in Ethnio, you must be either an Owner of the organization or an Admin in your Ethnio account.


🔒 Security & Privacy

Ethnio uses the least privilege approach and never writes or modifies data. Your credentials are securely stored and encrypted. The only scope requested is SESSION:ROLE:ETHNIO_ROLE .

Want to know more? Read our full security FAQ


🔁 Request Snowflake Refresh Token Timeout Increase

🚨 By default, Snowflake expires its refresh tokens after 90 days. A refresh token is an OAuth 2.0 object that allows an access token to renew. After the refresh token expires, the associated access token can no longer be used and a new access token must be created. This requires action in both Ethnio and Snowflake.

The Snowflake account administrator can request Snowflake Support to increase the refresh token timeout with the following consent request, as explained in the Snowflake FAQ:

<Your Organization's name e.g. ABC Ltd.> is requesting Snowflake extend the OAUTH_REFRESH_TOKEN_VALIDITY parameter 
value to be set to a value of <1 year (31622400 in seconds) or lower value> for their account. This allows <ABC Ltd.> to set 
the OAuth refresh token timeout to as long as <1 year> for the OAuth integrations defined in their Snowflake account.

Snowflake recommends a shorter duration for the OAuth refresh token timeout as a security best practice. <ABC Ltd.> acknowledges 
that setting the OAuth refresh token timeout to <1 year> creates a risk that the client application can renew the user's session 
during extended refresh token time period without user's involvement.

If you do not change the default timeout for refresh tokens, Ethnio strongly recommends setting a reminder to update your Snowflake access token every 90 days. If the refresh token expires, data import that use the Snowflake access token will stop until the access token is updated.


🛠️ Troubleshooting & elements of the integration

If you run into any issues, one thing to try is either disconnecting an account or removing the entire integration. Here's the difference in order of least severe to most severe troubleshooting step:

Please verify the Snowflake credentials are correct before connecting Snowflake to Ethnio. If there's even one digit wrong, we won't be able to connect.


  • Disconnect account - could help in a case where you want a different Snowflake account to be connected to Ethnio. It's possible that different Swowflake accounts will have different permissions and you might have problems importing or exporting data with the wrong account in Snowflake
  • Edit credentials - this is generally always the same for your entire organization
  • Remove integration - this is the nuclear option, and will clear out credentials and account from above.


👋 Need Help?

Feel free to reach out via chat or help@ethn.io  — we’re happy to help with setup or troubleshoot any issues with your Snowflake configuration.

Still need help? Contact Us Contact Us