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

# ELT/CDC: Monitoring Salesforce Pipelines

> How to monitor Salesforce pipelines, configure alerts, and troubleshoot common Salesforce sync issues in Integrate.io ELT & CDC.

Salesforce pipelines require monitoring at both ends of the integration. Integrate.io can report pipeline events and monitor data after it reaches a supported destination, while Salesforce provides the authoritative view of API consumption and connected-app authorization.

This guide explains how to monitor a Salesforce source, configure relevant alerts, and troubleshoot common Salesforce synchronization issues in Integrate.io.

For supported objects, fields, synchronization methods, and connector limitations, see [Salesforce source for ELT & CDC](https://www.integrate.io/docs/cdc/salesforce.md).

## What to monitor

A Salesforce pipeline can use REST, Bulk, or Streaming synchronization. API consumption, supported fields, replication behavior, and delete handling differ between these methods.

For effective monitoring, watch:

* Pipeline failures, stops, and other lifecycle events in Integrate.io.
* Salesforce API consumption and limit-related errors.
* OAuth authorization health.
* Data freshness and quality in the destination.
* Schema and data type changes.
* Delete behavior for the synchronization method used by each object.

Integrate.io does not currently expose every Salesforce-specific condition as a native metric. In particular, Salesforce remains the authoritative source for API usage and connected-app authorization.

## Pipeline lifecycle events

Use [Hooks](https://www.integrate.io/docs/cdc/hooks.md) to receive email notifications for selected pipeline events.

To configure a Hook:

1. In the Integrate.io dashboard, go to Settings.
2. Open the Hooks tab.
3. Click Create Hook.
4. Select Email as the Hook type and enter the recipients.
5. Attach the Hook to the Salesforce pipeline.
6. Select the pipeline events that should trigger a notification.

At minimum, configure notifications for pipeline failures and unexpected stops. You can also select other available events according to your operational requirements.

Hooks report pipeline events, but they do not report the Salesforce organization's remaining API allocation.

## Salesforce API usage

Salesforce applies API limits over a rolling 24-hour period. These limits apply across the organization, so activity from other integrations can affect the capacity available to Integrate.io.

### Bulk synchronization

The [Integrate.io Salesforce connector reference](https://www.integrate.io/docs/cdc/salesforce.md) documents a limit of 10,000 requests per day for Bulk synchronization. Bulk mode also consumes both REST and Bulk API quota.

Use an appropriate synchronization frequency to avoid unnecessary requests. If a Bulk pipeline slows or reports API-limit errors, compare its schedule with the Salesforce organization's API usage.

Do not assume that rising destination delay is always caused by the Bulk request limit. Other pipeline, source, staging, and destination conditions can produce similar symptoms.

### REST synchronization

REST API limits depend on the Salesforce edition, licenses, and additional API capacity purchased for the organization. They are not fixed per Integrate.io pipeline or Salesforce user.

To review Salesforce API usage:

1. In Salesforce, go to Setup.
2. Enter System Overview in the Quick Find box.
3. Open System Overview.
4. Review API Requests, Last 24 Hours.

Salesforce administrators can also configure API Usage Notifications to receive email when API consumption crosses selected thresholds.

The current [Integrate.io metric catalog](https://www.integrate.io/docs/cdc/available-metrics-types.md) does not list a Salesforce API-calls-remaining metric. Use Salesforce System Overview or the Salesforce Limits REST resource for authoritative API-usage information.

## OAuth authorization health

Salesforce limits OAuth approvals per user and connected app. Salesforce allows up to five approvals per user for the same connected app; when a sixth approval is made, the oldest approval is revoked.

An existing pipeline can therefore lose authorization after another Integrate.io connection is authorized using:

* The same Salesforce user.
* The same Integrate.io connected app.

Authorizations for unrelated Salesforce connected apps do not consume the same approval pool.

To reduce authorization conflicts:

* Use a dedicated Salesforce integration user.
* Avoid repeatedly authorizing new Integrate.io connections with the same user.
* Use additional integration users if you need more concurrent Salesforce connections.

A dedicated user reduces collisions with other applications and employees, but it does not remove Salesforce's per-user, per-connected-app approval limit.

If authentication fails unexpectedly, review Salesforce Setup > Connected Apps OAuth Usage and check whether the Integrate.io application or its authorization was blocked, revoked, or replaced.

## Destination freshness and data quality

Integrate.io Data Observability does not connect directly to Salesforce. It monitors supported databases and data warehouses, including destinations that contain data replicated from Salesforce.

Use Data Observability to monitor the destination tables populated by the Salesforce pipeline.

Useful metrics can include:

* Freshness to identify destination tables that have not received recent records.
* Count to detect unexpected changes in row volume.
* Nulls to detect missing values in important fields.
* Cardinality to monitor fields with an expected number of distinct values.
* Duplicate to detect unexpected duplicate values.

See [Available Metrics Types](https://www.integrate.io/docs/cdc/available-metrics-types.md) for the complete metric catalog.

### Replication Delay

The [Replication Delay](https://www.integrate.io/docs/cdc/available-metrics-types-replication-delay.md) metric measures the time since the pipeline last copied data from intermediary S3 storage to the destination.

Keep these limitations in mind:

* It measures intermediary-storage-to-destination delay.
* It does not measure Salesforce-to-pipeline delay.
* It is currently documented for pipelines with Redshift or Snowflake destinations.
* Metrics and alerts are available only while the pipeline is in the Running state.

Use Replication Delay to identify delays in the destination-loading stage, not to diagnose Salesforce API consumption by itself.

### Sync Lag

The [Sync Lag Metric](https://www.integrate.io/docs/cdc/available-metrics-types-sync-lag-metric.md) measures the volume difference between a source and the pipeline.

It is currently documented as available for MySQL pipelines. Other pipeline types may have it enabled upon request, but it should not be treated as a standard Salesforce monitoring metric unless Integrate.io has confirmed that it is enabled for the pipeline.

For a standard Salesforce pipeline, use pipeline events, Salesforce API usage, destination freshness, and row-count metrics instead.

## Schema and data type changes

Salesforce administrators can add, remove, rename, or change custom fields and objects. These changes can affect the fields available to the pipeline, the destination schema, and downstream queries.

Monitor for:

* Fields that are no longer accessible to the Salesforce integration user.
* Newly added fields that are not included in the pipeline configuration.
* Renamed or removed fields referenced by destination queries or reports.
* Type changes that map differently at the destination.
* Changes to object-level or field-level Salesforce permissions.

Use [Data Type Mapping across warehouses](https://www.integrate.io/docs/cdc/data-type-mapping-redshift-snowflake-and-bigquery.md) to understand how source types are converted for Redshift, Snowflake, and BigQuery destinations. The destination-specific mapping pages include Salesforce mappings.

The general [Schema Changes](https://www.integrate.io/docs/cdc/how-integrateio-elt-cdc-handles-schema-changes.md) documentation describes platform schema-change behavior, but it does not establish that every documented automatic schema operation applies to Salesforce. After changing a Salesforce field or object, verify the pipeline schema and destination before relying on automatic propagation.

For important schema changes, run a controlled test and confirm whether a table re-sync is required.

## Deleted-record monitoring

Delete handling differs significantly between REST/Bulk and Streaming synchronization.

### REST and Bulk synchronization

By default:

* Available records, including Salesforce soft-deleted records, are synchronized.
* Soft deletes are represented at the destination by a field such as IsDeleted.
* The destination row remains present.
* Salesforce hard deletes are not replicated to the destination.

As a result, a record that was hard-deleted in Salesforce can remain in the destination. This is expected connector behavior rather than evidence that the pipeline failed.

If you want to exclude deleted records from REST/Bulk synchronization, contact Integrate.io Support to discuss the available configuration.

### Streaming synchronization

For supported Streaming API objects:

* Deleted records can be included during the initial synchronization.
* During continuous synchronization, both soft and hard source deletes are applied as hard deletes at the destination.
* The complete destination row is removed.

If destination row counts drop after Salesforce records are deleted, confirm whether the affected object uses Streaming synchronization before treating the change as an anomaly.

For the complete behavior and supported-object list, see [Salesforce source for ELT & CDC](https://www.integrate.io/docs/cdc/salesforce.md).

## Configure monitoring and alerts

A complete Salesforce monitoring setup should combine Integrate.io and Salesforce alerts.

### Configure pipeline Hooks

Attach an email Hook to the Salesforce pipeline for relevant lifecycle events, including failures and unexpected stops. See [Hooks](https://www.integrate.io/docs/cdc/hooks.md).

### Configure Salesforce API notifications

In Salesforce, configure API Usage Notifications at thresholds appropriate for your organization. These notifications provide earlier warning when aggregate API consumption approaches the organization's allocation.

Also review API Requests, Last 24 Hours in Salesforce System Overview when investigating an API-limit error.

### Configure destination data alerts

Use [Data Observability Alerts](https://www.integrate.io/docs/cdc/data-observability-alerts.md) on the supported destination containing the replicated Salesforce data.

Depending on the destination and data model, useful alerts include:

* Freshness exceeding the expected pipeline schedule.
* Row count falling below an expected threshold.
* Null counts increasing in required fields.
* Duplicate counts increasing for expected unique identifiers.
* [Replication Delay](https://www.integrate.io/docs/cdc/available-metrics-types-replication-delay.md) exceeding the expected destination-loading interval for supported Redshift or Snowflake pipelines.

Data Observability alerts monitor metric thresholds in the destination. They do not directly report Salesforce API limits, OAuth approvals, or Salesforce connected-app status.

See [Data Observability Metrics](https://www.integrate.io/docs/cdc/data-observability-metrics.md) for additional configuration information.

## Common Salesforce synchronization issues

| Symptom | Possible cause | Where to check |
| :- | :- | :- |
| Authentication fails after another Integrate.io connection was authorized | The same Salesforce user exceeded the OAuth approval limit for Integrate.io's connected app, revoking the oldest approval | Salesforce Setup > Connected Apps OAuth Usage |
| Authentication fails without another known authorization | The OAuth token expired or was revoked, the connected app was blocked, or the Salesforce user's access changed | Integrate.io pipeline events, Salesforce Connected Apps OAuth Usage, and the integration user's permissions |
| INVALID\_SESSION\_ID | The Salesforce session expired or was revoked; session IP locking can also invalidate a session if requests use different addresses | Integrate.io pipeline events and Salesforce Setup > Session Settings |
| REQUEST\_LIMIT\_EXCEEDED or another API-limit error | The Salesforce organization approached or exceeded its rolling API allocation | Salesforce Setup > System Overview > API Requests, Last 24 Hours |
| Bulk synchronization slows or stops | The connector may have reached its documented Bulk request limit, or another source, staging, pipeline, or destination issue may be present | Salesforce API usage and Integrate.io pipeline events |
| Connected application cannot be authorized | The application is blocked, not approved, or the authorizing user cannot approve an uninstalled connected app | Salesforce Setup > Connected Apps OAuth Usage |
| A deleted Salesforce record remains in the destination | The record was hard-deleted at the source, but REST/Bulk synchronization does not replicate hard deletes | Confirm the synchronization method and review the connector's delete-handling behavior |
| Rows are removed from the destination following Salesforce deletes | Expected behavior for continuous Streaming synchronization | Confirm that the affected object uses Streaming synchronization |
| Destination data is stale but the pipeline has no failure event | The source, pipeline, staging, or destination may be delayed without producing a terminal failure | Check Salesforce API usage, pipeline events, destination freshness, and Replication Delay where supported |
| A field is missing or stops updating | The field was removed, renamed, excluded, or is no longer accessible to the integration user | Salesforce field-level permissions and the Integrate.io pipeline schema |
| A destination field has an unexpected type | The Salesforce field maps differently for the selected destination or connector version | Integrate.io destination-specific Data Type Mapping documentation |

## Related articles

> **[Salesforce source for ELT & CDC](https://www.integrate.io/docs/cdc/salesforce.md)**

> **[Hooks](https://www.integrate.io/docs/cdc/hooks.md)**

> **[Available Metrics Types](https://www.integrate.io/docs/cdc/available-metrics-types.md)**

> **[Replication Delay](https://www.integrate.io/docs/cdc/available-metrics-types-replication-delay.md)**

> **[Sync Lag Metric](https://www.integrate.io/docs/cdc/available-metrics-types-sync-lag-metric.md)**

> **[Data Observability Alerts](https://www.integrate.io/docs/cdc/data-observability-alerts.md)**

> **[Data Observability Metrics](https://www.integrate.io/docs/cdc/data-observability-metrics.md)**

> **[Data Stores](https://www.integrate.io/docs/cdc/data-stores.md)**

> **[Data Type Mapping across warehouses](https://www.integrate.io/docs/cdc/data-type-mapping-redshift-snowflake-and-bigquery.md)**

> **[Schema Changes](https://www.integrate.io/docs/cdc/how-integrateio-elt-cdc-handles-schema-changes.md)**


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.