ERP–CRM integration: batch, synchronous APIs or events?

Sawsan Sayad
Sawsan Sayad covers enterprise systems, AI and business software for The Blue LED Global.
Use batch transfers when the business can wait for a defined processing window, synchronous APIs when a user or process needs an immediate result, and event-driven messaging when downstream systems should react to changes without blocking the source. Choose per data flow. One ERP–CRM connection often needs all three, with reconciliation and named exception owners.
For initial loads and cutover, see Planning ERP data migration and system integration. This article addresses ongoing flow behavior.
What does “real time” mean for your process?
Replace “real time integration” with a business deadline. Must the salesperson receive an answer before confirming an order? Can invoice status reach CRM later? How old may a dashboard’s data be?
Record the maximum acceptable delay, peak workload, authoritative system and consequence of missing the deadline. Include an outage scenario: whether users may continue with a visible pending status or must stop. Use these decisions to guide architecture.
Which integration pattern fits each flow?
Use this original worksheet; verify supported interfaces, licensing and measured behavior.
| Pattern | Suitable buyer requirement | Main tradeoff | Acceptance evidence |
|---|---|---|---|
| Batch transfer | Periodic catalogue updates, reporting extracts or bulk loads with an agreed delay | Data remains stale between completed runs; some records may fail | Completed run, accepted/rejected counts and business totals |
| Synchronous API | A bounded lookup or transaction whose result is needed now | Caller depends on target availability and response time | Authoritative result, timeout behavior and safe retry |
| Event-driven messaging | Several systems need to react after a business change | Consumers can lag; duplicates and ordering need design | End-to-end state, lag, replay and exception handling |
These are processing choices, not transport categories. A batch job can be submitted through an API. Microsoft’s Dynamics 365 integration overview distinguishes immediately executed business logic from APIs that schedule later import/export work. An accepted submission does not establish that all records have been processed.
When should batch transfers be the default?
Choose batch when a documented freshness window is sufficient and the source supports efficient bulk extraction or loading. Agree the schedule, cutoff, time zone and expected completion window with business owners.
Define how each run selects records: a full snapshot or changes since a recorded checkpoint. Specify how updates, deletions and late changes are represented. Advance the checkpoint only under an agreed success rule; otherwise a failed run can create a gap.
Give every run an identifier and separate submitted, accepted and rejected records. Decide whether a partial failure blocks the whole flow or sends exceptions for correction. Replaying corrected rows should preserve business identifiers and avoid duplicate transactions. Never mark the interface healthy solely because a file arrived.
When is a synchronous API justified?
Use it when waiting for the target’s decision is part of the workflow, such as retrieving current availability or validating an order. Keep the request bounded, and confirm which result means “committed,” “accepted for later work” or “rejected.”
An immediate lookup does not reserve stock or guarantee that an order created later will pass validation. The final transaction must apply the target system’s business rules.
Agree timeout, retry limits and handling of uncertain outcomes. If a connection drops after submission, a failed response may leave the caller unsure whether the target committed the action. AWS’s idempotent API guidance explains using a caller-provided request identifier to distinguish a repeated operation from a new intent. Verify the endpoint’s actual support; identical payloads alone are insufficient.
Where the endpoint lacks that contract, define a supported lookup or reconciliation procedure before another write. Include rate limits and peak response times in testing.
When does event-driven messaging earn its complexity?
Use events when a committed business change should reach multiple independent consumers, or when a short delay is acceptable and the source should continue during downstream disruption. “Invoice posted” is a business fact; “post an invoice” is a request requiring its own outcome.
Microsoft’s event-driven architecture guidance describes decoupled producers and consumers alongside eventual-consistency and operational challenges. Define acceptable lag, event identifiers, schema versions, retention and recovery behavior. Broker acknowledgement is distinct from completion in ERP or CRM.
Ordering requires a documented scope. Azure Service Bus sessions support ordered handling of related messages through sessions; that does not establish global order across every flow. Test whether an older update can overwrite a newer record, especially after replay.
Also verify how the source reliably publishes committed changes. AWS’s transactional outbox guidance addresses the gap between a database write and a separate event publication. Business data and its outgoing event must be recorded in the same transaction, and consumers must still handle duplicates safely. An integrator cannot assume this control over a third-party SaaS database. Assess the vendor’s supported event or change-capture mechanism.
How can the three patterns work together?
Hypothetical planning example: A regional distributor uses CRM for customer engagement and ERP for orders and finance.
- A synchronous request checks current product availability during order preparation. ERP validates the final submitted order.
- Supported order and invoice events update CRM status after ERP commits changes. CRM displays the last update and a pending state where appropriate.
- A scheduled batch reconciles orders and invoice balances by entity and currency, identifying missing or inconsistent updates.
This combination supports different deadlines without treating each flow identically. It is an illustrative design, not a customer deployment or a guarantee that any named platform provides these interfaces.
Who owns reconciliation and recovery?
The business owner defines what “matching” means: correct customer, entity, currency, amount and lifecycle status. The integration owner explains which records succeeded, failed or remain pending. A message delivered successfully can still map to the wrong entity.
Compare records at an agreed cutoff using shared business identifiers. Include cancellations, corrections and records intentionally excluded. Assign each difference to an owner with a resolution deadline.
Operational monitoring should show batch completion, rejected rows, API failures, event backlog and oldest unresolved exception. Document who may replay work, when automated retries stop, and who approves corrections affecting financial records.
What should the implementation brief and acceptance tests include?
Before build approval, assemble this checklist:
- Timing: deadline per flow, time zone, freshness display and outage policy.
- Contract: source of truth, identifiers, fields, versioning and permitted actions.
- Capacity: representative volumes, peaks, limits and backlog recovery target.
- Correctness: duplicate requests, partial batches, late events and interrupted writes.
- Recovery: missing events, unavailable targets, replay and unresolved-outcome procedures.
- Acceptance: business totals, lifecycle checks and responsible sign-off owners.
- Handover: monitoring, escalation, operating access and Arabic/English user instructions.
The Blue LED Global’s integration and data migration service scopes interfaces, mappings, exceptions and handover. Our analytics, reporting and AI service agrees data refresh, measures and output review; an AI workflow also needs these data timing decisions. Our testing, training and support service connects scenarios to acceptance evidence and support responsibilities.
Practical buyer questions
Is event-driven integration always better than batch?
No. Its operating complexity is justified by the workflow’s timing and independence needs. A reliable scheduled transfer may satisfy the requirement.
Does “exactly once” remove reconciliation?
Do not assume an end-to-end guarantee from a broker feature. Confirm its boundary, consumer behavior and target writes, then test business outcomes.
What should we bring to discovery?
Bring system names, one priority flow, sample records, peak volumes, required delay and business owners. Discuss your integration requirements with The Blue LED Global to define the next assessment.
By Sawsan Sayad. Sources checked on 5 October 2026.
Sources
- Microsoft Learn: Dynamics 365 integration overview
- Microsoft Learn: Event-driven architecture style
- AWS Builders’ Library: Making retries safe with idempotent APIs
- Microsoft Learn: Azure Service Bus message sessions
- AWS Prescriptive Guidance: Transactional outbox pattern
- The Blue LED Global: System integration and data migration
- The Blue LED Global: Analytics, reporting and AI enablement
- The Blue LED Global: Testing, training and post-go-live support