Cafe Reconciliation
An 8-workflow n8n system that checks the cash drawer every day, splits profit between PC rental and snacks, and tracks snack stock for a 15-unit internet cafe. Built for my own business, then adapted for a second one.


/help, /week and /variance. Amounts blurred.
/inventory, /month and /today, which asks for the counted cash.- Same day cash shortfalls flagged, instead of at month end
- 8 workflows, each with one job
- 2 businesses running it
- 6 fixed bot commands instead of a chatbot
The problem
Cash went missing and nobody saw it
A former employee had been taking cash without reporting it, and it went unnoticed for longer than it should have.
That set the priority for everything that followed. Catching a shortfall on the day it happens matters more than complete, textbook bookkeeping. A 15-unit cafe with one or two staff on shift needs a fast daily check that flags a gap before it becomes a pattern.
What I built
Eight workflows, one Sheet
Staff report through two Google Forms
Expenses and snack restocks. No spreadsheet or n8n access needed.
The owner checks in through Telegram
/today and /variance daily; /week, /month, /inventory and /help for the rest.
Everything reads one Sheet
The bot’s answers and the form submissions always look at the same numbers.

Show the other seven workflowsHide them







Key decisions
Built to be trusted, not to be clever
GCash is out of scope
GCash is the Philippines’ most widely used mobile wallet, similar to PayPal or Venmo. Every GCash payment leaves its own digital record and can’t be skimmed the way cash can, so it was left out instead of built and ignored.
Snack cost is tracked per sale
Deducting cost at the moment of sale stops the same restock from being counted against groceries and again in the sale.
Bills are kept apart from daily costs
Mixing monthly bills into daily expenses would blur the daily cash signal the system exists to catch.
One alert workflow, not eight
Every error and low-stock warning goes through one notifier, so alert logic lives in one place.
Fixed commands over an AI chatbot
For a tool whose job is trustworthy numbers, a predictable command list beat a friendlier interface.
What took the work
The design isn’t what’s running
What I designed and what was built didn’t match
Instead of trusting the design, I checked the live state of each workflow directly. That surfaced several real differences between the plan and what was running, which I then fixed.
Check what is running, not what was planned.
Outcome
It caught what it was built to catch
Live on my cafe since June 2026. In its first two weeks it flagged a cash shortfall the same day it happened.
Before this, I went to the cafe every day just to collect the cash. Now my employee counts the drawer before closing, I enter the count in the Telegram bot, and I’m notified by Telegram and email the same day if it doesn’t match. I only need to go in about once a week.
Since August 2026 it also runs at a coffee shop / photo studio, built around the POS they already use, to keep sales and inventory organized.
Both deployments are still live.
Next: configurable thresholds per business, per-shift checks, optional GCash totals.
We already had a POS, and we still use it. Chu didn’t try to replace the tools we were already using, he built around them. Sales and inventory are easier to keep track of, and I have a more organized view of what’s happening without having to manually compile everything myself.
Hiring, or have a process to automate?