Skip to content

Snowflake: insert row

Use Snowflake: insert row to write a row into a Snowflake table from a journey step, through the SQL API, using a programmatic access token. Column values travel as bound parameters, not inside the SQL statement text, so a value can’t break out of its column and change what the statement does. This point authenticates with its own programmatic access token. It doesn’t use any account-level integration configured elsewhere in Settings.

Typical uses:

  • Feed a reporting table: insert a row per journey step reached, for a dashboard or scheduled query downstream.
  • Log events as they happen: write raw journey data straight into the warehouse instead of waiting on a batch pipeline.
  • Join with existing data: insert a device or tag value your Snowflake tables can join against your own datasets.

Configure the point

Anchor link to
  1. Drag Snowflake: insert row from the Integrations section of the left panel onto the canvas.
  2. Double-click the point and enter a Step Name.
  3. In Account host, enter your Snowflake account’s host from its URL, for example ab12345.eu-central-1.snowflakecomputing.com. Don’t include https:// or a trailing slash. Pushwoosh adds https:// and the API path itself.
Snowflake insert row drawer with Step Name filled and Account host set to a Snowflake URL
  1. In Programmatic access token, enter a token from Snowsight > your user > Settings > Authentication > Programmatic access tokens. It’s stored masked, like a webhook secret header.
Programmatic access token field masked
  1. In Table, enter the target table as TABLE, SCHEMA.TABLE, or DATABASE.SCHEMA.TABLE, using only letters, digits, and underscores. This point doesn’t ask for a warehouse, database, or schema separately: a bare TABLE resolves against whatever database and schema the token’s user defaults to, and a DATABASE.SCHEMA.TABLE value overrides them.
Table field set to PW.PUBLIC.TRAVELERS
  1. In Columns, add one row per table column to write. Enter the column name and the value. Names must be non-empty and unique, and take the same letters/digits/underscore rule as Table. A value can be fixed text or a traveler macro such as {{tag:Name}}, the same macros as in a Webhook body. Or click Insert Dynamic Value to pick an attribute an earlier step in this journey produced, for example an LLM response or a mapped Webhook value.
Columns name and value table with DEVICE_ID mapped to a device hwid macro
  1. Click Save.

The traveler continues to whatever step you connect next on the canvas.

Attributes after the step runs

Anchor link to
AttributeWhat it holds
snowflake_statement_handleThe submitted statement’s handle

How to use it in later steps

Anchor link to

The traveler already continued to the next step regardless of this attribute. Save it to a Tag with Update user profile if you need to check that statement’s status later through Snowflake’s own API.

Failures and unexpected responses

Anchor link to

A failed request drops the traveler from the journey. See Errors and failed requests.

Example scenario: Streaming journey activity into Snowflake

Anchor link to

A team wants journey activity in the same Snowflake table their own reporting already queries.

  1. Add Snowflake: insert row right after the step you want to log. Set Table to PW.PUBLIC.TRAVELERS. In Columns, set DEVICE_ID to {{device:hwid}}.
  2. Click Save.

Once this runs, the row lands in the same table the team’s Snowflake reporting already reads from.