How do you connect two software systems that were not built to work together?

First check whether either has an API; if so, a small service between them can translate and move data. If not, exchanging files or, as a last resort, reading a database may work. Whatever the route, decide which system is the source of truth for each piece of data.

Businesses accumulate systems that each do one job well and do not talk to each other. Connecting them is usually possible; the question is how robustly.

Options, in rough order of preference

  1. API to API. Both offer interfaces. A small service reads from one, converts, and writes to the other.
  2. Webhooks plus API. One announces events and the other is updated.
  3. File exchange. Exports and imports on a schedule, using CSV or similar, when no interface exists.
  4. Database-level access. Reading the other system’s data directly. Fragile and sometimes forbidden by the vendor; use with care.
  5. Manual with support. Sometimes a tool that makes copying quick and safe is enough.

Decisions that matter more than the technology

  • Source of truth. For each type of data, which system is authoritative? Without this, changes overwrite each other.
  • Direction. One-way or two-way. Two-way sync is much harder.
  • Identity. How do you know a customer in one system is the same as in the other?
  • Errors. What happens when a record is rejected? Who is told?
  • Frequency. Instant, hourly or nightly.

Start with one-way and one data type. Prove it, then extend. And keep logs: the day something looks wrong, they are how you find out why.

All questions