Skip to main content

Creating Connections

Professional+

A connection links a configured source to your data warehouse and defines how data flows between them — which streams to sync, what sync mode to use, and when syncs run. This guide walks through the full setup from adding a source to scheduling your first sync.

Step 1 — Add a Source

Navigate to Calabi Connect → Sources → New Source.

Filling in the Source Form

  1. Select connector — Search by name (e.g., "Salesforce") from the connector catalog.
  2. Name your source — Use a descriptive label such as Salesforce Production or MySQL Staging.
  3. Configure credentials — Each connector has its own credential fields:
Credential TypeExample ConnectorsWhat to Provide
OAuth 2.0Salesforce, HubSpot, Google AnalyticsClick Authenticate — browser redirect handles token exchange
API KeyStripe, Mailchimp, MixpanelPaste key from the source platform's developer settings
Basic AuthPostgreSQL, MySQL, MongoDBHost, port, database name, username, password
Service AccountBigQuery (as source), Google SheetsUpload JSON key file
  1. Set optional parameters — Some connectors expose start date, lookback window, or object filters. These limit data volume on first sync.

Testing the Connection

Click Test Connection before saving. The test performs a lightweight handshake to verify:

  • Credentials are valid and not expired
  • Network connectivity from Calabi's infrastructure to the source
  • Required permissions are present (e.g., read access to selected objects)
OAuth tokens auto-refresh

For OAuth-based sources, Calabi handles token refresh automatically. You will not need to re-authenticate unless the source revokes access.

Firewall requirements

If your source is a self-hosted database, ensure Calabi's egress IP range is allowlisted in your firewall. Contact your administrator for the current IP list.

A green Connection Successful badge confirms the source is ready. Click Save Source.


Step 2 — Add a Destination

Calabi Connect writes all synced data to your organization's pre-configured data warehouse. In most deployments, a default destination is already set up and shared across all connections.

To verify or add a destination, navigate to Calabi Connect → Destinations.

FieldDescription
Destination NameDescriptive label (e.g., Snowflake Production)
Warehouse TypeSnowflake, BigQuery, Redshift, PostgreSQL
Host / AccountWarehouse endpoint or account identifier
DatabaseTarget database name
SchemaTypically raw — raw ingested data lands here
AuthUsername/password or key-pair (Snowflake), service account (BigQuery)
One destination per workspace

Most Calabi workspaces are configured with a single shared destination. Contact your admin before adding a new destination to avoid duplicate data.


Step 3 — Create a Connection

With a source and destination available, go to Calabi Connect → Connections → New Connection.

  1. Select Source — Pick from your saved sources.
  2. Select Destination — Pick from your saved destinations.
  3. Name the connection — Defaults to Source → Destination; rename to something meaningful like Salesforce → Snowflake.

Step 4 — Select Streams and Sync Modes

After selecting source and destination, Calabi Connect fetches the available streams (tables or objects) from the source.

Stream Selection

Toggle individual streams on or off. For large sources like Salesforce, consider starting with only the streams you need.

Sync Mode per Stream

Each stream can have an independent sync mode:

ModeHow It WorksWhen to Use
Full Refresh — OverwriteTruncates and rewrites destination table on every syncSmall reference tables (e.g., currency_codes)
Full Refresh — AppendAppends all source records without deduplicationAudit log use cases
Incremental — AppendSyncs only new rows based on a cursor column (e.g., updated_at)Large tables where history is cumulative
Incremental — Append + DedupedSyncs new rows, then deduplicates by primary keyRecommended for most operational tables
Default recommendation

Use Incremental — Append + Deduped for CRM objects (contacts, accounts, deals) and transactional tables. Reserve Full Refresh for small lookup tables under 50K rows.

Cursor Fields and Primary Keys

For incremental modes, select:

  • Cursor field — The column used to detect new/updated rows (usually updated_at or modified_date)
  • Primary key — Used for deduplication in Append+Deduped mode (usually id)

Most connectors pre-populate sensible defaults — review before saving.


Step 5 — Set a Schedule

Schedule TypeOptionsBest For
ManualTriggered on demand onlyDevelopment, one-off loads
Every X Hours1, 2, 3, 6, 8, 12, 24 hoursNear-real-time operational data
Daily (cron)Specify hour + minute in UTCOvernight batch loads
Weekly (cron)Specify day, hour, minute in UTCLow-frequency reference data
Custom CronFull cron expression (e.g., 0 6 * * 1-5)Complex schedules
All schedules run in UTC

Calabi schedules are always expressed in UTC. Convert your local business hours accordingly (e.g., 6 AM EST = 0 11 * * *).


Step 6 — Enable the Connection

Click Save & Enable. The first sync (full historical load) triggers immediately. Subsequent syncs follow the schedule.

Disabling a Connection

To pause syncs without deleting configuration:

  1. Navigate to the connection detail page.
  2. Toggle the Enabled switch to off.
  3. The connection retains all configuration — re-enable at any time.

Deleting a Connection

Deleting a connection removes the sync schedule and job history but does not delete already-synced data in your warehouse.

Deletion is permanent

There is no undo for connection deletion. If in doubt, disable rather than delete.


Next Steps