Here is the picture we see most often in a trading or manufacturing company. Every morning an accountant opens the accounting program, runs three or four reports, copies the numbers into a spreadsheet, fixes the formatting and sends a screenshot to the owner on Telegram. It takes about three hours, it arrives somewhere between 11:00 and lunch, and about once a week a number is wrong because a cell was pasted over. The owner reads it on the phone, in a car, and asks one question back — which takes another hour.
The goal of this note is narrow: that report, in Telegram, at 08:00, without the accountant. A one-minute read instead of a three-hour job. It is the workflow we most often propose as a first project, because it is small, visible and measurable.
Typical scope of a first project. We publish each client's number once it has been measured.
The architecture, in words
No diagram needed; there are five parts.
- Source. Your accounting program, usually with its own custom changes. We do not touch its setup. We read the data through a connection the program provides, if your programmer opens one; if not, we start from the export you already make — a file that lands in a folder every night.
- Worker. A small scheduled job that runs at 07:40 local time. It pulls the agreed numbers, checks them, formats the message and sends it. It runs in a cloud account registered to your company, not ours.
- Validation. Before anything is sent, the worker checks that the data is for yesterday, that totals match the line items and that nothing is empty. If a check fails, the report is not sent — a warning goes to the accountant instead, not to the owner.
- Commentary (optional). Two sentences from a language model: what moved against the previous day and the same weekday last week. The model receives only the aggregated numbers, never the underlying documents.
- Delivery. A Telegram bot posts the report into a private group of the people who need it. The message history is the archive; nobody digs through folders of spreadsheets again.
Seven steps
- Pick one report. The one the owner actually reads. Not the twelve the accountant produces — one.
- Agree the numbers. Five to seven at most: sales, receipts, cash balance, receivables over 30 days, stock of the top items. If a number cannot be defined in one sentence, it is not ready for automation.
- Get the data out of the accounting program. A connection the program provides, or a scheduled export. Freeze the export format in writing — it is the contract everything else depends on.
- Validate. Write the checks from the architecture above as code, not as a habit.
- Format for the phone. Mono-spaced columns, one screen, no attachments. Numbers you can read at 08:00 in a car.
- Schedule and log. 07:40 run, 08:00 delivery, every run logged with what was read and what was sent.
- Measure for a few weeks. Then decide whether to add the second report.
What to measure
Measure before you start, or you will never know what the automation returned.
- Minutes of manual work per day on this report, before and after.
- The time the report actually arrives — 11:30 versus 08:00 is the number owners remember.
- Corrections per month: how often a number was wrong and had to be re-sent.
- Questions per report: how many times the owner had to ask "and what about…". A good report answers the second question before it is asked.
- Month-end mismatch: whether the daily numbers reconcile with the closed month in the accounting program.
Pitfalls
Data governance. Decide on one page which fields may leave the accounting program. Daily sales totals, yes. Salaries, never. Personal data of citizens — customer names, phone numbers — minimised and, where the law requires it, kept on servers inside Uzbekistan. The model provider receives aggregates only. Write it down before the first message is sent; the same one page answers every question a client, a regulator or a partner will later ask about your data.
Uzbek and Russian formatting. This is where most first attempts look wrong on day one. Thousand separators are spaces, not commas: 12 450 000, not 12,450,000. The decimal separator in Russian is a comma. Currency goes after the number — soʻm, сум or UZS — and the same way in every line. Dates as 04.09.2026. Uzbek Latin needs the correct modifier letter: "oʻtgan oy" has a ʻ, and it has to look right on every phone — test it on the oldest one in the office. Decide whether the message is bilingual or per recipient; a mixed message is read by nobody.
Exported files. An export can arrive in an older Cyrillic text encoding, and the numbers in it can arrive as text. Handle both explicitly.
Stale data. If the accountant did not close yesterday, the report must say so instead of sending zeros.
Configuration drift. Someone will change a report in the accounting program next quarter. The frozen export contract plus the validation step is what catches it before the owner does.
What it costs and where it leads
A first project of this kind is quoted from its scope and measured before and after. If the number holds, the second report costs a fraction of the first, and the same worker can send lead follow-ups and generate documents. If you want us to look at your report, contact us and send the screenshot the accountant sends today. That screenshot is the whole brief.