✅ Source ❌ Destination
What does this integration do?
Turning on the Snowflake integration allows you to send Snowflake data to MadKudu: product usage, web visits, contact properties, account properties... etc to surface to your Sales reps in the MadKudu iFrame in Salesforce or leverage in a scoring model.
Important notes
- Data in Snowflake typically resides in tables. When sharing data with MadKudu, the best practice is to create separate tables for Event data, Contact data, and/or Account data. You don't need to send all 3 objects: if you have your CRM already connected to MadKudu you can send only event data with the contact email for example.
-
In each table shared with MadKudu, there must be a column corresponding to a
created_at
andupdated_at
: MadKudu pulls data incrementally- new rows based on
created_at
- and updated rows based on
updated_at
instead of your whole table at every pull to go faster
- new rows based on
- It is recommended to create a dedicated user for MadKudu in Snowflake instead of connecting your own user. Please grant the MadKudu dedicated user USAGE privileges on the Database and Schema, and SELECT on the tables you want to share. Learn more about Snowflake access control best practices.
MadKudu works with the following entities and required properties (if the naming doesn't match exactly these column you'll be able to map them in MadKudu but they need to be in there):
Events
Column | Type | example | Comment |
id | VARCHAR(256) | 03492f12-061b-4f54-b866-764b4f69fa80 | Required |
event_name | VARCHAR(256) | logged_in | Required |
event_timestamp | TIMESTAMP | 2023-12-02 20:22:51.780000 | Required |
contact_id | VARCHAR(256) | john@slack.com | Required (or send contact_id and the Contacts table) |
created_at | TIMESTAMP | 2023-12-02 20:23:12.010000 | Required |
updated_at | TIMESTAMP | 2023-12-02 20:23:12.010000 | Required |
event_{property} | depends on the property can be numeric or varchar or boolean | Optional |
Contacts
Column | Type | example | Comment |
id | VARCHAR(256) | 93d8AB4f69fa80 | Required |
VARCHAR(256) | john@slack.com | Required | |
created_at | TIMESTAMP | 2023-12-02 20:23:12.010000 | Required. UTC |
updated_at | TIMESTAMP | 2023-12-02 20:23:12.010000 | Required. UTC |
contact_{property} | depends on the property can be numeric or varchar or boolean | Optional. |
Accounts
Column | Type | example | Comment |
id | VARCHAR(256) | RECAB4f6 | Required |
domain | VARCHAR(256) | slack.com | Required |
created_at | TIMESTAMP | 2023-12-02 20:23:12.010000 | Required. UTC |
updated_at | TIMESTAMP | 2023-12-02 20:23:12.010000 | Required. UTC |
account_{property} | depends on the property can be numeric or varchar or boolean | Optional. |
How to send Snowflake data to MadKudu?
Pre-requisite
- You have access to your Snowflake account and to MadKudu app (you'll go back and forth to set the integration)
For MadKudu to start pulling data from your Snowflake account, please follow the following steps
- Log in to MadKudu app
- Click on Integrations > Snowflake
- Fill out the form with credentials from your user
-
Account: when you're in your Snowflake account you can find it at the beginning of the URL. It is case-sensitive. For more information on account names, refer to this Snowflake document on account identifiers.
-
Account: when you're in your Snowflake account you can find it at the beginning of the URL. It is case-sensitive. For more information on account names, refer to this Snowflake document on account identifiers.
-
-
Username / Password
Tip: it is recommended to use a dedicated user for MadKudu with read permissions on the warehouse, datasets and schema you want to share with MadKudu.
- Database: the name of your database
-
Schema: the schema containing the tables to share
- Enter the table names corresponding to Events, Contacts or Accounts (you don't need to send MadKudu all 3, only the ones needed for your use case)
-
Username / Password
-
- For each object, map your Snowflake table column names corresponding to the required properties. In the example below, the column in Snowflake corresponding to the event time is named "timestamp" and needs to be mapped into the event_timestamp (MadKudu naming)
- Click Save
- Click on Test connection to check MadKudu can connect to your schema
- For each object, map your Snowflake table column names corresponding to the required properties. In the example below, the column in Snowflake corresponding to the event time is named "timestamp" and needs to be mapped into the event_timestamp (MadKudu naming)
MadKudu will start pulling data moving forward! For MadKudu to pull historical data on these tables, please submit a support ticket - it's a quick configuration to turn on on our end.
Example of request:
"Hi, we'd like to pull all data from our Snowflake instance connected to MadKudu
- Table Events: from YYYY-MM-DD (we recommend 9 months of data)
- Table Contacts: from YYYY-MM-DD
- Table Account: from YYYY-MM-DD
Thanks"
At any time, you can see the status of the integration in Settings > Processes, under Connectors - Pull you should see the Snowflake integration and any error.
After a few hours, you can see the volume of Data already pulled by going to Data in the main left navigation bar and Snowflake
Frequently Asked Questions
Which privileges should I grant the dedicated user in Snowflake for MadKudu?
USAGE privileges on the database and schema, SELECT privileges on the tables. Learn more here from Snowflake.