Snowflake Integration

Updated 

Overview

Sprinklr-Snowflake Integration provides instant access to up-to-date Sprinklr data without manually integrating against API endpoints. The connector facilitates automated data synchronization from Sprinklr to Snowflake using an intuitive Sprinklr Marketplace UI.

To learn more about getting this capability enabled in your environment, please work with your Success Manager.

Using this integration, any administrator with access to Snowflake can set up the data sync from Sprinklr Marketplace UI/reporting dashboards and utilize the following capabilities:

1. Create Datasets: The Integration allows users to create datasets using widgets on Sprinklr Dashboards and send data to Snowflake Tables.​

2. Synchronization Frequency: While creating datasets, the desired frequency and Lookback Period can be defined within the Dataset itself.

3. Enable/Disable Dataset Sync: The automated Synchronization is enabled by default on creation of the dataset. This can be disabled as well from the Dataset manager.​

Underlying Architecture

The process involves extracting Sprinklr data and exporting it to Snowflake as .csv files via SQL queries using a JDBC connection, storing it temporarily in a Snowflake stage, and then transferring it to a user-defined Snowflake table using multiple Snowflake commands. This pipeline ensures that data from Sprinklr is effectively captured, processed, and stored within Snowflake for further analysis and reporting.

Integration Flow Diagram

Step-by-Step Guide: Installing Snowflake App from Sprinklr Marketplace 

1. Install a Snowflake Application from All Marketplace 

2. For installing a new Snowflake app, you need to add the following Details

Username

The username being used to access the Snowflake Account that needs to be Integrated

Password

The password being used to access the Snowflake Account that needs to be Integrated

Account Identifier

Unique Identifier for your snowflake account

Example: https://sprinklrintegrationconnector.switzerland-north.azure.snowflakecomputing.com

Warehouse

Warehouse where you need to compute the data being sent to Snowflake

Role

The role for which you need to connect the Snowflake Account

DB Name

The Database where you need the Sprinklr Data to be exported

Schema

Select the schema(Data Model)

Request Via Proxy

Use this option if you wish to send the requests via proxy

Stage(Optional)

Stage is a temporary storage area on Snowflake side and can be defined by the user while creating the application

3. Add the details mentioned in step 2 and click on next. You’ll be taken to the installed App Screen where you can view the details added by the user and can also manage visibility for the same.

Step-by-Step Guide: Creating Dataset to start the Data Export

1. Open your respective Reporting Dashboard and click on 3 dots and select Export to Snowflake option

2. Once you click on Create Dataset, you'll be redirected to a Dataset form where you have to fill in the following details

Dataset Name

Name of the Dataset being created by the user

Dashboard

Dasbhboard name from which the user needs to select the widget for which they need the Data Export(This is pre-filled for the first mapping)

Application

Application on which the Data Export is needed

Snowflake Table

Snowflake Table name where you want the data to be exported

Note: User can create a new table in snowflake directly from the Sprinklr UI as well.

Widget - Tab

Widget - Tab name for which the data needs to be exported

Lookback Period

Lookback period is the period for which the data needs to be exported in each individual Data export run

Frequency

Frequency of Data Export

Historic Sync Date

This can help you backfill old data over and above the normal frequency you have set for your Dataset

Note: Historical run creates a new Scheduled export that runs every 15 minutes and it captures the data for a 6 hour period which keeps on rolling until the time of creation of dataset is reached.

Step-by-Step Guide: Access Dataset Manager to view all Datasets

1. Reporting Dashboard

  • User can access the Dataset manager from the Reporting Dashboard 3 dots

2. Installed Snowflake App

  • User can access the Dataset manager from the Marketplace under Installed Apps section

Notes:

1. As a best practise the widgets that are to be exported to snowflake should be from the same report.

2. If the snowflake account authorised with Sprinklr has it's password updated then the same needs to be done on Sprinklr as soon as possible

Note: Minimum permission set required on the snowflake instance for this Integration:

Create / Update snowflake user which is assigned a ROLE with following permissions :

  1. CREATE FILE FORMAT

  2. CREATE TABLES

  3. CREATE STAGE

  4. INSERT, UPDATE, DELETE ON ALL TABLES IN GIVEN SCHEMA

  5. GRANT usage on database <db_name> to role <role_name>;

  6. GRANT usage on schema <db_name>.<schema_name> to role <role_name>;

  7. GRANT select on all tables in schema <db_name>.<schema_name> to role <role_name>;

  8. ALTER USER <user_name> SET JDBC_QUERY_RESULT_FORMAT=JSON