Skip to content
BV Solution. Independent software developer
EN NL
Let’s talk
Integrations

Connecting systems through APIs: what to settle before building.

Most integration problems aren’t technical. They’re decisions nobody made. A short guide to the ones that matter.

Abstract illustration of two systems connected by a green line carrying a message, with a dashed return line
In short

Before you connect two systems, settle which one owns which data, choose between API, webhook and export on purpose, and make failures visible.

01 Start with ownership

When someone asks me to connect two systems, the request usually sounds like “can you make X talk to Y?”. The useful question comes before that: which system is the source of truth for which data? If both systems can edit the same customer, you’ll spend the next year resolving conflicts. Decide who owns what, then connect.

Decide who owns what, then connect.

02 API, webhook or export

There are three ways to move data, and they fit different jobs:

API

You ask

You request data, or tell the other system to act. It fits when you need an answer now, or want to pull on your own schedule.

Webhook

They tell you

The other system reports that something happened. It fits when you want to react quickly without checking every few minutes.

Export

A file lands

CSV or XML: the old way, and sometimes the only option. Fine for a nightly batch, as long as someone notices when it doesn’t arrive.

Many integrations mix them: a webhook as the trigger, then an API call to fetch the full record.

03 Ready-made connector or custom build

A tool like Zapier or Make is often the right answer. If the flow is simple, the volume is low and a failure doesn’t cost much, use it and keep your money.

A custom integration starts to make sense when the logic has real rules, when you need to know exactly what happened to each record, or when the connector can’t reach the data you need. I’d rather tell you that in the first conversation than build something you don’t need.

04 What goes wrong in practice

  • The other system is down or slow. Requests need retries with a pause in between, and a queue so one slow call doesn’t block everything else.
  • The same event arrives twice. Webhooks get redelivered. The receiving side has to handle a repeat without creating a second order or contact.
  • The data doesn’t fit. A field is empty, a format changed, or a status shows up that you didn’t know existed. Decide what happens then, before it happens.
  • Nobody notices. The quiet failure is the expensive one. A sync that stops on Tuesday and gets noticed at month-end costs far more than one that raised an alert on Tuesday.

05 Keep what came in

In a lead-handling platform I built, leads arrived from forms, ads and marketing tools. When the same person submitted again, the easy option was to drop the duplicate. I kept every source event and tied them to the same person instead. Sales could see the whole history, and nothing disappeared because a rule decided it was a duplicate.

Storing the original payload costs very little, and it makes the question “why did this record change?” a lot easier to answer a month later.

06 Questions to ask before you start

If you can answer those, the technical part is straightforward. If you can’t yet, that’s the first thing to work out together.

  • Which system owns which data?
  • What should happen when the other side is unavailable for an hour? For a day?
  • How will you find out when something fails, and who gets the message?
  • Can you see what was sent and received for one record, a month later?
  • Who keeps the credentials, and who renews them?
Next step

Systems that don’t talk to each other?

Tell me what you’re trying to build, automate or fix. A few lines is enough.

I read everything myself. No newsletter, no CRM sequence.