CRM integration services

CRM integration services that keep every system on the same record

We connect your CRM to ERP, billing, support, marketing and messaging. Before any code, we decide which system owns each record, how and when changes move, and what happens when an update fails, so a won deal becomes an order and an invoice without anyone re-typing it.

  1. Triggerdeal.wonWebhook from the CRM
  2. CRMDeal #318 · Closed WonAccount, contacts, products
  3. MapMap fields and IDsDeal.amount -> SalesOrder.total
  4. ValidateTax ID, address, currencyRules agreed in the mapping spec
    • Fails a rule
      Review queueHeld with the reasonFix in the CRM, then replay
  5. ERPSales order SO-2291Order number written back to the deal
  6. AccountingInvoice INV-1042Payment status flows back
    • Every hour
      CRMDeal.payment_statusRead-only field in the CRM
Fig. 01A won deal becomes a sales order and an invoice. Invalid data goes to a review queue, not into the ERP.
  • Event-driven
  • Scheduled
  • Failure path

What CRM integration means here

CRM integration connects your CRM with the systems around it so customer, order, invoice and ticket data is exchanged automatically and stays consistent. An integrated CRM is one where each field has a single owner, changes move on a defined trigger or schedule, records are matched by stable IDs, and failed updates are visible and recoverable.

What usually breaks

Most CRM integrations fail in the same few ways. Each has a mechanism that prevents it.

  • Duplicate records

    The integration creates a new contact or account whenever it can’t find a match, so the ERP ends up with three versions of the same customer.

    MechanismMatch on stable keys (external IDs stored on both sides, then normalized email and domain), and create only when the match rules say so.

  • Silent failures

    A sync stops because a token expired or a field became mandatory, and nobody notices until month-end reporting is wrong.

    MechanismEvery failed record goes to a review queue with the reason, and an alert fires when failures or queue age cross a threshold.

  • Overwrites from two-way sync

    Two systems both update the same address, and the last sync silently undoes a correction someone just made.

    MechanismField-level ownership. Fields editable in both systems get an explicit conflict rule and an audit log of overwrites.

  • Field changes break the connector

    An admin renames a picklist value or adds a required field, and the integration starts rejecting records.

    MechanismMappings are versioned in code, picklists are mapped value by value, and schema changes are tested in a sandbox before release.

  • API limits

    A bulk update in the CRM triggers thousands of calls and the integration hits the platform’s rate or daily limit.

    MechanismBatch and bulk endpoints for large changes, a rate-aware queue with backoff, and a budget per integration.

  • Mismatched IDs and currencies

    Orders reference the wrong account, or amounts land in the ERP in the wrong currency or tax treatment.

    MechanismA cross-reference of IDs per object, currency and tax rules written into the mapping spec, and validation before writing.

Common CRM integrations

What typically moves between a CRM and each kind of system. Your direction and timing may differ; this is where the conversation starts.

Typical CRM integrations by system type
SystemWhat movesDirectionTypical mode
ERPAccounts, products and prices, sales orders, order and delivery statusTwo-way, split by fieldEvent-driven for orders; scheduled for price lists
Accounting and billingCustomers, invoices, payments, credit statusCRM to billing for invoices; billing to CRM for payment statusEvent-driven out, scheduled back
Support deskContacts, organizations, tickets, satisfaction scoresTwo-way for contacts; tickets read in the CRMEvent-driven
Marketing automationLeads, lifecycle stage, consent, campaign membershipTwo-way with consent owned by one sideEvent-driven
E-commerceCustomers, orders, returnsStore to CRMEvent-driven (order webhooks)
Telephony and messagingCalls, messages, recordings links, conversation ownerChannel to CRM; CRM triggers outboundEvent-driven. For WhatsApp, see WhatsApp CRM integration.
E-signatureContract documents, signature statusCRM sends; status returnsEvent-driven
Customer portalProfile, cases, documents, order historyTwo-wayEvent-driven or on-demand API reads
Data warehouseAll CRM objects for reportingCRM to warehouseScheduled delta (hourly or nightly)

Sync modes and conflict rules

How data moves is a choice per flow. Each mode has a trigger, a typical delay and a rule for what wins when values disagree.

  1. One-way push

    The CRM is the only place the data is created; the other system just needs it. Example: won deals become sales orders.

    Trigger
    CRM change event or webhook
    Typical delay
    Seconds
    Conflict rule
    None possible: the target never edits these fields.
  2. One-way pull

    Another system owns the data and the CRM shows it to sales. Example: payment status and outstanding balance.

    Trigger
    Schedule, reading records changed since the last run
    Typical delay
    Minutes to hours
    Conflict rule
    Fields are read-only in the CRM.
  3. Two-way, owned by field

    Both systems edit the same record, but not the same fields. Example: the CRM owns contacts and addresses, the ERP owns credit limit and account number.

    Trigger
    Change events on both sides
    Typical delay
    Seconds
    Conflict rule
    Each field has one owner; non-owner edits are blocked or overwritten by design.
  4. Two-way, shared fields

    A few fields really are edited in both places. Example: a contact’s phone number updated by sales or support.

    Trigger
    Change events on both sides, with loop prevention
    Typical delay
    Seconds
    Conflict rule
    Agreed rule, usually latest timestamp wins; every overwrite is logged and can be reviewed.
  5. Scheduled delta

    Large volumes where minutes or hours of delay are fine. Example: nightly export of changed records for reporting.

    Trigger
    Schedule, using a last-modified watermark
    Typical delay
    Hours
    Conflict rule
    Target is a read-only copy.
Fig. 02Five ways two systems exchange data. Line style shows timing; arrowheads show direction.
  • Event-driven
  • Scheduled

Field ownership and mapping

The mapping spec is the contract between systems. This is what a few rows of it look like for a CRM-to-ERP sync.

Example mapping rows, CRM account to ERP customer
CRM fieldERP fieldOwnerTransformRule
Account.erp_customer_idCustomer.idERPWritten back after createMatch key. Never edited by people.
Account.nameCustomer.legal_nameCRMTrim, max 100 charsRequired
Account.billing_countryCustomer.country_codeCRMCountry name -> ISO 3166 codeMust map to a valid code
Account.tax_idCustomer.vat_numberCRMStrip spacesRequired for EU customers
Account.credit_limitCustomer.credit_limitERPCurrency of the ERP companyRead-only in the CRM
Account.industryCustomer.segmentCRMPicklist mapped value by valueUnmapped value goes to review

Four decisions sit behind every mapping spec. External IDs: each system stores the other’s identifier, so records are matched exactly rather than by name. Picklists: values are mapped one by one, with a rule for anything unmapped. Currency and units: conversions and rounding happen in one place. Deduplication keys: the fields used to find an existing record before creating a new one, such as normalized email plus company domain.

CRM APIs by platform

What each common CRM offers for integration, and what to plan for. We don’t sell licences for any of them.

Salesforce

API style
REST and SOAP APIs, a Bulk API for large data volumes, and a Composite API to combine calls.
Change events
Platform Events and Change Data Capture publish record changes; Flows can also call out to external services.
Plan for
API request limits per org and edition, field-level security on the integration user, and custom objects that differ between sandboxes and production.

HubSpot

API style
CRM v3 REST APIs for objects, associations, properties and pipelines; batch endpoints for bulk reads and writes.
Change events
Webhooks delivered to a registered app, and workflow actions that can send data to external URLs.
Plan for
Rate limits that depend on the account tier, associations as first-class records, and property types that must match on both sides.

Microsoft Dynamics 365

API style
The Dataverse Web API, an OData REST interface over tables and relationships.
Change events
Webhooks and Azure Service Bus endpoints registered on table events, plus change tracking for delta reads.
Plan for
Service protection limits, solution layering when customizations are deployed, and authentication through Microsoft Entra ID.

Zoho CRM

API style
REST API for modules and records, with bulk read and write jobs for larger volumes.
Change events
Notification APIs and workflow rules that call webhooks on record changes.
Plan for
API credit limits that depend on edition and licences, data-center-specific API domains, and custom module names.

Pipedrive

API style
REST API for deals, persons, organizations, activities and products.
Change events
Webhooks for create, update and delete events on core objects.
Plan for
Rate limits per plan, custom fields identified by generated keys, and a simpler model with fewer custom objects.

API names and limits change between releases and editions. We check the current documentation and your account’s limits during scoping. For a CRM you built yourself, we work against its own API, or help design one through API integration.

Native connector, iPaaS or custom integration?

Three ways to build the same connection. The right one depends on volume, complexity and how much a failure costs.

Choosing how to build a CRM integration
OptionWhat it isFits whenWatch for
Native app or connectorA marketplace app built by the CRM or the other vendor.The standard objects and directions match your process.Fixed mappings, limited error visibility, hard to extend.
No-code automationTools such as Zapier or Make running trigger-action flows.Low volume, one direction, a missed run is easy to spot.Duplicates on retries, weak two-way sync, scattered logic across many zaps.
iPaaSAn integration platform such as Workato, MuleSoft or Boomi.Many systems, an existing platform licence, an internal team to own it.Licence cost; quality still depends on mapping and error design.
Custom integration serviceCode you own, deployed in your cloud, using each system’s API.Two-way sync, complex matching, high volume, audit needs, or a custom CRM.Needs monitoring and an owner, which we set up and can provide.

A custom CRM integration isn’t always more work than configuring a connector: a small, well-tested service with a clear mapping spec is often simpler to own than dozens of no-code flows. We start with what you already pay for and replace only the parts that fail.

How a CRM integration project runs

Each step ends with something you can review before the next one starts.

  1. Inventory the flows

    List every place data is re-typed or exported today, with volumes and how fast it needs to arrive.

    DeliverableFlow inventory with volume and latency per flow

  2. Decide ownership

    Name the system of record for each object and field, and agree conflict rules where both sides edit.

    DeliverableOwnership map

  3. Write the mapping spec and contract

    Field mappings, match keys, picklists, validation rules, authentication, limits and error handling.

    DeliverableMapping spec and interface contract

  4. Build and test in sandboxes

    Implement against sandbox accounts, then test with copies of real records, including the ugly ones.

    DeliverableTest report with edge cases

  5. Backfill and switch on

    Link existing records by ID, load history where needed, then enable live sync flow by flow.

    DeliverableBackfill reconciliation, go-live checklist

  6. Monitor and hand over

    Dashboards and alerts in place, a runbook for every alert, then handover to your team or ongoing support.

    DeliverableRunbook, alert rules, admin documentation

Monitoring in operation

After go-live, the integration should tell you what it did, what it retried and what it couldn’t do.

crm-erp-sync · todayillustrative
  1. 08:02:11okcrm -> erp · accountAccount 0017 updated: billing address (owner: CRM)
  2. 08:02:12okerp -> crm · accountCredit limit changed in ERP, written to Account.credit_limit
  3. 10:47:30failedcrm -> erp · orderPicklist value Public sector has no ERP segment, held in review
  4. 10:52:04okreview -> erp · orderMapping added, record replayed, SO-2304 created
  5. 13:15:00retrycrm -> erp · bulk1,200 changes after a CRM import, queued and sent at the allowed rate
  6. 14:00:00queuedbilling -> crm · paymentsHourly payment status pull scheduled
crm-erp-sync · today: example monitoring output
  • Review queue, not a log file. Failed records wait with the reason and can be replayed after a fix.
  • Alerts that mean something. Thresholds on failure count, queue age and silence, so a stopped sync is noticed too.
  • Loop prevention. Two-way sync ignores the changes it wrote itself, so updates don’t bounce between systems.
  • Release checks. CRM and ERP updates are tested against the integration in a sandbox before they reach production.

Questions about CRM integration

What is CRM integration?

CRM integration connects a customer relationship management system with the other applications a business runs, such as ERP, accounting, support desk, marketing automation and messaging, so records are created and updated automatically instead of being re-typed. A complete integration defines which system owns each field, when data moves, how records are matched, and what happens when an update fails.

What is a CRM API?

A CRM API is the programmatic interface a CRM exposes so other software can read and write its records: create a contact, update a deal stage, attach a note, or subscribe to changes. Most modern CRMs offer a REST API with OAuth 2.0 authentication, plus some way to push change notifications (webhooks or event streams) so integrations don’t have to poll.

Which CRM has the best API?

There isn’t one answer. Salesforce has the broadest set of APIs and event options; HubSpot’s v3 APIs are consistent and well documented; Dynamics 365 exposes a standard OData API through Dataverse; Zoho CRM and Pipedrive cover common objects well with simpler models. What matters is whether the API covers your objects, emits the change events you need, and has rate limits that fit your volume. We check those three things for your specific case.

How are conflicts handled in two-way sync?

By deciding ownership per field before building. If the CRM owns the billing contact and the ERP owns the credit limit, each system only writes its own fields and conflicts can’t occur on them. For the rare fields both systems may edit, we agree a rule in writing (for example, the most recent change wins, or changes from one system go to review) and log every overwrite.

Should we use Zapier or a custom integration?

Use a no-code tool such as Zapier or Make when the flow is simple, low volume and a missed run is easy to notice and redo. Use an iPaaS or a custom service when you need two-way sync, deduplication, retries with idempotency, high volume, or an audit trail. We build and maintain all three, and often combine them.

How long does a CRM integration take?

A single one-way flow between two well-documented APIs can run in production within a few weeks. A two-way sync of accounts, orders and invoices with an ERP, including mapping, backfill and monitoring, usually takes longer because most of the time goes into data decisions and testing against real records. We give a range after reviewing the systems and sample data.

Do you also migrate the existing data?

Yes. An integration often needs a one-time backfill before ongoing sync starts, and switching CRMs is a project of its own. See CRM migration services for how we map, load and reconcile historical data.

Next step

Show us where data gets re-typed

List the systems and the records that move between them today, even if they move by hand. We’ll reply with the questions that decide the design, or with a proposal to scope it.

Scope a CRM integration

Useful to have ready

  1. The CRM and the systems it should exchange data with
  2. The records involved: accounts, contacts, deals, orders, invoices, tickets
  3. Rough volumes per day and how quickly changes need to arrive
  4. Connectors or automations already in place, and where they fail

Not everything is needed. A rough answer is enough to start.