To integrate with Snowflake, you will need to access your Snowflake console.
For this self-service integration, we also have some data requirements:
- All of your events must be unified into one singular table as opposed to having separate tables for each event type.
- By definition, an event must have a user_id, event_name, and timestamp field. The fields do not have to be named as such, and any additional fields will be treated as event properties.
- There can only be a maximum of one authenticatedID and one unauthenticatedID for aliasing.
- The event timestamp must be in UTC
- JSON fields must be pre-parsed and flattened into their own fields.
- All joins must be done beforehand.
For any advanced enrichments or modeling such as creating custom user aliasing logic, please contact us
Adding a Data Source In Indicative
In Indicative, click on Settings and select Data Sources
Click on New Data Source
- Select Connect via Data Warehouse or Lake
- Select Snowflake as your data connection and Define your own schema as the connection schema and click Connect
- You should see this Snowflake Overview screen. Click Next
- Log in to your Snowflake account.
- Enter the Account ID information into Indicative.
Account ID is everything to the left of .gcp.fnowflakecomputing.com/...
- Enter the Warehouse name.
- Enter the Database name.
- Click into Warehouses and copy the Schema.
- Enter the Table name.
- For Auto-Generated Password, we randomly generate a password for you to use. If you would like to create your own password, please replace the autofilled value in that field.
- You will need to copy and paste these code snippets into your Snowflake console. The last snippet is optional.
- Navigate to the Worksheets tab and paste the snippets into the SQL runner, check the All Queries checkbox, and hit Run.
- Click Next to test your connection
Load Timestamp Field
Select the field used to identify new data. We recommend using a timestamp that denotes when the event was published, not the actual event timestamp to allow for late data to be collected. This will not impact your analyses since we reference the event timestamp for our queries.
For example, if an event with an event timestamp of 12/1 was published to the table on 12/3, this will not be collected unless we use the publishing timestamp since every daily extract would look for events that occurred on 12/3. Using the publishing timestamp will allow us to extract all new data that was published to the table on a nightly basis.
Select the date from where Indicative should load your data from.
If your data history exceeds 1 billion events, a Solutions Engineer will contact you to assist with the integration.
Select the frequency to make new data available in Indicative.
Select when we should start extracting your data in UTC. This time should be when all of your previous day's data is fully available in your table for extraction.
- In the Events Field section, input the field that should be used to derive Indicative event names.
- For Timestamp, input the field that represents the time that the event was performed.
- Click Next
After this step, we will perform a few checks on your data with the model that you provided. The checks are:
- Valid event field (Do at least 80% of your records have a value for the event field?
- Valid timestamp field (Do at least 80% of your records have a value for the timestamp field?
- Total number of unique events. We recommend 20-300 unique events and limit it to 2000.
After some basic checks, we can define your users within your data. For more information on User Identification (Aliasing), please refer to this article.
- If you choose to enable Aliasing:
- Unauthenticated ID - Input the field used to identify anonymous users.
Authenticated ID - Input the field used to identify known users.
- I you choose to disable Aliasing, press Disabled:
- Unauthenticated ID - Enter the field used to identify your users. All users must have a value for this field.
If you have a non-null value that represents null UserID values, please click on the Show Advanced button. In this field, please enter these non-null values.
After this step, we will perform additional checks on your data with the user model that you provided. The checks are:
- User Hotspot (Is there a single UserID that represents over 40% of your records?)
- Anti-Hotspot (Does your data have too many unique userIDs? A good events table contains multiple events per user)
- Too many unauthenticated IDs for a single authenticated userID
- Too many authenticated IDs for a single anonymous ID
You should see a summary of your data based on the last 7 days in two main blocks.
You should only be concerned if the margin of error is significant. If so, please reach out to a product specialist:
You should see a daily breakdown of your Total Event Count, and the number of Unique Event Names. If there are certain events to exclude, please click on the Exclude checkbox for those events.
If you would like to exclude any events by regex or property value, please contact a product specialist.
Here you will see the number of Unique Property Names. If there are certain properties to exclude, please click on the Exclude checkbox for those events.
If you require more advanced configurations such as parsing out JSON fields, creating derived properties, or excluding properties based on regex, please contact a product specialist.
This section lists the number of Unique users seen. If the numbers do not look correct, please go back to the User Modeling section to confirm that the correct ID was chosen.
Waiting for Data
If you see this screen, you're all done! You should see your data in Indicative within 48-72 hours and will be notified by email.
For additional advanced settings such as excluding certain events and properties, please refer to this page