Back to blog

5 min read

Business process automation: practical examples for a small company

Start with the task someone repeats by hand every week. Four examples from small businesses in Poland, from enquiry handling to KSeF invoices.

Enquiries from a website form, ads and messengers collected in one CRM list

The first thing worth automating in a small company is a task someone does by hand every week, the same way each time: copying enquiries from email into a spreadsheet, building the month-end report, retyping order details into invoicing software. Our rule of thumb is to count the hours the task takes per month. If it eats more than a working day, automating it almost always pays off. If it takes twenty minutes a month, we would leave it alone.

Enquiries from the main channels land in one list

Requests arrive through the website form, ads, email and messaging apps, and each channel ends up in a different place. Someone copies them by hand and some get lost on the way. Nobody can say which channel actually brings in clients.

This year we prepared the specification for a CRM for a recruitment agency that brings workers to Poland. Candidates applied through the site form, Facebook Lead Ads and two job boards, and wrote in Viber, Telegram and WhatsApp to three work numbers. The records lived in Excel and in chats. What follows is the specification, not a finished system. The plan we agreed on has four parts:

  • the form, the ads and the job boards send every application to the CRM automatically, with its source attached;
  • each candidate moves through fixed stages, from first contact to starting work, and if someone leaves, the CRM records the reason;
  • when a client's warehouse needs people (a start date, 20 places), recruiters get a notification;
  • a dashboard shows which channel and which recruiter bring people who stay.

In this plan, messaging stays manual. The three numbers are ordinary messenger accounts, which are hard to connect reliably, while a recruiter needs a few seconds to mark a promising one by hand. We would rather keep a manual step that works than build an integration nobody trusts.

Reports arrive on schedule

A month-end report usually means a person exporting data from two or three systems, pasting it into a spreadsheet and fixing the formatting. A script can run the same export on a schedule, every Monday at 7:00 or on the first of the month, and save the result to a shared sheet or send it by email. The report is ready before the team starts work, and nobody loses the first morning of the month to it.

Invoices go to KSeF from the system that already has the data

For Polish companies this became urgent in 2026. B2B invoices must now be issued in KSeF: since 1 February 2026 by firms whose 2024 sales exceeded PLN 200 million including VAT, and since 1 April 2026 by everyone else. Until 31 December 2026 you can still issue invoices outside KSeF while their monthly total with VAT stays within PLN 10,000; once a month goes over, that invoice and every later one go through KSeF (ksef.podatki.gov.pl). Invoices to consumers are not covered, but receiving invoices through KSeF has been mandatory for every business since 1 February 2026 (scope of KSeF).

KSeF has a public API documented by the Ministry of Finance (integrator support). If your orders already sit in an online store or a CRM, invoices can be sent from there, so nobody retypes the buyer's details. Purchase invoices can be pulled the same way into your accounting software instead of being downloaded one by one. It is a proper integration job: the system needs authorisation in KSeF, and invoices must follow the FA(3) structure. Before building anything, check the invoicing software you already use. If it has a KSeF integration built in, set it up and test it first.

Tools come after the process is written down

For simple chains like "new form entry, then a row in a sheet, then a message to the manager", ready-made tools such as Zapier, Make or n8n are enough. If the data should not pass through an outside service, n8n can run on your own server. When the logic is unusual, we write a Node.js script. We choose only after the process review: what exactly happens today, who does it and how long it takes. This is where my own background lies, too: I automated processes and printing systems for Delphi, a global auto-parts supplier.

An automation nobody watches fails quietly

In a CRM we look after, the error-tracking service (Sentry) was in the code from the start, but its key had never been set on the production server, so it recorded nothing. When the app began returning errors, we had to diagnose them from a screenshot of a user's browser console.

In the same system, a job pinged the database every four minutes to keep it from going to sleep. Outside working hours it first checked whether anyone was active, and that check was itself a database query, so the database stayed awake 25 days in a row, and we paid for compute the whole time. When we finally let it sleep and measured, waking it took about 300 milliseconds. Paying for a database that never sleeps to save a third of a second made no sense, so we deleted the job.

What we took from it: every automation needs an alert that reaches a real person when something fails, and one indicator that shows it still works as intended, for example the time of the last successful run or the monthly bill. We also hand over a short document, so your team can run the automation without us.

Start with one process written down step by step

Pick one process. Write down every step as it happens today and how long each one takes. That list usually shows whether you need a ready-made tool, a script, or just a setting in software you already pay for. If you want us to look at it, this review is where our process automation work begins, and you can send the description through the contact page.