> For the complete documentation index, see [llms.txt](https://docs.chord.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chord.co/activate/event-streaming/destinations/data-warehouses/snowflake.md).

# Snowflake

Snowflake is a cloud data warehouse with compute-based pricing. This destination loads your Chord events into a Snowflake database that you own, so you can analyze them with SQL next to your other data. Like all warehouse destinations, it loads events in batches, not within seconds.

## Getting started

You need:

* Your Snowflake **account** name.
* The **database** and **warehouse** Chord should use.
* Credentials for a Snowflake user that can write to that database. You can authenticate with a [key pair](https://docs.snowflake.com/en/user-guide/key-pair-auth) or with a username and password.

If you use key-pair authentication, [generate the private key](https://docs.snowflake.com/en/user-guide/key-pair-auth) first and paste it in PEM format, with line breaks.

## Settings

* **Destination Name** (required): a name to tell this destination apart.
* **Authentication Method** (required): **Key-pair** or **Username/Password**. Defaults to **Key-pair**.
* **Username**: your Snowflake username. Chord shows this field for both authentication methods, because key-pair login also signs in as a Snowflake user.
* **Password**: your Snowflake password. Chord shows this field only when the authentication method is **Username/Password**.
* **Private Key**: your Snowflake private key, in PEM format with line breaks. Chord shows this field only when the authentication method is **Key-pair**.
* **Private Key Passphrase** (optional): the passphrase for the private key, if it has one. Chord shows this field only when the authentication method is **Key-pair**.
* **Account** (required): your Snowflake account name.
* **Database** (required): the Snowflake database Chord loads events into.
* **Schema** (optional): the schema inside that database. Defaults to `PUBLIC`.
* **Warehouse** (required): the Snowflake warehouse that runs the loads.
* **Parameters** (optional): extra Snowflake connection parameters, as key and value pairs.
* **Consent Requirements** (optional): the consent categories a visitor must accept before Chord sends data to this destination. See [Consent](/activate/event-streaming/consent.md).

## Connect

Add **Snowflake** from the destination catalog, using the settings above. See [Connect a destination](/activate/event-streaming/connect-a-destination.md) for the full steps.

## How events load

Chord loads events in batches, typically about once an hour. Events do not appear in Snowflake the moment they happen.

## Tables and columns

Chord creates the schema and the tables for you if they do not exist, and it adds a column whenever an event brings a property the table does not have yet. You do not create tables or columns yourself.

Chord writes events to these tables:

* **`tracks`**: one row for every `track` event, with the event's top-level fields but not its properties.
* **One table for each event name**: the same `track` event, with its properties, in a table named after the event. Chord lowercases the name and replaces spaces with underscores, so `Order Completed` loads into `order_completed`.
* **`pages`**: `page` events.
* **`identifies`**: `identify` events.
* **`groups`**: `group` events.

Column names are written in snake case, for example `order_id`.

Snowflake stores table and column names in upper case unless they contain special characters. Chord follows that rule, so `order_completed` appears as `ORDER_COMPLETED` in Snowflake. Write your queries with that in mind.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chord.co/activate/event-streaming/destinations/data-warehouses/snowflake.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
