Snowflake Connector
Connector implementation
Build the Snowflake integration
Cloud data warehouse for structured and semi-structured data with elastic scaling
Implementation Overview
Implement a Snowflake connector that authenticates to the vendor surface, normalizes source records in Tajo, and activates eligible data in Brevo.
Treat this as an implementation guide. Build and validate the auth, mapping, sync, and operations paths before production use.
github.com/snowflakedb/snowflake-rest-api-specs
| Property | Value |
|---|---|
| Integration surface | OpenAPI |
| Implementation status | Implementation required |
| Category | Data Warehouses |
| Setup complexity | medium |
| Vendor documentation | docs.snowflake.com/en/developer-guide/snowflake-rest-api/snowflake-rest-api |
| Allowed host | Not recorded |
| Base URL | Not recorded |
| OpenAPI schema | github.com/snowflakedb/snowflake-rest-api-specs |
| MCP server | Not recorded |
| Last researched | 2026-04-12 |
Official Snowflake REST API OpenAPI specs repo.
Authentication
-
Use github.com/snowflakedb/snowflake-rest-api-specs to generate or validate typed API clients and request models.
-
Keep docs.snowflake.com/en/developer-guide/snowflake-rest-api/snowflake-rest-api linked from the connector runbook so operators can confirm vendor behavior during incidents.
-
Store credentials per Tajo workspace and keep tenant-specific secrets out of connector configuration files.
-
Confirm whether the vendor supports OAuth, API keys, private app tokens, signed requests, or MCP-specific authorization.
-
Document required scopes, token lifetime, refresh behavior, revocation behavior, and the least-privilege production scope set.
-
Add a credential smoke test that verifies read access to a harmless resource before running backfills or enabling webhooks.
Data To Sync
Start with these inferred data domains, then confirm exact vendor resources and permissions from the source documentation:
- Custom objects and operational metadata
The connector should make source records idempotent by keeping a stable key such as a vendor object ID, email address, event ID, ticket ID, order ID, or campaign ID. If the vendor only exposes list APIs, Tajo should store the cursor strategy and replay policy explicitly.
Mapping To Tajo/Brevo
- Map vendor IDs into stable Tajo external IDs before creating contacts, custom objects, events, or relationship records.
- Normalize emails, phone numbers, timestamps, currencies, locales, and consent fields before sending them to Brevo.
- Decide which records become Brevo contact attributes, which become custom events, and which should only remain in Tajo for operator context.
- Keep list, segment, campaign, and transactional-send names deterministic so backfills and retries do not create duplicate activation targets.
- Preserve the original vendor payload or a compact audit reference for troubleshooting field-level mapping issues.
Sync Strategy
- Run historical backfills separately from incremental sync so operators can pause or replay each path independently.
- Prefer updated-at or cursor pagination. If only offset pagination is available, persist page size, ordering, and restart rules.
- Treat webhooks as near-real-time hints, then refetch canonical records from Snowflake before writing to Tajo or Brevo.
- Deduplicate by vendor object ID, event ID, webhook delivery ID, or a deterministic hash when the vendor does not expose stable IDs.
- Capture rate-limit headers and retry-after values in connector telemetry, and make batch sizes configurable.
Error Handling And Operations
- Use idempotent writes for creates, updates, event ingestion, list membership changes, and Brevo activation calls.
- Separate authentication failures, permission failures, validation failures, rate limits, vendor outages, and Brevo mapping errors in logs.
- Send malformed or unmappable records to a dead-letter path with the source object ID, sync job ID, and operator-visible reason.
- Alert on repeated token refresh failures, webhook signature failures, cursor stalls, and sustained Brevo rejection rates.
- Include a runbook entry for credential rotation, webhook re-registration, backfill replay, and partial outage recovery.
Builder Checklist
- Does Snowflake have a verified authentication path for production workspaces?
- Are primary resources mapped to stable external IDs?
- Is historical backfill separated from real-time webhook ingestion?
- Are retries idempotent for creates, updates, sends, and event ingestion?
- Are Brevo contact attributes, custom events, and campaign triggers named consistently?
- Are failure modes visible enough for an operator to resolve without reading code?