Connect BuildBetter to your Snowflake data warehouse so company records and metadata flow into BuildBetter automatically. Authenticate with OAuth, browse your schemas and tables, map columns to BuildBetter fields, and set up scheduled syncs without writing any pipeline code.Documentation Index
Fetch the complete documentation index at: https://docs.buildbetter.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Snowflake integration enables you to:- Pull company records and metadata from Snowflake into BuildBetter
- Browse warehouses, databases, schemas, and tables interactively
- Map Snowflake columns to BuildBetter core fields and metadata
- Run scheduled syncs to keep company data continuously up to date
- Keep all credentials securely managed and masked in the UI
Features
- OAuth Sign-In: Authenticate directly against your Snowflake account; credentials are encrypted at rest and masked throughout setup
- Schema and Table Browsing: Pick your warehouse, database, schema, and source table from interactive dropdowns
- Column Mapping: Map any Snowflake column to a BuildBetter core field (company name, domain) or to metadata, with type-aware handling
- Two Lookup Strategies: Match companies either via a mapped metadata column or via a stable identifier derived from the table’s primary key
- Wide-Table Friendly: Improved mapping UI handles tables with many columns without breaking the setup flow
- Scheduled Syncs: Keep company data flowing automatically once mappings are saved
- Masked Credentials: Sensitive values are masked throughout the configuration UI
Setup Guide
Prerequisites
-
Snowflake Requirements:
- Snowflake account with access to the warehouse, database, and schema you want to sync
- Permission to read from the source tables you plan to map
- Ability to authorize an OAuth integration (or admin-provided programmatic credentials)
-
BuildBetter Requirements:
- Active BuildBetter account
- Admin privileges for integration setup
Quick Setup
Connect Snowflake
Go to Settings > Integrations in BuildBetter, find Snowflake in the data integrations section, and click Connect. Authenticate with your Snowflake account; BuildBetter stores access and refresh tokens securely.
Browse your warehouse
Select the warehouse, database, schema, and source table you want BuildBetter to read from. Each selector lists what your account has access to.
Map your columns
For each column you want to use, choose a mapping:
- Core fields: company
nameordomain - Metadata: any custom field, with its data type preserved (text, number, boolean, etc.)
- Skip: ignore the column
Choose a company lookup strategy
Pick how BuildBetter identifies the company that each row belongs to (see below). Validation runs before save so misconfigurations are caught up front.
Company Lookup Strategies
Every row needs a stable way to identify which company it represents. Snowflake setup supports two strategies, and you must configure exactly one:Mapped metadata column
Mark one of your mapped metadata columns as the lookup key. BuildBetter uses that column’s value to match or create the company. Best when your table already has a clear external identifier like
customer_id or account_id.Stable identifier from primary key
Use a stable identifier derived from the source table’s primary key columns. The setup UI shows the detected PK columns for the table you selected, so you can confirm the identity before saving. Best when your table has no explicit external ID column but does have a reliable PK.
BuildBetter validates your mapping before saving and will block configurations that don’t define exactly one lookup strategy. This prevents accidental misconfiguration where rows could be matched incorrectly or duplicate metadata could be created.
What Gets Synced
Companies
| Snowflake column mapping | BuildBetter field | Notes |
|---|---|---|
Core: name | Company name | Used during matching when no lookup key is provided |
Core: domain | Company domain | Used for fallback matching |
| Metadata column | Metadata field | Data type preserved (text, number, boolean) |
| Lookup key column | External identity | Drives match/create behavior for each row |
Metadata
Mapped metadata columns become first-class metadata fields on the company record, retaining their Snowflake data types so numeric, boolean, and text values are not flattened to strings.Sync Behavior
- Scheduled syncs run automatically once configured
- Manual syncs can be triggered from the integration settings page
- Lookup key per row — rows without a valid lookup key are skipped rather than creating incorrect matches or duplicate metadata
- Credentials refresh — OAuth tokens refresh automatically; reauthorization is requested only when the token can no longer be renewed
Security and Privacy
- Access tokens, refresh tokens, and any programmatic credentials are encrypted at rest
- The configuration UI masks sensitive values throughout setup and editing
- BuildBetter only reads from the warehouse, database, schema, and table you select
- You can disconnect the integration at any time to stop all sync activity
Troubleshooting
Connection Issues
“Snowflake authentication failed”- Reconnect from Settings > Integrations > Snowflake
- Confirm your Snowflake user still has access to the configured warehouse and database
- Your refresh token can no longer be renewed
- Click Reconnect and complete the OAuth flow again
Mapping Issues
Save blocked by validation- Ensure exactly one lookup strategy is configured (either a metadata column flagged as the lookup key, or a stable identifier from the table’s primary key)
- Confirm all required core fields are mapped if your workflow depends on them
- Verify the source table actually has a primary key defined in Snowflake
- If not, choose the mapped metadata column strategy instead
Data Issues
Rows being skipped- Rows without a valid lookup key are skipped intentionally to protect against incorrect matches
- Inspect the source table for missing values in the lookup column
- Confirm your lookup key is unique per company in the source table
- If you recently changed strategies, allow the next sync to settle before evaluating
Support
Questions about the Snowflake integration?- Email: support@buildbetter.app
- Visit our Help Center