Snowflake
Use GrowthLoop audiences for Snowflake tables.
Connect this destination to export audience membership as rows in a Snowflake table, for use downstream.
This destination writes to your Snowflake account and is a good fit when you want to:
- Write audience rows in Snowflake rather than a paid-media or messaging API
- Have a warehouse, database, and schema the export role can write to
- Match contacts on a unique identifier
This maps to GrowthLoop Audiences and Journeys:
| Use it for | Audiences | Journeys |
|---|---|---|
| Writing audience membership to a Snowflake table | ✓ | ✓ |
To connect Snowflake as your GrowthLoop warehouse source, see Snowflake. If MessageGears reads the table, use MessageGears instead.
Prerequisites
Make sure you have:
- A Snowflake warehouse, database, and schema where GrowthLoop should write the table.
- Your Snowflake Account ID, Username, and Role.
- A private key for that user. See Snowflake's key-pair authentication. If the key is encrypted, have the passphrase.
The role must be able to create tables and load data in that schema.
If you already have these values, skip to Set up Snowflake as a destination.
Find your warehouse, database, and schema
In Snowflake, click the context bar in the upper left of the query editor. The dropdown shows the warehouse, database, and schema.

Find your role and Account ID
The role appears under your username in the upper left.

Click the dropdown next to your username. The Account ID appears below Log Out.

Set up Snowflake as a destination
- In GrowthLoop, click the Destinations tab on the left sidebar.
- Click New Destination in the top right corner.
- Search for Snowflake under Data Warehouse and click Add Snowflake.

- Enter the required information, then click Create.
You set the warehouse connection here. You choose the Table Name later, when you export.
| Field | Description |
|---|---|
| Destination Name | Name this destination in GrowthLoop. Use a name so your team recognizes its purpose, like "Snowflake Export". |
| Sync Frequency | Set the default export frequency (for example, hourly or daily). You can override this setting for individual exports. |
| Schema | The Snowflake schema where GrowthLoop should create the table. |
| Database | The Snowflake database that contains that schema. |
| Warehouse | The Snowflake warehouse that runs the load. |
| Account | Your Snowflake account ID. |
| Username | Snowflake username. |
| Role | Snowflake role for the load. |
| Passphrase | Optional. Passphrase for the private key, if the key is encrypted. |
| Private Key | The user's private key. |
| Columns to Export | Optional. Comma-separated warehouse column names. If you leave this blank, GrowthLoop exports all columns. |
GrowthLoop validates the connection. Snowflake then appears in your list of connected destinations.
Export to Snowflake
From within GrowthLoop, export from an audience or from a journey Destination Node. See Export an audience or Build a journey if you need more information on these steps.
After building or selecting an audience, click Export, then search for your Snowflake destination. In a journey, add a Destination Node under Datawarehouse and select Snowflake.

Map identifiers
On an audience or in a journey Destination Node, map Unique Identifier. This destination requires a unique identifier for each row.
You can also map custom attributes from the audience or from the journey as additional fields.
Configure the export
This is where you set the campaign type and schedule for audience exports. On a journey Destination Node, you set timing on the journey canvas.
| Setting | Audience export | Journey Destination Node |
|---|---|---|
| Export Name | Defaults to the audience name. | Required. Enter a name so you can find the export in GrowthLoop. |
| Table Name | Required. Letters, numbers, and underscores only. | Required. Letters, numbers, and underscores only. |
| Campaign type | Choose a one-time or ongoing export. | The journey schedule controls when the journey runs and rows are sent to Snowflake. |
| Export Inclusion Criteria | All audience members for a full refresh, or Newly added audience members for additions and removals since the last export. | The journey sends contacts who reach this node. |
| Schedule | Set frequency, start date, end date, and days of the week for ongoing exports. | Users reach this node when the journey runs. Add a Delay Node or set Criteria Evaluation to control timing. |
| Personalization Fields | Extra columns for this export. By default, GrowthLoop sends the destination Columns to Export. | Extra columns for this export. |
Export behavior
This is what GrowthLoop writes when you export an audience.
| Behavior | What happens |
|---|---|
| What GrowthLoop writes | Rows in the Snowflake table you named. Direction is GrowthLoop → Snowflake. |
| When it runs | GrowthLoop sends the export as a batch on the next successful run. An export that starts Now runs within about 15 minutes. Journeys send exports on demand when users reach the Destination Node. |
| Table | GrowthLoop creates the table in the Database and Schema from setup, using the Table Name on the export. If the table exists, GrowthLoop adds any missing columns. |
| Match field | Unique Identifier is required. |
| Columns to Export | If you set this on the destination, GrowthLoop limits the table to those columns unless you add personalization fields. |
| export_date | Each run writes an export_date on the loaded rows. |
| One-time exports | GrowthLoop sends current membership once. |
| Ongoing exports | Each run loads updated membership. Earlier rows stay in the table. |
| Deletes | GrowthLoop does not drop the Snowflake table or delete earlier rows. |
Confirm the export was successful
When the run finishes, confirm you can use the data in Snowflake.
- Audience export: Open the Database and Schema you selected during setup and look up the Table Name from the export.
- Journey Destination Node: Open that schema and look up the table named on the Destination Node.
In GrowthLoop, review counts on the audience Exports tab, or open the Activity tab on the journey Destination Node. See Export an audience or Monitor a journey for more information.
Congrats on successfully exporting to Snowflake!
Troubleshooting
These are the issues we see most often. You can always email us at [email protected] for help.
| Problem | Cause | Resolution |
|---|---|---|
| Connection fails to validate | Account, Username, Role, or Private Key is wrong, or the role cannot use that database | Confirm the account ID, key-pair user, and role. The role must be able to use the Warehouse, Database, and Schema |
| Authentication fails | The private key does not match the user, or Passphrase is missing for an encrypted key | Assign the matching public key to the Snowflake user. Enter the passphrase only if the private key is encrypted |
| Table Name is rejected | The name uses characters other than letters, numbers, or underscores | Use only letters, numbers, and underscores |
| The table is missing | You are looking in the wrong database or schema, or Table Name does not match the export | Open the Database and Schema from destination setup and look for the export Table Name |
| Expected columns are missing | Columns to Export or Personalization Fields omit those columns | Add the columns on the destination or on the export |
| Rows fail to export | Unique Identifier is not mapped | Map Unique Identifier |
Updated 12 days ago
