Snowflake Integration Guide
Connect Terapage to Snowflake so researchers can securely import eligible participants from approved databases, schemas, tables, or views, map Snowflake columns to Terapage participant fields, and keep research samples synced automatically.
What it does
The Snowflake integration lets a Terapage workspace connect to a client-owned Snowflake warehouse, discover permitted participant sources, map columns, preview records, and sync eligible contacts into studies or tasks.
Who uses it
Research operations teams, enterprise insight teams, CX teams, panel managers, healthcare research teams, agencies, and data teams whose participant or customer records already live in Snowflake.
Best for
Importing large panels, syncing opted-in contacts from governed warehouse views, and turning first-party customer data into recruitable Terapage research participants without repeated CSV exports.
The Snowflake integration flow: connect, discover, map, filter, preview, sync and invite.
Core idea: the client connects their own Snowflake account. Terapage reads only approved participant data, maps it into Terapage fields, applies consent and filter rules, deduplicates records, and optionally invites eligible participants into selected studies or research activities.
Before you start
- You must be a Terapage workspace admin or have permission to manage participant imports and integrations.
- Your organisation should provide a Snowflake account identifier, warehouse, database, schema, role, and allowed tables or views.
- Use a restricted read-only Snowflake user and role for Terapage.
- For MVP, use key-pair authentication. For enterprise clients, OAuth can be supported where SSO governance requires it.
- For best practice, expose a dedicated participant view such as RESEARCH.ELIGIBLE_RESEARCH_PARTICIPANTS_VIEW rather than granting broad access to raw operational tables.
How to connect Snowflake to Terapage
Open Integrations. From your Terapage workspace, go to Participants or Import / Sync Participants, then choose Snowflake.
Enter connection details. Add the Snowflake account identifier, warehouse, database, schema, role and authentication method supplied by your data team.
Test the connection. Terapage checks that the credentials work and that the role can read only the approved databases, schemas, tables and views.
Choose the participant source. Select the table or view containing the eligible participants you want to import or sync.
Recommended client-side setup
Ask the client data team to create a dedicated Snowflake user and role for Terapage, then grant read-only access to one approved source.
CREATE USER TERAPAGE_SYNC_USER; CREATE ROLE TERAPAGE_READ_ROLE; GRANT ROLE TERAPAGE_READ_ROLE TO USER TERAPAGE_SYNC_USER; GRANT USAGE ON WAREHOUSE RESEARCH_WH TO ROLE TERAPAGE_READ_ROLE; GRANT USAGE ON DATABASE CUSTOMER_DATA TO ROLE TERAPAGE_READ_ROLE; GRANT USAGE ON SCHEMA CUSTOMER_DATA.RESEARCH TO ROLE TERAPAGE_READ_ROLE; GRANT SELECT ON ALL TABLES IN SCHEMA CUSTOMER_DATA.RESEARCH TO ROLE TERAPAGE_READ_ROLE;
Generated example of a Terapage Snowflake connection screen with secure authentication, read-only access and source validation.
Choose a table or view
After a successful connection, Terapage discovers available databases, schemas, tables, views and columns that the Snowflake role is allowed to see. The researcher does not need to know SQL.
| Source type | Example | Recommended use |
|---|---|---|
| View | RESEARCH.ELIGIBLE_RESEARCH_PARTICIPANTS_VIEW | Best option. A governed, pre-filtered participant source approved by the client. |
| Table | RESEARCH.PARTICIPANTS | Useful when the table is already clean, scoped and consent-aware. |
| CRM export | RESEARCH.CRM_EXPORT_VIEW | Useful when customer records are prepared from Salesforce, HubSpot, product usage or internal CRM sources. |
Generated example of mapping Snowflake columns into Terapage participant fields, custom attributes and consent filters.
Map Snowflake columns to Terapage fields
Map the Snowflake columns to Terapage participant records. Required fields can be validated before the sync is activated.
| Terapage participant field | Snowflake column |
|---|---|
| First Name | FIRST_NAME |
| Last Name | LAST_NAME |
| Phone | PHONE |
| Company | COMPANY |
| Country | COUNTRY |
| Consent Status | CONSENT_STATUS |
| External Source ID | CUSTOMER_ID |
| Last Updated At | LAST_UPDATED_AT |
Add filters and safety rules
- Only allow SELECT queries generated by Terapage.
- Only query approved databases, schemas, tables and views.
- Only use columns discovered from Snowflake metadata.
- Block raw SQL for normal workspace users.
- Apply row limits and pagination to large participant sources.
- Require consent confirmation before auto-invite is enabled.
Important: Terapage should not run UPDATE, DELETE, INSERT, COPY, MERGE, DROP or ALTER statements against a client Snowflake warehouse.
Preview records before import
Before activating a sync, Terapage should show a preview of the first matching records, validation status, missing required fields, duplicates, consent eligibility, and the number of records that would be imported or skipped.
Validation
Check email, phone number, required fields, field lengths, invalid characters and country formatting before import.
Consent
Only include participants who match the consent column, lawful basis rule or client-supplied eligibility view.
Deduplication
Dedupe using Snowflake connection ID, table/view, external ID, email address and phone number.
Destination
Choose whether to import only, import into a participant pool, invite to a study, or invite to a selected research activity.
Example Terapage workflow context: imported Snowflake participants can be routed into research activities, AI interviews, journals, focus groups or external interview analysis workflows.
Automatic sync options
Once the connection, source, mapping and filters are approved, Terapage can run scheduled sync jobs.
- Manual sync: run import only when a researcher starts it.
- Hourly sync: check for new or updated participants every hour.
- Daily sync: refresh participant lists once per day.
- Auto-invite: invite newly eligible participants into a selected study or task after consent confirmation.
- Sync logs: show records scanned, imported, updated, skipped, failed and invited.
Generated safe query example
SELECT CUSTOMER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE, COMPANY, COUNTRY, CITY, SEGMENT, CONSENT_STATUS, LAST_UPDATED_AT FROM CUSTOMER_DATA.RESEARCH.ELIGIBLE_RESEARCH_PARTICIPANTS_VIEW WHERE EMAIL IS NOT NULL AND CONSENT_STATUS = 'Opted In' AND LAST_UPDATED_AT > ? ORDER BY LAST_UPDATED_AT ASC LIMIT 10000;
Generated example of a Snowflake sync monitor showing records scanned, imports, updates, skipped duplicates, errors and the next scheduled sync.
Auto-invite participants to research
When eligible Snowflake records are found, researchers can choose what Terapage should do next.
| Action | What Terapage does | Best for |
|---|---|---|
| Import only | Adds validated participants to Terapage without sending invitations. | Teams that want to review data first. |
| Import into participant pool | Adds records to a reusable workspace participant pool. | Long-term research communities and future studies. |
| Import and invite to selected study | Sends study invitations after participants pass eligibility and consent rules. | Fast recruitment for a live study. |
| Import and invite to selected task | Sends a direct activity or task link to eligible participants. | Journals, surveys, diary tasks, AI interviews and external interview workflows. |
Security, privacy and governance
Client-owned compute
The client pays for and controls their Snowflake warehouse. Terapage connects only to permitted data sources.
Encrypted credentials
Private keys, tokens and sensitive connection details should be encrypted at rest and never stored in plain text.
Read-only access
The integration should be designed for read-only participant sync, not warehouse writes or destructive SQL actions.
Consent-aware sync
Sync rules should filter by consent status, opt-out flags, country rules and client-defined contact eligibility.
Audit logs
Log every connection test, preview, import, sync run, mapping change, invite action and error.
Easy disconnect
Admins should be able to pause sync, rotate credentials, change mappings or disconnect Snowflake completely.
Troubleshooting
| Issue | Likely cause | What to check |
|---|---|---|
| Connection fails | Invalid account identifier, role, warehouse, user or private key. | Confirm Snowflake account details, key-pair setup, role assignment and warehouse access. |
| No tables appear | The Terapage role does not have usage or select access. | Grant USAGE on database/schema and SELECT on approved tables or views. |
| Columns are missing | The selected table/view does not expose the expected fields. | Ask the data team to update the approved participant view. |
| Participants are skipped | Missing email/phone, duplicate records, invalid data or consent filter failure. | Open the sync log and review validation reasons. |
| Auto-invite does not run | Consent confirmation, target study or destination task is missing. | Confirm lawful basis, selected destination and invite settings. |
Recommended product position: Snowflake should be treated as a governed participant data source for enterprise research teams. The value is not only import; it is controlled access, secure mapping, consent-aware sync, deduplication, auditability and direct activation into Terapage research workflows.