> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zwiron.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce Connector

> Sync Salesforce CRM objects into your data warehouse with Zwiron.

**Zwiron** syncs **Salesforce CRM** into your data warehouse so analytics and ops teams work from an up-to-date copy of CRM data — without manual exports.

|                 |                                 |
| --------------- | ------------------------------- |
| **Source**      | ✅                               |
| **Destination** | —                               |
| **Sync modes**  | Full Refresh, Incremental       |
| **Auth**        | Sign in with Salesforce (OAuth) |

***

## Connect Salesforce

1. In Zwiron, open **Connections → New Connection → Salesforce**
2. Choose **Hosted** (Salesforce is a cloud API — no agent required for most orgs)
3. Choose **Production** or **Sandbox**
4. Click **Sign in with Salesforce** and approve access
5. Run **Scan / Profile**, then **Save**

Tokens refresh automatically during long syncs. If Zwiron shows **Re-authorize required**, use **Edit → Re-authorize** before profiling again.

***

## What you can sync

Zwiron discovers **queryable** Salesforce objects the connected user can access (standard and custom `__c`), including Account, Contact, Lead, Opportunity, Case, Task, Event, User, and custom objects.

* Stream names are Salesforce **API names** (e.g. `Account`)
* Incremental uses `SystemModstamp` (or `LastModifiedDate` when available)
* Objects without a usable cursor are Full Refresh only
* Soft-deleted rows: enable **Include deleted records** (`queryAll`)

Reports are not supported — sync the underlying objects instead.

***

## Incremental sync

When `SystemModstamp` or `LastModifiedDate` exists, that field is the cursor. Objects without either field are Full Refresh only.

***

## API limits

Salesforce enforces a **Daily API Request** allocation per org (rolling \~24 hours). Profile and discovery use a lightweight `describeGlobal` by default. If you see `REQUEST_LIMIT_EXCEEDED`:

1. Check **Setup → Company Information → API Requests**
2. Wait until usage drops, or ask your Salesforce admin to raise the allocation
3. Avoid looping Profile / Test Connection until then

This is an org quota, not a Zwiron outage.

***

## Out of scope (current release)

* Bulk API 2.0 job lifecycle
* Salesforce Change Data Capture / Pub/Sub
* Writing / reverse ETL into Salesforce

***

## Related

* [HubSpot](/connectors/hubspot)
* [Connectors overview](/connectors/overview)
* [Snowflake](/connectors/warehouses/snowflake) / [BigQuery](/connectors/warehouses/bigquery) / [Databricks](/connectors/warehouses/databricks) destinations
