Case study10 min readUpdated 8 Aug 2026

A small Bangkok accounting firm goes digital, Part 3: the internal side — turn received vouchers into a trackable list

Once clients submit vouchers reliably, the next step is not a bigger system — it is turning internal intake into one list: client, month, item count and missing-document status at a glance, replacing Excel and memory. Who has not delivered for which month no longer needs a phone call to find out. This list is the firm's own workflow, not a full CRM — but it is the data foundation for the tiers and AI that come later.

Last chapter, clients started uploading vouchers every month. This chapter turns the lens back inside the firm: the vouchers that arrive — how do they move from “Excel plus memory” to one list you can read at a glance.

Intake status is the firm’s most expensive information

Once vouchers start flowing in, the firm immediately notices a problem that had been buried: for every client, for every month, whether everything has arrived — it is scattered across one spreadsheet and a few people’s heads.

Bookkeepers answer the same kinds of questions every day:

  • Has this client’s bank statement for last month arrived?
  • That client is still missing three purchase invoices — has anyone chased them?
  • Which clients have not submitted anything at all this month?

Answering these with Excel and memory means: when someone leaves, the knowledge goes; in the busy season, chasing gets missed; when a client calls to ask “have you received everything?”, someone has to go dig. This step does something plain: turn the received vouchers into one trackable list.

What is on the list

An internal intake list carries at least:

  • Client: each client’s name and contact person;
  • Month: which month the vouchers correspond to;
  • Item count: how many items arrived this month, and how many are still missing;
  • Missing-document status: what is missing, who is chasing, how many times;
  • Submission time: when each delivery arrived, and whether it was within the agreed deadline.

With this list, “who has not delivered for which month” is one glance instead of a hunt. Chasing moves from “searching memory” to “reading the list”. The busy season no longer drops items, and the information survives staff changes.

It is the firm’s workflow, not a full CRM

State the boundary deliberately: this list solves the internal intake-and-chase workflow, not a full customer relationship management system. This phase does not touch relationship analytics, marketing, or complex permissions and reports — making intake solid is enough for this phase. Once the intake data accumulates, it naturally becomes the data foundation for the service tiers and the AI extraction that come later.

Who maintains it, and how missing items are handled

  • Who updates it: bookkeepers update the list as vouchers arrive and are checked; one person owns completeness of the list;
  • How missing items are handled: the list marks what is missing, chased against the agreed deadline, and records how many times and how the client responded;
  • How exceptions are escalated: if a client is several months behind, or vouchers clearly have problems, escalate to the owner in time instead of letting it stall in the list.

The result of this step is easy to verify: did missed chases go down? Is the busy season less panicked? Once stable, use the accumulated data to design the service tiers.


Boundaries matter: the intake list is the firm’s internal workflow system, an independent system project, not part of the standard website package. It solves “what came in, what is missing” — it does not replace accounting software, and it is not a customer relationship management system (CRM).