Software

Integrating business software: data in one place

In a small business, software usually grows by accident. First comes the online store, then the accounting software, then a spreadsheet for stock, then a booking calendar and finally a mailing list. Each one solves its own problem, but they don't talk to each other.

The result is familiar: orders are entered into accounting by hand, stock levels don't match the online store, the same customer exists in five places with different details, and someone spends hours every week retyping data. Errors appear exactly where a person has to move data from one window to another.

Is integration worth it?

A simple calculation: how many hours a week go into transferring data by hand and fixing the resulting mistakes? If it is two hours a week, that is over a hundred hours a year. On top of that comes lost sales when a customer bought something that was no longer in stock, and confusion when the same customer's details differ from place to place.

If there is little manual work and little data, integration may not pay off. As the business grows, it almost always does.

Three ways to connect systems

1. An interface, or API

Modern programs have an interface (API) through which another program can read and write data. For example, an online store order can automatically become an invoice in accounting, or the quantity in the inventory software can flow into the online store.

Suits you if both programs are good and you don't want to give them up, and both have a working interface.

Keep in mind: an integration is a separate piece of software that needs maintenance. If one side updates its interface, the connection has to be checked too. Every integration is a place where data can fall out of sync, for example if one side is briefly down. A good integration can recover from that and lets you know when something wasn't transferred.

2. File import and export

Not all programs offer an interface. In that case data can be exchanged with files: one program exports a CSV or Excel file, the other reads it in. This can also be automated, so the file moves on its own once a day or once an hour.

Suits you if the data doesn't have to be up to date to the second and there is no interface, or it is too expensive.

Keep in mind: this doesn't work for stock if you sell the same goods online and in person at the same time. Within an hour the last item can go to two people.

3. One system instead of several

Sometimes the right answer is not to connect two systems but to replace them with one. If the online store and the stock are the same application, there is nothing to synchronise: a sale at the till and an online order change the same stock level at the same moment.

Suits you if the separate programs largely do the same work (products, customers, quantities) and most of the integration effort goes into keeping them consistent.

That is why I built my own platform, NUNDINAE, where the online store, inventory, POS and bookings are one application. Why stock levels drift apart between separate systems is covered in more detail in the post on online store and inventory sync.

How to choose

Ask yourself three questions:

  1. Which data has to be up to date immediately? Stock levels and free booking slots do. Accounting invoices can arrive an hour later.
  2. What don't you want to give up? If your accountant works in a particular program, that won't be changed. Then you need an integration.
  3. Where does the most manual work go? Start there. You don't have to connect everything at once.

Often the best solution is a mix: one system for sales, stock and customers, plus an integration with accounting.

How I do integrations

  1. I map the data flows. What data is created where, who needs it and how quickly.
  2. I check the interfaces. Whether the programs have an API, what it allows and whether using it costs money.
  3. I propose 1–2 options with the price and maintenance needs, even when the best option is not to connect anything.
  4. I build and test with real data in a separate environment before anything changes in the live system.
  5. I add monitoring that alerts you when a data transfer fails.

Integration is part of software modernisation and further development. Describe which programs you currently use and where data is moved by hand. I'll tell you which option makes sense for you.

Keep reading

Related services

Do you have an application nobody dares to touch?

I review the code and tell you honestly what state it is in and what the sensible next step is.