Workflows
Blocks
Integrations
Snowflake

Snowflake Action Block

What it does: Runs SQL against your Snowflake data warehouse through the Snowflake SQL REST API v2 and returns the rows as ready-to-use JSON objects.

❄️

In simple terms: Point the block at a warehouse, write a SELECT, and get back an array of row objects keyed by column name — feed them into an LLM, a report, an email, or a Google Sheet.

Credentials

Snowflake connections use key-pair (JWT) authentication — no password is stored. Follow the Snowflake key-pair auth guide (opens in a new tab), then assign the public key with ALTER USER <user> SET RSA_PUBLIC_KEY='...'.

FieldRequiredDescription
Account IdentifierYese.g. xy12345.eu-central-1. A pasted https://…snowflakecomputing.com URL is stripped automatically.
UserYesThe Snowflake user the RSA public key is registered on.
Private Key (PEM)YesThe matching RSA private key, including the -----BEGIN PRIVATE KEY----- lines.
Private Key PassphraseNoOnly if the private key is encrypted.
Default Warehouse / Database / Schema / RoleNoUsed whenever the block leaves the matching field empty.

Actions

ActionWhat it doesOutput
Run QueryExecutes a SQL statement, optionally with bindings; polls automatically if Snowflake replies asynchronouslyrows, rowCount, statementHandle, raw
Get Statement StatusFetches an in-flight or finished statement by its handleisRunning, rows, rowCount, raw
Cancel StatementCancels a running statementcancelled, statementHandle
List DatabasesRuns SHOW DATABASESrows
List SchemasRuns SHOW SCHEMAS IN DATABASE <db>rows
List TablesRuns SHOW TABLES IN SCHEMA <db>.<schema>rows
Describe TableRuns DESCRIBE TABLE <db>.<schema>.<table>rows

Tips

  • Bindings keep queries safe. Write WHERE created_at > ? and pass either the Snowflake format {"1":{"type":"TEXT","value":"2026-01-01"}} or a plain array ["2026-01-01", 10] — arrays are converted for you.
  • Rows are flattened from Snowflake's positional arrays into objects keyed by column name, so {{snowflake.rows[0].EMAIL}} just works. The untouched API response is still available under raw.
  • Async Mode = true returns the statementHandle right away. Pair it with a Wait block and Get Statement Status for very long queries.
  • Timeout sets the server-side statement timeout and also caps how long the block polls a 202 (asynchronous) response.
  • Identifiers used by the metadata actions accept only letters, digits, _ and $ (plus dots for qualified table names) — anything else is rejected before it reaches Snowflake.
  • Use Max Rows to keep large result sets from bloating the workflow context before passing them to an LLM.
Indite Documentation v1.7.1
PrivacyTermsSupport