About Snowflake
Snowflake is a cloud data platform for storing and querying data. Serval connects to a single Snowflake account using a Programmatic Access Token (PAT) and calls Snowflake’s REST APIs - including the SQL Statement API and the object-management APIs - on demand from your workflows. There are no prebuilt helper functions: every workflow request goes through one generic “Snowflake API request” action, which Serval forwards to your connected account’s domain with your token attached. Authentication: Programmatic Access Token (PAT) Data sync: On-demand only. Serval never syncs or ingests Snowflake data in the background - Snowflake is queried or modified only when a workflow step runs.What the Snowflake integration enables
Get your credentials
You’ll create a Programmatic Access Token (PAT) for the Snowflake user Serval should act as - ideally a dedicated service user with a narrowly scoped role. See Snowflake’s Programmatic Access Tokens documentation for full details.Create a dedicated service user (recommended)
ACCOUNTADMIN role, create a user just for Serval, e.g. CREATE USER SERVAL_USER COMMENT = 'Service account for Serval integration';Create a scoped role and grant it to the user (recommended)
GRANT ROLE SERVAL_ROLE TO USER SERVAL_USER;Assign a network policy to the user
ALTER USER SERVAL_USER SET NETWORK_POLICY = SERVAL_NETWORK_POLICY;Generate the PAT
ALTER USER SERVAL_USER ADD PROGRAMMATIC ACCESS TOKEN serval_pat ROLE_RESTRICTION = 'SERVAL_ROLE' DAYS_TO_EXPIRY = 90;By default a PAT expires after just 15 days, so set an explicit expiry that matches your rotation schedule.Find your account URL
https://app.snowflake.com/<org>/<account>/..., your account URL is <org>-<account>.snowflakecomputing.com - this form works regardless of which cloud your account runs on. Older locator-style addresses with extra labels (for example xy12345.us-east-1.snowflakecomputing.com) are also accepted. Or run: SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME() || '.snowflakecomputing.com';Connect in Serval
Open the Snowflake connect form
Enter the Account URL (required)
myorg-account123.snowflakecomputing.com - no https:// prefix, no path, and no stray spaces. The field’s helper text reads “Your Snowflake account identifier (without https://)”. Multi-part domains like account.region.cloud.snowflakecomputing.com are accepted, and uppercase input is automatically lowercased when saving.If the value doesn’t match the expected format, the form shows: Invalid account URL. Expected format: <account>[.<region>].snowflakecomputing.com. Serval’s server applies the same checks when saving and responds with “accountUrl is required” or “invalid accountUrl format: must be a valid Snowflake account domain (e.g. account.region.snowflakecomputing.com)” if something slips through.Enter the Access Token (required)
Click Submit
Verifying the connection
This integration has no automated health checks, so a saved connection shows no pass/fail status on its own. To confirm your credentials work, run a trivial statement - such asSELECT CURRENT_USER() - through the “Snowflake API request” action in a test workflow. A successful response confirms the account URL, token, and network policy are all set up correctly.
Gotchas and troubleshooting
Connection saved fine, but every request fails with an authentication error
Connection saved fine, but every request fails with an authentication error
Snowflake rejects the token because no network policy is assigned
Snowflake rejects the token because no network policy is assigned
Requests suddenly start failing after working for a while
Requests suddenly start failing after working for a while
My account URL keeps getting rejected
My account URL keeps getting rejected
*.snowflakecomputing.com domain. Values containing https://, a trailing path, stray spaces, or any other host are rejected with Invalid account URL. Expected format: <account>[.<region>].snowflakecomputing.com. Capitalization is never the problem - uppercase letters are lowercased automatically when the connection is saved.Editing the connection asks for the token again
Editing the connection asks for the token again
Some SQL statements are rejected by the SQL Statement API
Some SQL statements are rejected by the SQL Statement API
A long query returned a statement handle instead of results
A long query returned a statement handle instead of results
I can't find any prebuilt Snowflake actions
I can't find any prebuilt Snowflake actions
Need help? Contact support@serval.com for assistance with your Snowflake integration.

