HomeCases › Accounting firm, Estonia
Accounting firm · Merit Aktiva + Zoho CRM · unattended since 2 September 2026

Payment reminders that send themselves three times a week, with a brake

The firm invoices dozens of client companies monthly and used to chase late payers by hand. Reminders now go out on a Monday/Wednesday/Friday schedule with three escalation levels in three languages, and a guard stops the run if the batch looks wrong.

Source of truth Merit Aktiva invoicesContacts and letters Zoho CRMControl channel Telegram groupUnattended since 2 September 2026

Results

Numbers come from the run logs. The first fully successful live run was 17 August 2026; the automation moved from a button in Telegram to a fixed schedule on 2 September.

MetricBeforeAfter
Reminder runswhen someone remembered3 per week, unattended
Human effort per runcheck the ledger, write and send each letterread a summary in Telegram
Batch safety limitnonestops above 40 letters or €20 000
Duplicate reminderspossibleblocked: 5-day cooldown + run lock
First live run14 letters, 13 delivered, €3 711.79 chased
From first live run to autopilot23 days

The challenge

  1. Chasing was irregular

    Reminders depended on someone opening the ledger. Some clients were reminded twice in a week, others not for a month.

  2. Tone and language had to be right

    Clients read Estonian, Russian or English. A late payer is still a client; the first letter must be friendly, the third must be firm.

  3. One bad run could do real damage

    A data glitch that marks every invoice overdue would send hundreds of letters. The firm needed a brake before it needed speed.

  4. Two systems, two versions of the truth

    Invoice status lives in the accounting system, contact details and language in the CRM — and the two disagreed for 15 clients.

What we built

Overdue picture from the ledger

Every run reads the last 88 days of invoices from Merit Aktiva and works with the real outstanding balance — total minus payments — not the original invoice amount.

Three levels, recalculated each run

Days overdue set the level: 14+ days allows level 2, 21+ allows level 3. The level is not sticky — once the old debt is paid, the client drops back down.

Guard before sending

The run stops and alerts if there are no CRM cards or no invoices, if more than 40 letters or €20 000 would go out, or if over half the batch is at the harshest level.

Warm wording, three languages

Letters are written as a colleague would: 'already paid? thank you — the letters crossed'. Balances under €3 get one friendly note instead of the three-step sequence.

Commands in Telegram

Pause, resume and status commands in the accountants' group. A preview report arrives at 10:55; sending happens at 11:00 unless paused.

Log and write-back

Each letter, its level and the delivery outcome are written to the CRM card. A failed address is shown with its reason in the summary, not buried in a log.

Read88 days of invoices, outstanding balance
MatchCRM contact, language, do-not-remind flags
Level1 · 2 · 3 by days overdue
Guardcount, amount, level mix
Sendemail via CRM, summary to Telegram
Loglevel and outcome on the CRM card

How it went live

Pilot

Button-triggered runs

Live from 10 August with a button in Telegram, so an accountant approved each batch while the matching and wording were tuned.

10 – 25 August 2026
Harden

Locks, cooldowns, guard

Run lock and per-recipient tracking added so an overlapping retry cannot double-send; a timezone bug fixed; micro-debt rule and escalation reset agreed with the firm.

12 – 25 August 2026
Autopilot

Schedule instead of button

From 2 September the run is fully automatic on Mon/Wed/Fri. Three consecutive delivery failures set a 'do not send' flag on the card for a person to look at.

2 September 2026

Honest limits

Invoice PDFs are not yet attached to the reminder emails. Private individuals without a registry number are still reminded manually. Two of the three language variants were machine-translated and are awaiting the firm's formal approval. One recipient domain is dead and fails every run until the accountant provides a new address — it is flagged, not hidden.

Frequently asked questions

Why a brake instead of just sending faster?

Because a reminder is a customer contact. A wrong batch costs more goodwill than a late batch costs cash. The guard limits are agreed with the firm and can be changed in one place.

Does the escalation level ever go down?

Yes, on purpose. It is recalculated from the current invoice age every run, so a client who has paid the old invoice is not still treated as a level-3 case.

What if we want to stop it today?

Type the pause command in the Telegram group. The preview report still arrives so you can see what would have gone out; nothing is sent until you resume.

Which accounting systems can this read from?

Anything with invoice status available through an API: Merit Aktiva here, Xero, QuickBooks Online, Fortnox and 1C in other setups. Contact data can come from a CRM or a spreadsheet.

How long from decision to unattended operation?

In this case 23 days from the first live run to a fixed schedule. The pilot phase with a button is deliberate: it lets the firm see real batches before trusting the schedule.

Similar stream in your business?

Tell us which documents or requests eat the hours. Free audit, fixed pilot price, no commitment.

Get a free automation audit