✅ Source ❌ Destination
With MadKudu + Snowflake, send your engagement, intent or CRM data to MadKudu.
Note: this integration is in Beta, tell us what you think at product@madkudu.com
Note: If you'd like to send MadKudu data to your Snowflake (Destination), you can do so through the Amazon S3 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 incrementallynew rows based on
created_at
and updated rows based on
updated_at
instead of your whole table at every pull to go faster
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.
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)
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
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.