What was built
A Windows program that runs in the background and drives the browser instead of an operator: it opens the assigned websites, walks through their steps and fills their forms with data that already exists in the TsatsaTayka business system. The outcome of every pass is written back, so the records always show how far the work has got.
What sets it apart is not that it can click around a page — every automation tool can do that — but where its procedure is kept. The steps are not written into the program; they are held as data in the business system, in ordinary tables edited in the browser.
Why the procedure is data and not code
Somebody else's website changes without notice: a field moves, a step is added, the text on a button changes. With a conventional robot every such detail means changing the program, releasing a new version and installing it again at the client.
Here it means changing one row in a table. Even the way a field is located on the page is held in that table, together with the value written into it, so a changed website is handled by correcting data. The program stays the same. The same applies to adding a new website or a new kind of job — a new procedure is added, not a new program.
Every step also carries the condition under which it runs, so one procedure covers branching cases without a separate variant for each. A step can also carry the program version it applies from, so changes are prepared in advance and do not disturb installations that have not been updated yet.
What the client gets
- Work that happens without a person – tasks are processed in cycles, on their own, including overnight.
- Changes without a developer – when a website changes, an authorized user corrects the step in the table and work continues.
- One system instead of three – intake, records and processing are connected, and nothing is retyped.
- A trace of every pass – screenshots, a work log, and a record of what was changed and when.
- Several programs on several machines – each installation takes only the kind of work assigned to it, so the load is shared.
When something goes wrong
Automation that works against somebody else's website occasionally meets something unforeseen. The program was therefore not built to simply stop when that happens.
The operator has controls to start, pause and stop, can be asked to supply manually what is missing and then continue from the same point, and the behaviour on an error is a choice: stop, pause for inspection, or continue with an entry in the log. A screenshot is kept at every questionable point, so it can be seen afterwards what the website actually displayed.
Where the limit is
The program does not decide on behalf of a person and does not bypass the protections of the websites it works with — it does what the operator would do anyway, only without retyping and without waiting. Checks that need human judgement stay with the operator, and the program brings them up rather than skipping them.
Where this kind of solution is used
Anywhere the same external form is filled in daily with data that already exists in some record: applications and requests on portals with no API of their own, lookups in registers, status checks, or moving orders from one system to another.
That makes this the clearest example of what TsatsaTayka is for: the system holds the data, the rules and the records, and the installed program is only the hand that carries them out.
Which technologies it exists in
In use is the variant written in VB.NET, which is the one delivered to the client.
A C# variant has been worked out as well. Because the whole procedure sits in the tables of the business system, both variants run on the same data — the one chosen is whichever fits better with what the client already uses and maintains.
Planned is a version as an Electron application in JavaScript, doing the same work outside Windows. The split between the system that holds the procedure and the program that carries it out is exactly what makes that possible: the executor changes, not the rules it works by.
Technologies used
The program is written in VB.NET and C# with a WinForms interface, drives Microsoft Edge through Selenium WebDriver, and talks to the business system over a REST API. The business system is PHP and MySQL, with Tabulator.js tables for editing the procedures. It ships with a Windows installer, and an Electron version in TypeScript is in preparation.
If you need automation like this, see the desktop programming service, and for connecting to other systems, API integrations.
Leave a Comment