# Snowflake

Snowflake is a cloud-native data warehouse built for scalable analytics. Sending data to Snowflake with Coupler.io lets you centralize data from any supported source and run powerful SQL queries, build dashboards, and feed downstream analytics pipelines.

## Why use Snowflake as a Coupler.io destination?

* **SQL-native analysis** — query your imported data with any SQL tool, BI platform, or analytics framework
* **Type enforcement** — Coupler.io detects and maps column types automatically, so your data lands in Snowflake cleanly structured
* **Any source, one warehouse** — combine data from Google Ads, Stripe, HubSpot, Salesforce, and dozens of other sources into a single Snowflake database
* **Flexible destinations** — Snowflake is one of many destinations Coupler.io supports, alongside AI tools, Google Sheets, Excel, BigQuery, Looker Studio, and others
* **Scheduled refreshes** — keep your tables up to date automatically on the interval that fits your workflow

## Prerequisites

* A Snowflake account with an active warehouse
* A Snowflake role with the following privileges:
  * **USAGE** on the target warehouse
  * **USAGE** on the target database
  * **USAGE** and **CREATE TABLE** on the target schema
  * **INSERT** on the target table
* The warehouse must be running (not suspended) at the time of the data flow run, or set to auto-resume

## Quick start

{% hint style="success" %}
Make sure your Snowflake warehouse is set to auto-resume so it wakes up automatically when Coupler.io connects. If the warehouse is suspended and auto-resume is off, the data flow will fail.
{% endhint %}

{% stepper %}
{% step %}
**Create a new data flow and add your source.** Log in to Coupler.io, click **Add data flow**, and configure your data source — this can be any source Coupler.io supports, such as Google Ads, Stripe, or HubSpot.
{% endstep %}

{% step %}
**Select Snowflake as your destination.** In the destination step, choose **Snowflake** from the list.
{% endstep %}

{% step %}
**Connect your Snowflake account.** Click **+ Add Account** and authenticate via OAuth. You'll be redirected to Snowflake's login page to authorize Coupler.io access. Once authorized, you'll return to Coupler.io automatically.
{% endstep %}

{% step %}
**Set your target database, schema, and table.** Enter the **database** name and **table** name where Coupler.io should write data. The **schema** defaults to `public` — change it if you use a different schema. If the schema or table doesn't exist yet, Coupler.io will create them automatically on the first run.
{% endstep %}

{% step %}
**Choose a write mode.**

* **Replace** — drops all existing rows in the table and loads fresh data on each run. Best for dashboards and reports that always reflect the latest state.
* **Append** — adds new rows below existing data without removing anything. Best for event logs, transaction history, or any time-series data.

{% hint style="warning" %}
If you use Append mode and your source data structure changes (e.g., new columns are added), you'll need to manually update the Snowflake table schema before the next run.
{% endhint %}
{% endstep %}

{% step %}
**Run your data flow.** Click **Save and Run** to trigger the first manual run. Coupler.io will connect to your Snowflake warehouse, create the table if needed, and load your data. Once the run completes successfully, you can set up a schedule.
{% endstep %}
{% endstepper %}

## Supported features

| Feature              | Supported |
| -------------------- | --------- |
| Replace mode         | Yes       |
| Append mode          | Yes       |
| Automatic scheduling | Yes       |
| Type enforcement     | Yes       |
| Templates            | No        |
