> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Snowflake as a destination

> Send Kameleoon experiment exposure events to Snowflake to centralize campaign results and analyze them alongside your existing data.

<Warning>
  Provide the credentials using the **Key-Pair** authentication option, not the **Password** option.
</Warning>

## Activate Snowflake as a destination

Once you have [enabled the Snowflake integration for your project](./setting-up-snowflake), you can activate **Use Snowflake as a destination** to send the results of your Kameleoon campaigns to Snowflake.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/data-warehouses/snowflake/setting-up-snowflake/snowflake.png)
</Frame>

To do so, follow these steps:

1. Within the selected project's configuration, you'll find a section labeled **Use Snowflake as a destination**. Click this section.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/data-warehouses/snowflake/use-snowflake-as-a-destination/image-36.png)
</Frame>

2. Provide the Snowflake project ID associated with your Google Snowflake project
3. Click **Validate** to save and apply your configuration settings.

## What "Use Snowflake as a destination" does

Enabling **Use Snowflake as a destination** sends Kameleoon's selected events to Snowflake.

Kameleoon saves the events in the `KAMELEOON_EVENTS` schema of the `KAMELEOON` database you created, with write access for the user you created for Kameleoon during setup. Snowflake supports three event types, each stored in its own table.

Kameleoon stores experiment exposure events in `kameleoon_experiment_event`:

```sql theme={null}
CREATE TABLE kameleoon_experiment_event (
    nonce               BIGINT PRIMARY KEY,  -- unique identifier of the event
    timestamp           BIGINT,              -- timestamp in millis of the event
    visitor_code        VARCHAR(255),        -- Kameleoon visitor identifier
    custom_visitor_id   VARCHAR(255),        -- visitor identifier used by your company
    experiment_id       BIGINT,              -- Kameleoon id of the experiment
    variation_id        BIGINT               -- Kameleoon id of the variation
);
```

Kameleoon stores conversion events in `kameleoon_conversion_event`:

```sql theme={null}
CREATE TABLE kameleoon_conversion_event (
    nonce                   BIGINT PRIMARY KEY,  -- unique identifier of the event
    timestamp               BIGINT,              -- timestamp in millis of the event
    visitor_code            VARCHAR,             -- Kameleoon visitor identifier
    custom_visitor_id       VARCHAR,             -- visitor identifier used by your company
    goal_id                 BIGINT,              -- Kameleoon id of the goal
    revenue                 FLOAT,               -- revenue associated with the conversion
    negative                BOOLEAN,             -- negative set to true means that this event cancels a previous conversion
    metadata_id_to_values   OBJECT               -- map of goal metadata IDs to the set of values taken by that metadata
);
```

Kameleoon stores custom data events in `kameleoon_custom_data_event`:

```sql theme={null}
CREATE TABLE kameleoon_custom_data_event (
    nonce                   BIGINT PRIMARY KEY,  -- unique identifier of the event
    timestamp               BIGINT,             -- timestamp in millis of the event
    visitor_code            VARCHAR(255),        -- Kameleoon visitor identifier
    custom_visitor_id       VARCHAR(255),        -- visitor identifier used by your company
    index                   BIGINT,              -- index of the custom data
    count_by_value          OBJECT,              -- map of values taken by this custom data to their occurrence counts
    overwrite               BOOLEAN,             -- whether the value overwrites previous data within the session
    mapping_identifier      BOOLEAN              -- whether the index uses a mapping identifier
);
```

Kameleoon populates the `custom_visitor_id` field from the Cross Device Reconciliation custom data, if you set it.

Kameleoon enables experiment exposure events by default. Conversion and custom data event collection are a new feature subject to change. They aren't configurable via the UI. To activate them, contact the Kameleoon support team.
