Who can use this feature?
- Available with Anywhere: Warehouse, an add-on for Business, Advanced, and Enterprise plans.
- Requires an Admin or Architect role to configure.
Snowflake is a cloud-based data storage and analytics service that can be used as a data warehouse. Fullstory customers with Anywhere: Warehouse can sync data to Snowflake with ready to analyze views. This setup guide provides the following resources for getting started:
- Setting up Snowflake (below)
- Setting up Snowflake in Fullstory (below)
- Snowflake developer documentation
- Ready to Analyze Views developer documentation
Customers who wish to upgrade to the newest Snowflake connection format should reach out to a member of their Fullstory account team.
Setting up Snowflake
Terraform Infrastructure as Code (IaC)
Fullstory provides a terraform module to help simplify the setup of the necessary permissions. See the module docs for more information.
Manual Configuration
Note: To experience all of the benefits of this integration, a paid version of Snowflake is required.
Key-Pair Authentication
Fullstory uses key-pair authentication to connect Fullstory to your Snowflake account. If you are an existing Destinations customer and have set up the integration with user-based authentication, you can visit your Settings to update the authentication to key-pair without any gap in service.
To generate a key for authentication to Snowflake, you can follow their documentation here.
Note: When saving the key in Fullstory, you must save the unencrypted version. Fullstory will encrypt the key at rest using Google's key management service
Create required objects
Once you've set the parameters, run the script below in your Snowflake Worksheet to create all of the required objects and grant the necessary privileges to the role/user that Fullstory will use to perform the data sync.
set warehouse_name = 'compute_wh';
set database_name = 'fullstory';
set role_name = 'fullstory_loader';
set user_name = 'fullstory_user';
set storage_integration = 'fullstory_gcs';
use role useradmin;
create role if not exists identifier($role_name);
create user if not exists identifier($user_name)
rsa_public_key = 'PUBLIC KEY'; // don't include public key delimiters
grant role identifier($role_name) to user identifier($user_name);
use role sysadmin;
create database if not exists identifier($database_name);
grant all on database identifier($database_name) to role identifier($role_name);
grant usage on warehouse identifier($warehouse_name) to role identifier($role_name);
use role accountadmin;
create storage integration identifier($storage_integration)
type = external_stage
storage_provider = 'GCS'
enabled = true
storage_allowed_locations = ('gcs://fullstoryapp-warehouse-sync-bundles/');
grant usage on integration identifier($storage_integration) to role identifier($role_name);
Note: Fullstory takes advantage of Snowflake's Storage integration feature to optimize how we load data into your warehouse. This does not require your Snowflake instance to be hosted in Google Cloud, nor does it require that you have a Google Cloud account. Click here to read more about storage integration. The values set for `storage_provider` and `storage_allowed_locations` in the script above should not be edited. If your region is eu1, you need to replace the
storage_allowed_locationsin the above script withgcs://fullstoryapp-eu1-warehouse-sync-bundles/.
Setting a network policy (optional)
The CIDR block for the IP addresses that Fullstory uses to connect to the provided snowflake instance are:
- NA: 8.35.195.0/29
- EU: 34.89.210.80/29
To create the network policy and apply it to the Fullstory snowflake user, run the following:
CREATE NETWORK POLICY FULLSTORY_POLICY ALLOWED_IP_LIST = ('8.35.195.0/29');
ALTER USER FULLSTORY_USER SET NETWORK_POLICY = FULLSTORY_POLICY;
Fullstory does not currently support two-factor authentication.
Setting up Snowflake in Fullstory
To start syncing, follow the steps below:
- Navigate to Settings > Anywhere > Warehouse.
- Find the Snowflake integration and click Install.
- As shown in the screenshot below, in the menu that appears, add in your Snowflake Account ID, Warehouse, the Database you created, Username and Password, and the Storage Integration for the new Fullstory user. The ID to use for Account ID should be the appropriate one for your region and provider. See the FAQ below if you are unsure what this value is, or are having issues saving the credentials.
Note: Please ensure all credentials are correctly entered. If any are incorrectly entered, the integration sync will fail. - When you are ready, click Save at the bottom.
- After saving, you will see data start flowing into your warehouse within an hour.
Additional Resources
The following resources are available in our developer documentation:
FAQ
How can I find the Snowflake Account value to configure with Fullstory?
Fullstory uses the gosnowflake driver to connect to your Snowflake account. This driver requires the account locator to connect. You can find this value by running the following command and cross referencing the values with this table.
SELECT CURRENT_ACCOUNT(), CURRENT_REGION();
Can you set up more than one destination in your account?
You can set up multiple destinations (e.g. RedShift and Snowflake), but you can only sync to one Snowflake account/warehouse.
Is a GCS Storage Integration mandatory?
Yes. This integration enables Snowflake to read staged files from Fullstory's cloud using a service account. We utilize the associated service account to set the Access Control List (ACL) for the files in GCS. You can choose the integration name by updating the storage_integration variable in the setup script shown above.
What Fullstory data will appear in Snowflake?
Refer to Fullstory's developer documentation for Snowflake for a comprehensive data schema.
Why am I seeing tables that aren't listed in the data schema?
For customers using the legacy Raw Data version of the Snowflake destination, you may discover a table, like the RAW_EVENTS table, that is only used to hold temporary data during the sync process. This type of temporary table will usually contain zero rows.
Can I use single factor authentication to connect Fullstory to my Snowflake account?
Snowflake announced in December 2024 that they intend to block single-factor password authentication by November 2025. Beginning in April 2025, Snowflake intends to enforce Multi-factor Authentication (MFA).
The documentation has been updated to remove support for single-factor password authentication.
Action Required: If you are currently using single-factor password authentication with Snowflake, you need to do the following:
- Create a key-pair and assign the public key to the Snowflake user that you already set up for password authentication in Fullstory. Instructions for creating key-pairs and assigning public keys to Snowflake users can be found here. Note: you must generate an unencrypted private key. Fullstory will encrypt the key using Google's key management service.
- In Fullstory, go to Settings > Warehouse and then click the "Manage" button for the Snowflake destination. Navigate to the Key-Pair Authentication panel and enter the private key you created in step 1. Save your changes.