Building an Integration: FAQ

August 25, 2021

I would like to integrate Erply with [a particular software], using [a particular technology]. Does Erply support it?

The short answer would be: the integration likely needs to be custom-built, but it is most definitely doable!

Start by finding out if the other software supports an integration method—and does it let read and write the necessary information.

Usually, what you need is an API (Application Programming Interface). Most modern software products, especially cloud products, offer an API. In the absence of an API, the software may still be able to exchange files over FTP, for example.

Initially, just check available documentation to verify whether the data appears to be accessible. The technology used—be it CSV, XML, RPC, SOAP, REST, EDIFACT—does not matter. The integration you are going to build in-house, or commission from a software consultant, must be the "middleman" that translates messages and data between Erply and the other system. Erply API and the other system's API are not able to talk directly to each other.

There are two reasons for that:

  1. An API is generally a "passive" entity. You can make calls to an API to retrieve data, or to create a document, or to send a command—but APIs do not generally reach out to each other to announce updates.
  2. Even if they happen to use the same general data format, or the same API conventions, messages do not match each other.

The integration must link the two interfaces together. Its role is to query one interface ("pull" data from it) and "push" that data to the other interface. Thus, the integration gives you control over what exactly gets passed to the other system, and also lets you transform the data as needed.

Therefore, the two most important questions are:

  1. What data is going to move?
  2. In what direction?

Start by drawing a simple diagram to establish the project's scope: what data do you want to exchange between the two systems? Here is an example:

A sample high-level integration diagram.


Most typically, the integration should run as a scheduled job. It must periodically query one API, to see if there are new items; or it can check an FTP account to see if new files have been dropped there. Found data can then be sent to the other API.