All integrations
Salesforce logo
CRM & marketing

Salesforce integration engineering

We integrate Salesforce over the REST API for transactional work, Bulk API 2.0 for backfill, and Platform Events or Change Data Capture for change notification — designed around API limits, with field-level ownership rules and reconciliation instead of last-write-wins.

Request a scoping call

Salesforce integrations are constrained less by capability than by limits and org customisation. A design that ignores the daily API allocation works in a sandbox and fails in production during the first backfill.

We separate real-time and bulk lanes, use Change Data Capture where available rather than polling, and keep the mapping declarative so an org customisation does not require a code release.

Surfaces

What we build against in Salesforce

REST and Composite API

Transactional reads and writes with composite requests to reduce call count against the org's allocation.

Bulk API 2.0

Backfill and large-volume operations on a separate, checkpointed lane with a capped share of the request budget.

Platform Events / Change Data Capture

Push-based change notification, avoiding the polling patterns that consume allocation and still miss updates.

OAuth 2.0 connected apps

Scoped server-side credentials with rotation and per-integration user attribution in the audit trail.

Use cases

Work we are typically engaged for

Salesforce to system of record sync

Accounts, contacts, and opportunities synchronised with declared ownership per field, so finance-owned values are never overwritten by pipeline edits.

Reporting extraction

Immutable raw extraction into the warehouse with change history captured as slowly changing dimensions, so historical pipeline questions remain answerable.

Quote-to-cash automation

Closed-won events driving provisioning, invoicing, and entitlement with idempotent execution and compensating actions on failure.

Engineering standards

What every build includes

  • API allocation treated as a shared budget with named consumers.
  • Push-based change capture in preference to polling.
  • Declarative mapping so org customisation is configuration, not a release.
  • Reconciliation sweeps with per-field drift reporting.
FAQ

Salesforce integration questions

How do you avoid hitting Salesforce API limits?

Separate real-time and bulk lanes with a shared request budget, use composite requests to reduce call count, prefer Change Data Capture over polling, and cap backfills so they cannot starve production traffic.

Can Salesforce sync bidirectionally with an internal system?

Yes, provided field ownership is declared per attribute and writes are idempotent. Without those, both sides overwrite each other and the record oscillates.

Planning a Salesforce integration?

Send us the systems involved and the direction data needs to move. We will come back with an architecture outline, the risks worth pricing, and an indicative schedule.

Start a conversation