Decide which system owns each fact
When two systems can edit the same customer, price or status, an integration can move the conflict faster without resolving it. Name one source of truth for each important field and define when another system may update it.
Use stable identifiers
Names and email addresses change. Record IDs are safer, but only if they are stored on both sides and never recycled. Define how an existing record is matched before deciding how a new one is created.
- What uniquely identifies the record?
- What happens when the match is missing or ambiguous?
- Can one system delete data the other still needs?
- How are retries prevented from creating duplicates?
Make failure visible and recoverable
Every external system will be unavailable eventually. A production integration needs a retry policy, a visible failed-job state and a simple way to reconcile what moved with what should have moved.
If the only sign of failure is a customer calling, the workflow is not finished.