Skip to main content

Snowflake Connection

Connect your Snowflake data warehouse to enable AI-powered analysis across all your databases, schemas, and tables.
What you’ll need: Snowflake account URL, username, password, and optional warehouse/database/role configuration.

Quick Setup

1

Open Database Connections

In SignalPilot, click Database icon → Add Connection → Select Snowflake
2

Get your Snowflake account URL

In Snowflake:
  1. Go to AdminAccounts
  2. Click the three dots () next to your account
  3. Select Manage URLs → Copy the Current URL
Finding Snowflake account URL
3

Enter credentials and test

Fill in Connection URL, Username, Password, and optional fieldsClick Test ConnectionCreate Connection
SignalPilot discovers all accessible databases and schemas automatically.

Connection Fields

FieldRequiredDescriptionExample
Connection NameFriendly labelFinance Warehouse, Snowflake Analytics
Connection URLYour Snowflake account URLhttps://abcdefg-do12345.snowflakecomputing.com
UsernameSnowflake login usernamedb_user
PasswordUser password••••••••
DatabaseOptionalDefault database to useANALYTICS_DB
WarehouseOptionalCompute warehouse for queriesCOMPUTE_WH
RoleOptionalSnowflake role to assumeSYSADMIN, ANALYST_ROLE
DescriptionOptionalNotes about this connectionProduction data warehouse
Credentials are encrypted locally using AES-256 before storage.

Field Details

Format: https://<account_locator>-<account_name>.snowflakecomputing.comWhere to find it:
  • Snowflake UI: AdminAccountsManage URLs
  • URL bar when logged into Snowflake
  • From your database admin
Examples:
  • https://xy12345.us-east-1.snowflakecomputing.com
  • https://abc-def123.snowflakecomputing.com
What it does: Sets the default database context for queriesWhen to specify:
  • You only need access to one database
  • You want to limit schema discovery to specific database
When to leave blank:
  • You want SignalPilot to access all databases
  • You work across multiple databases
If blank, SignalPilot pulls schema from every accessible database (may be slower for large accounts).
What it does: Specifies the compute warehouse for query executionRequired for: Schema introspection and running queriesIf not specified: SignalPilot will use your account’s default warehouse or prompt you to select oneExample: COMPUTE_WH, ANALYTICS_WH, DEV_WH
Use a small warehouse (X-SMALL or SMALL) for development work to minimize costs.
What it does: Determines which databases and tables you can accessCommon roles:
  • SYSADMIN - Full access to all objects
  • PUBLIC - Default role with minimal access
  • Custom roles - Team-specific access
If not specified: Uses your account’s default role
Ensure the role has SELECT permissions on the databases/schemas you need. Contact your Snowflake admin to grant access.

What SignalPilot Can Do

Once connected, the AI agent can:

Multi-Database Access

Query across all accessible Snowflake databases seamlessly

Schema Discovery

Automatically introspect databases, schemas, tables, and columns

Query Generation

Generate optimized Snowflake SQL with context-aware suggestions

Performance Insights

Access query history and performance metadata
Example interaction:
You: "What databases are available?"

Agent: [Lists all accessible databases]
        "Found 3 databases:
        - PRODUCTION_DB (345 tables)
        - ANALYTICS_DB (127 tables)
        - STAGING_DB (89 tables)"

You: "Show me revenue by product from ANALYTICS_DB for last month"

Agent: [Generates and executes Snowflake SQL]
        [Loads results into dataframe]

Security Best Practices

Never commit Snowflake credentials to git. SignalPilot encrypts and stores them locally only.
Create a dedicated Snowflake user for SignalPilot:
-- Create read-only role
CREATE ROLE signalpilot_readonly;

-- Grant database access
GRANT USAGE ON DATABASE ANALYTICS_DB TO ROLE signalpilot_readonly;
GRANT USAGE ON ALL SCHEMAS IN DATABASE ANALYTICS_DB TO ROLE signalpilot_readonly;
GRANT SELECT ON ALL TABLES IN DATABASE ANALYTICS_DB TO ROLE signalpilot_readonly;
GRANT SELECT ON FUTURE TABLES IN DATABASE ANALYTICS_DB TO ROLE signalpilot_readonly;

-- Create user and assign role
CREATE USER signalpilot PASSWORD='secure_password';
GRANT ROLE signalpilot_readonly TO USER signalpilot;
This prevents accidental data modifications.
Limit Snowflake access to specific IPs:
CREATE NETWORK POLICY signalpilot_policy
  ALLOWED_IP_LIST = ('your.signalpilot.ip/32');

ALTER USER signalpilot SET NETWORK POLICY = signalpilot_policy;
Contact your Snowflake admin to implement this.
Set up alerts for unexpected compute usage:
CREATE RESOURCE MONITOR signalpilot_monitor
  WITH CREDIT_QUOTA = 100
  TRIGGERS ON 75 PERCENT DO NOTIFY;

ALTER WAREHOUSE COMPUTE_WH SET RESOURCE MONITOR = signalpilot_monitor;
Prevents runaway queries from excessive costs.

Troubleshooting

Causes:
  • Incorrect account URL
  • Network connectivity issues
  • Snowflake account suspended
Solutions:
  • Verify URL matches Snowflake UI (AdminAccountsManage URLs)
  • Ensure URL includes https:// and .snowflakecomputing.com
  • Test connectivity: ping your-account.snowflakecomputing.com
  • Check if your Snowflake trial expired
Causes:
  • Wrong username or password
  • MFA enabled (not yet supported)
  • Account locked
Solutions:
  • Double-check credentials (Snowflake usernames are case-insensitive)
  • Disable MFA for service account (or use key-pair authentication - coming soon)
  • Check account status in Snowflake: SHOW USERS LIKE 'your_username'
Causes:
  • Warehouse name incorrect
  • Warehouse suspended
  • Role doesn’t have USAGE permission on warehouse
Solutions:
  • List available warehouses: SHOW WAREHOUSES
  • Resume warehouse: ALTER WAREHOUSE COMPUTE_WH RESUME
  • Grant access: GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE your_role
Causes:
  • Database name incorrect
  • Role lacks USAGE permission on database/schema
  • Empty database
Solutions:
  • List accessible databases: SHOW DATABASES
  • Check role permissions: SHOW GRANTS TO ROLE your_role
  • Grant access: GRANT USAGE ON DATABASE db_name TO ROLE your_role
Causes:
  • Large Snowflake account with many databases
  • Warehouse too small
Solutions:
  • Specify a Database in connection config to limit discovery
  • Use a larger warehouse (SMALL or MEDIUM) for initial discovery
  • After first connection, schema is cached for faster subsequent loads

Next Steps