Skip to main content
Kameleoon can’t read from or write to your Snowflake account until you grant it access. This page covers the Snowflake identifier, the user and role that Kameleoon uses, the schemas that each direction needs, and the fields to fill in within Kameleoon. You need permission to run SQL commands in a Snowflake worksheet. Source and destination use the same user and role, and each direction adds its own schema.

Kameleoon UI

To create a connection with your Snowflake warehouse, you must first fill in the following fields:
The following sections explain each field and how to configure it in your Snowflake account.

Snowflake identifier

The Snowflake identifier is the account identifier described in the Snowflake documentation. Kameleoon’s backend inserts this identifier into the full URL that connects to your account: https://account_identifier.snowflake-computing.com Only enter the substring account_identifier, not the full URL.

Create a Snowflake user

Password authentication

The Snowflake integration supports two authentication methods. The first is password authentication. To use it, run this command in a Snowflake worksheet to create a user named KAMELEOON_USER. Replace the example password with a strong password of your own:
You provide this password when you set up the integration in Kameleoon.
Password authentication works only when Snowflake is a source. To use Snowflake as a destination, use key-pair authentication, which the next section describes.

Key-pair authentication

The second authentication method uses an RSA key pair, which consists of an RSA private key and an RSA public key. Kameleoon generates this key pair in its backend and gives you the public key. Kameleoon stores the private key on its servers and uses it to connect to your warehouse. When you click Confirm, the Kameleoon UI displays the public key with the command that assigns it to the user you created. Copy the public key before you leave the screen, because the UI doesn’t display it again. If you lose the public key, erase the connection and configure it again to generate a new key pair.
To use Snowflake as a destination, you must choose key-pair authentication, not password authentication.

Snowflake role

Create the role

Run these commands to create a role named KAMELEOON_ROLE and assign it to the KAMELEOON_USER user. You can use your own naming convention. Enter the role name in the Role field in Kameleoon.

Grant permissions to the role

Grant the role access to your warehouse. This example uses a warehouse named MY_WAREHOUSE:
Kameleoon needs a database named KAMELEOON. Use this exact name, and grant the role permission to use the database and create tables in its schemas:
The FUTURE grants apply to the schemas that you create in the next steps.

If you plan on using Snowflake as a source

If you plan on using Snowflake as a source, create a schema named KAMELEOON_CONFIGURATION. Use this exact name:
Next, grant the Kameleoon role read access to the data that your audiences come from. For example, if your audiences are in the MY_AUDIENCES schema of the MY_DATA database, run these commands:

If you plan on using Snowflake as a destination

If you plan on using Snowflake as a destination, create a schema named KAMELEOON_EVENTS. Use this exact name. Kameleoon writes its event tables to this schema:
Setup is now complete. Next, activate Snowflake as a source, as a destination, or both.

Data region

Kameleoon stores the data for this integration in the data region of your account, which is either the US or the EU.