Guide

What to do when a program cannot connect to anything

Not every program in a company can be connected directly. A stock program from ten years ago, a supplier portal where all you can do is click, customer orders arriving as PDFs in email. Data from those places can be moved without a person too, just by a different route.

Author: Łukasz WłodarczykPublished:

Where the problem comes from

Programs written ten or fifteen years ago were not built with connecting in mind. They work, the company knows them, and replacing them would hurt more than their flaws do. Add supplier portals where all you can do is click, and customers who send orders as a PDF or a photo in an email.

The result is the same as with no connection at all: data from those places does not move on by itself. The difference is that here you cannot build a direct connection the way I describe on the main page of the guide. That leaves three other routes and one decision about replacing the program.

Scheduled file exchange

Nearly every program, however old, can save data to a file and load a file. That is what the connection is built on: at set times the system exports what it needs to send, drops the file in an agreed place, and the other program loads it. The same in the other direction.

Data does not flow instantly, only a few times a day. For the warehouse, accounting and price lists that is usually enough. It is not enough where a minute matters, for example stock levels for a shop selling the last units.

What to watch: the file format has to be agreed down to the column and the character, and the system has to check every file before loading it. A file cut off halfway, or with a shifted column, can do more damage than one person’s slip.

Reading emails and attachments

Customer orders, supplier confirmations, purchase invoices. They arrive by email, as a PDF, a spreadsheet or text in the body. The system reads the mailbox, recognises what each message is, pulls out the data and creates a document. A person gets it to approve, not to retype.

For documents with a fixed layout, say orders from one customer’s system, the reading is reliable and fast. For documents that differ from sender to sender, reading with AI helps, because it copes with a layout nobody has seen before. How that works and where it gets things wrong is on the page about reading invoices and documents.

A robot clicking in place of a person

The last resort. A program pretends to be an employee: it logs into the program or portal, fills in fields, clicks buttons and reads what appeared on the screen. From the outside it looks like a person working, only at three in the morning and without typos.

I only build this when there is no other route, and I say plainly what it carries:

  • It breaks when the screen changes. The vendor moved a button, added a pop-up, renamed a field. The robot stops and needs fixing. With portals that change every month, the cost of fixes can end up higher than the cost of building.
  • There is no confirmation. A direct connection gets a reply saying “received”. A robot only sees the screen and guesses whether the operation worked. So every operation the robot performs is recorded with a screenshot, so you can check what it did.
  • It may breach the terms of use. Some portals forbid automated use. I check that before building.

When replacing the program is the better option

Sometimes the cheapest integration is none at all. If a program can neither send a file nor accept one, and the only route is a robot, it is worth counting what maintaining that connection costs over three years and comparing it with the cost of replacing the program. For programs that do one simple thing, for example keeping stock levels, a module of your own, meaning a self-contained part of the system, is often cheaper than a robot.

I say this plainly, with numbers, once the scope is written down. Replacing makes sense when:

  • the program has no form of export or import at all,
  • the vendor no longer develops it and does not answer questions,
  • the program does something your own system has to be able to do anyway,
  • the yearly cost of maintaining a robot exceeds the cost of a new module.

It does not make sense when the program does something complex and does it well, for example full bookkeeping. Then we stay with file exchange and look for ways to make it more reliable.

Where to start

You do not need to write anything down before the call; if you like, a list of programs is enough. I will check which route each one allows and tell you where to start. What connections look like for programs that can connect is on the pages about connecting a shop and accounting integration.

Tell me in the form below which of your programs cannot connect and what data should come out of it. I will get back to you.

Questions and answers

How do I know whether a program can connect?

I check the vendor's documentation and, if needed, ask them directly. Many programs have a connection the company does not know about, because nobody asked. The reverse happens too. The vendor promises a connection and in practice it is a file export once a day. I would rather check that before quoting than discover it halfway through.

Does a robot clicking through screens breach the program's terms?

Before building I check the licence and the terms of use of the program or portal. If they forbid automated use, I look for another route or say there is none.

How long does connecting a program with no connection take?

File exchange usually takes a few weeks. Reading emails and documents about the same, plus time to learn your formats. A clicking robot is quick to build but needs fixing after every screen change, so its real cost only shows over time.

Contact

Tell me which of your programs cannot connect and what data should come out of it

You do not need a specification. Describe how the work looks today and what should change. We will write the scope together.

A few sentences is enough.

The data controller is WSD - Włodarczyk Software Development. I use your data only to answer this enquiry. Details in the privacy policy.