Define what each entity is

Before integrating two systems you need to define precisely what a client, a company and a request are. The same person may get in touch several times; that doesn’t mean they should exist several times as a client, but nor should all their requests be merged into one.

You need to decide which data identifies each entity and when a doubtful match should be reviewed by a person. Also which system is the source of truth for each field: if two systems correct each other, you lose certainty about which value is correct.

The same event can arrive twice

When something fails, many systems resend the same event as a safety measure. That is correct behaviour. The integration must recognise that the operation has already been processed and not create a new record. Engineers call this idempotency: repeating the same request must not repeat its effect.

In practice, recording a unique reference for each operation and checking it before acting is usually enough. The specific implementation depends on what the systems involved allow.

Not every error is solved by retrying

If the connection was interrupted, retrying makes sense. If a required field is missing or a permission has been revoked, the error will persist and someone has to fix it. The most delicate case is when the target system recorded the operation but the confirmation was lost: before repeating, check whether it already exists.

I always keep visible which operations are pending and why, so the team can resolve them without overwriting correct data or creating new records by mistake.

What I test before going live

With test data, I send the same event twice, create two requests from the same client, manually edit a record in the target system and force an error just after saving. I also check that alerts reach the right person and that technical logs don’t store more personal data than necessary.

The API returning a correct response isn’t enough. I consider an integration valid when the data ends up as it should in every system and when a failure can be resolved without technical intervention.

If your systems share data and duplicates or inconsistencies appear, here is how I work, or book a meeting and we’ll look at your case.