Databases & Data Warehouses

Snowflake connector

Query, merge, and bulk load data in Snowflake from any Neblex workflow or agent, and stream table changes back out as they happen, all under the same governance and audit trail as every other connector.

Key pair or OAuth 2.0
Authentication
SQL, Snowpipe Streaming
API surface
Tables, views, stages
Resources
Poll or inbound webhook
Change events

Overview

The Snowflake connector lets a Neblex workflow or agent treat a Snowflake account as both a destination and a source: load records into it, run queries against it, keep tables in sync with an upstream system, and react when rows change, without a separate ETL tool in the middle.

  • Runs against any warehouse, database, and schema the connection role can use
  • Writes go through staged bulk load for volume, or row-level insert and merge for small batches, chosen automatically by size
  • Table streams expose inserts, updates, and deletes as a trigger, so downstream flows react without polling the whole table
  • Schema is read from INFORMATION_SCHEMA, so new columns and tables appear without a connector update

Why teams use the Snowflake connector

The three jobs this connector is picked for most often, and what each one gets you.

  • Land upstream data without an ETL tool.
  • Push model output back to the business.
  • Let an agent query the warehouse read-only.

Worked example

The replication flow data teams turn on first.

Keep ANALYTICS.CRM.OPPORTUNITY in sync with Salesforce, on the next poll

Change data capture from Salesforce, merged into Snowflake on the record ID, with deletes handled as soft deletes.

  1. 1Trigger: Salesforce New or updated record on Opportunity, batched every 10 seconds.
  2. 2Shape: map the Salesforce payload to the warehouse column names and types (see table below).
  3. 3Load: for a batch above 5,000 rows, write to a stage and COPY INTO a scratch table. Below that, pass rows straight to the merge.
  4. 4Merge: MERGE INTO ANALYTICS.CRM.OPPORTUNITY t USING :batch s ON t.ID = s.ID, update on match, insert when not matched.
  5. 5Deletes: a second flow on the Salesforce delete event sets IS_DELETED = TRUE and DELETED_AT = CURRENT_TIMESTAMP() rather than removing the row.
  6. 6Watermark: write the max SystemModstamp seen to a control table, so a replay knows where to resume.

Example flows

Common patterns other teams start from with this connector.

  • Reverse ETL to the CRM. A scored-accounts model in Snowflake writes fit scores and segments back onto Salesforce accounts every hour. (Data)
  • Daily revenue snapshot. A scheduled query rolls up recognized revenue and posts the summary to a finance channel with a link to the run. (Finance)
  • Event stream landing. Product events from Kafka land in a raw table through Snowpipe Streaming, then a task shapes them into the model. (Data)
  • Analytics question agent. An agent answers plain-language questions by writing a query, running it read-only, and returning the result with the SQL it used. (Agentic)

Supported objects

Any object the connection role can see. New tables and columns are picked up from the information schema with no connector update.

Object types

Databases, Schemas, Tables, Views, Materialized views, Streams, Stages, File formats, Tasks, Sequences

The connector never creates objects implicitly. A flow that needs a scratch or control table does so with an explicit

Run statement

step, so nothing appears in your account that is not in a flow you can read.

Security and access

The connection uses a Snowflake role, so access is exactly what that role grants and no more.

  • Key pair or OAuth. Key pair authentication for unattended connections, OAuth 2.0 for interactive setup. No password storage.
  • Role-scoped access. Point the connection at a purpose-built role with grants on only the databases and schemas the flows need.
  • Network policy and private link. Works behind Snowflake network policies, and with private connectivity through an on-prem worker where the account is not public.
  • Query log in the run. Every statement, its bind parameters, row counts, and the query ID are captured in the Neblex run log, alongside Snowflake's own query history.

Limits, as the vendor publishes them

The shape of the vendor's limits, as published at the time of writing. Verify the exact figures for your plan; they change without notice. Neblex honors the vendor's own rate-limit and retry signals and backs off within them.

  • A single statement runs up to the warehouse statement timeout, default 172,800 seconds, usually set far lower per connection
  • Result sets held in a run are capped at 100 MB. Larger reads use Query to file
  • Row-level insert and merge batches cap at 16,000 rows or 16 MB per statement, larger batches route to staged load
  • Snowpipe Streaming targets sub-10-second visibility, subject to account throughput
  • Compute cost is the warehouse's, not Neblex's. A flow can pick a smaller warehouse for lookups and a larger one for backfills

What a flow can do in Snowflake

Run any SQL query, insert, update, and merge rows, bulk load from a stage, stream rows in with Snowpipe, create and alter tables, read from views, and many more.

The connector exposes 7 operations, generated from Snowflake as it ships, and 85.7% of them describe their output so later steps can map fields without guessing. Authentication: ConnectionString.

How flows react to changes in Snowflake

Snowflake does not push change events to Neblex. A flow reacts to changes either with a Poll for changes trigger that reads the connector on a schedule and detects inserts, updates, and deletes, or by giving Snowflake a Neblex webhook endpoint to call when it supports outbound notifications on your plan.

Frequently asked questions

Does the connector need a warehouse running at all times?

No. It resumes the connection's warehouse when a step runs and lets it auto-suspend after. You control the size and the auto-suspend timeout.

How does it react to row changes without polling?

It reads a Snowflake stream on the table, which tracks inserts, updates, and deletes since the stream was last consumed. The flow advances the stream offset only after the run succeeds.

Can it run arbitrary SQL?

Yes, through the Run statement action, bounded by the connection role's grants. Read-only roles are common for agent-driven queries.

What about very large loads?

Anything above the row-level batch limit is written to a stage and loaded with COPY, which is the efficient path for bulk. The flow picks the path by batch size.

Is my data staged outside my account?

No. Staged files use an internal Snowflake stage in your account, or a cloud stage you own. Neblex does not hold a copy.

See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.