Skip to content
KeneaKenea

Systems
for a working tomorrow

Explore my process

Technical guide / Systems integration

Systems integration: what to check before connecting ERP and CRM.

A useful integration preserves the identity and meaning of data as it moves between applications. Before building, decide which system owns each field, which event triggers a change and how to verify the result.

From context to a test

Information that arrives ready to use.

  1. Source
  2. Agreement
  3. Destination

By Kenea · Published and reviewed: .

1. Identify who maintains each data item

ERP and CRM may both contain a “customer” while meaning different things: a sales account, an invoicing entity or several locations. An integration needs an explicit mapping. Matching display names do not guarantee that two records describe the same entity.

Prepare a field map with stable identifiers, formats, required fields and update direction. Decide which application is authoritative for each field. One system need not govern everything, but conflicts between changes proposed by two applications must be resolved.

Illustrative mapping: adapt it to the actual process and software
DataRequired decisionExample conflict
Customer identifierHow to link both systems’ references.Two sales accounts point to one invoicing entity.
AddressSeparate delivery, contact and invoicing addresses.A sales update overwrites the delivery address.
Order statusDefine transitions and who authorises them.A delayed message changes “shipped” back to “pending”.
AmountAgree currency, precision and components.One system sends a total while the other expects a pre-tax amount.

Rules must also cover archived records, changes and possible merges. Avoid starting with two-way synchronisation of every field when the process only needs one reference sent in one direction.

2. Review the connection method and its conditions

First check what the vendor provides for your version and service tier. A published API does not mean every operation is available on your plan, and an existing connector may cover only part of the path.

These methods can be combined. An event may signal a change and an API retrieve current data; an export may support the initial load. The choice depends on freshness, volume, available functions and operating conditions. “Real time” needs a defined and measured acceptable delay.

3. Preserve identity when an operation is repeated

The same request may arrive more than once after a retry, double click or process recovery. The integration must recognise which operation each attempt belongs to. Creating a new reference on every retry breaks that link and can create a second record.

Some APIs offer idempotency: a way to repeat a request under defined conditions without repeating its effect. Stripe, for example, documents idempotency keys and restrictions on content and retention. This is behaviour of that service; check the guarantees of your actual destination. Source: Stripe, idempotent requests.

Retain the source reference, destination reference and relevant attempts. If the same reference arrives with different content, define whether it is a valid change or a conflict. Discarding everything resembling a duplicate can lose a legitimate update.

4. Distinguish a rejection from an unknown response

If the destination rejects a field and returns a complete response, there is information to correct. If the connection drops after submission, the result may be unknown. A client stopping its wait does not prove that the server stopped working.

AWS explains why timeouts and retries need to be designed together: repeating calls with side effects may duplicate those effects, and bursts of retries can worsen overload. Procedures must limit and space attempts and check when repeating is safe. Source: Amazon Builders’ Library, Timeouts, retries, and backoff with jitter.

For an unknown operation, retain evidence and use the destination’s query or reconciliation facilities. If it provides no suitable mechanism, a review procedure is needed. An error queue should show what happened, how long it has been pending, who owns it and the next action.

Event delivery also needs attention. Stripe documents that its webhooks may repeat and arrive in a different order from their creation. This is a concrete reason to check each provider’s contract instead of assuming one guaranteed order. Source: Stripe webhook documentation.

5. Define permissions and operational visibility

The integration account should have the permissions required by its authorised path. Separate test and production environments, identify who renews access and avoid including keys or complete documents in support logs.

To follow an operation, its reference, participating systems, known state and attempt times are often more useful than a large data dump. Match detail and retention to the process. The team should be able to identify pending work without opening a developer console.

Also decide how to detect absence. If a source should produce a daily batch but none arrives, a system that only alerts on reported errors may stay silent. Check for expected activity when it matters.

6. Test the path before authorising production

Proposed acceptance test scenarios
ScenarioResult to demonstrate
Normal operationCorrect data appears at the destination and remains linked to its source.
Repeated requestIdentity is preserved without an unintended extra operation.
Lost responseThe result stays unknown until queried or resolved through the procedure.
Invalid dataAn actionable explanation is available; the same error is not retried indefinitely.
Out-of-order eventsThe final state follows the agreed business rule, not just arrival order.
Restart or expired accessPending work is retained, the owner is informed and recovery is verifiable.

A change already applied in another system may not offer a simple “undo”. Describe what can be reversed and what requires a compensating operation or intervention. Test achievable recovery and its limits before extending the scope.

What should be documented

A commissioned technical assessment should support the next decision: a process map, data mapping, available interfaces, dependencies, owners and outstanding tests. Unknowns should remain explicit; API access is not evidence of a completed integration.

An accepted implementation would also document versions, required configuration, test evidence and operating procedures. Kenea’s systems integration work starts with the existing software and the process objective. If documents also need interpretation, review the choice between rules and AI and our applied AI approach.

The free assessment maps an initial direction without registration. Understanding interfaces, permissions and feasibility requires reviewing real systems within an agreed scope.

Explore my process View solutions

Sources and limits of this guide

Primary sources consulted on 8 September 2026: Stripe, Idempotent requests; Stripe, Webhooks; and Marc Brooker, Amazon Builders’ Library, Timeouts, retries, and backoff with jitter (2019). Stripe’s conditions describe its own service and may change; they do not apply automatically to every ERP, CRM or API. The matrices and acceptance plan are Kenea proposals, not evidence of an executed integration.

Kenea / Your privacy

Only what is needed.

Kenea does not use its own analytics or advertising. You can use the assessment without identifying yourself. External videos require a separate choice.

Technical preference
Only if you save it. Remembers your technical-storage preference for six months.
Colour theme
The system theme is used by default. If you choose light or dark, only that choice is saved in this browser until you change or clear it.
Kenea analytics and advertising
No tools of our own. Saving this preference does not authorise external videos.
Assessment
Answers stay on this page, without persistent storage. They are sent only if you choose to contact us.
External videos
Only after “Allow and play”. YouTube/Google receives connection data. Permission is for that video and is not saved.

This preference does not remove data or cookies from external providers.

Cookie policy · Privacy policy