Snowflake
DirectionBidirectional
Environment
WebiOSAndroidCTVAPI Direct
Capability
ConnectivityRouting
SDK RequiredNo
Product(s) Required
Core PlatformRouting
Snowflake provides a cloud data platform where publishers can unify and analyze audience and advertising data securely.
Overview
The Snowflake integration enables publishers to leverage Permutive’s bi-directional data capabilities with their Snowflake data warehouse. This integration operates in two modes: Routing (Destination): Stream first-party event data from Permutive to Snowflake. Read more in Routing documentation.Routing capability requires the Routing package in addition to Core Platform. Contact your Customer Success Manager to enable Routing.
- Unifying first-party audience data with advertising and CRM data in Snowflake
- Building a single view of your audience by combining Permutive data with other data sources
- Creating segments and insights in Snowflake for activation in Permutive
- Running custom analytics and reporting on raw Permutive event data
Environment Compatibility
| Environment | Supported | Notes |
|---|---|---|
| Web | Yes | — |
| iOS | Yes | — |
| Android | Yes | — |
| CTV | Yes | — |
| API Direct | Yes | — |
Prerequisites
For Routing (exporting data to Snowflake):- Active Snowflake account with appropriate permissions
- Ability to create database, schema, tables, stages, and pipes in Snowflake
- Ability to create users with key-pair authentication (password authentication is not supported)
- Access to a Snowflake warehouse for data loading operations
- Snowflake account URL in the format:
https://<organization-id>-<account-id>.snowflakecomputing.com
Setup
- Routing Streaming Setup
- Connectivity Setup
Setting up Snowflake routing involves creating a dedicated database, schema, user, and role in your Snowflake instance, then configuring key-pair authentication so Permutive can stream event data via Snowpipe. Once configured, Permutive will complete the storage integration and begin streaming data automatically.
Prerequisites
- Active Snowflake account with administrative permissions
- Ability to create databases, schemas, users, roles, and storage integrations
- Access to a Snowflake warehouse
- Snowflake account URL in the format:
https://<organization-id>-<account-id>.snowflakecomputing.com
What Happens After Setup
Once routing is active:- Tables are created automatically for events, aliases, and segment metadata
- Events stream via Snowpipe in approximately 5-minute or 500MB batches
- All event types appear in a single
EVENTStable with anEVENTNAMEcolumn to distinguish types - Schemas update automatically when you add new event types or properties
Data Types
When Routing is enabled, Permutive creates the following tables in your Snowflake instance to store event data and metadata:EVENTS Table
EVENTS Table
The main events table contains all user interaction data collected by Permutive.
The timestamp when the event occurred.
Your Permutive organization identifier.
The workspace (project) ID where the event was collected.
Unique identifier for the page view session.
Unique identifier for the user session.
The Permutive user identifier.
Unique identifier for this specific event.
The name/type of the event (e.g., PageView, Pageview, SlotViewable).
Array of segment IDs (integers) that the user belongs to at the time of the event.
JSON object containing event-specific properties and metadata. Structure varies by event type.
SYNC_ALIASES Table
SYNC_ALIASES Table
Contains user identity synchronization data for cross-device and cross-context tracking.
The timestamp when the alias sync occurred.
Type of sync event (e.g., “alias_sync”).
The Permutive user identifier.
The workspace (project) ID.
The external identifier being synced (e.g., hashed email, device ID).
The type/tag of the external identifier (e.g., “email_sha256”, “device_id”).
SEGMENTS Table
SEGMENTS Table
Metadata table containing information about segments configured in your Permutive workspace.
When the segment metadata was inserted/updated in Snowflake.
The workspace (project) ID.
Human-readable name of the segment.
Array of tags associated with the segment.
JSON object containing additional segment metadata (e.g., description, creation date).
The segment ID number as a string.
Troubleshooting
Data not appearing in Snowflake after setup
Data not appearing in Snowflake after setup
Symptoms: No data visible in the EVENTS table after completing Routing setup.Solutions:
- Wait at least 5-10 minutes after setup completion for initial data flow
- Verify Snowpipe is running:
- Check pipe status - it should show as “RUNNING”
- Verify the storage integration was created successfully:
- Contact Support if no data appears after 15 minutes
Key-pair authentication errors
Key-pair authentication errors
Symptoms: Authentication failures when connecting to Snowflake, errors like “Invalid key” or “Authentication failed”.Solutions:
- Ensure the private key is in PKCS8 PEM format:
- When setting
RSA_PUBLIC_KEYon the Snowflake user, ensure you:- Remove the
-----BEGIN PUBLIC KEY-----header - Remove the
-----END PUBLIC KEY-----footer - Concatenate all remaining lines into a single string (no line breaks)
- Remove the
- Verify the public key is correctly attached to the user:
Check the
RSA_PUBLIC_KEY_FPfield is populated - If using an existing key pair, regenerate a fresh key pair following the setup instructions
Permission denied errors
Permission denied errors
Symptoms: Errors indicating insufficient permissions when Permutive attempts to create tables, stages, or pipes.Solutions:
- Verify the role has all required permissions:
- Ensure the following grants are present:
USAGEon databaseUSAGE, CREATE TABLE, CREATE STAGE, CREATE PIPEon schemaCREATE INTEGRATIONon accountOPERATEon future pipesUSAGEon warehouse
- If any grants are missing, re-run the permission grant commands from the setup guide
- Ensure the user’s default role is set correctly:
Changelog
No changes listed yet. For detailed changelog information, visit our Changelog.