All work
Live at 2 businesses

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.

BusinessesLvlUp E-Cafe (mine) and a coffee shop / photo studio
RoleOwner, designer and builder
TimelineBuilt May 2026 · live June 2026
Stackn8n · Google Sheets, Drive, Forms · Gmail · Telegram Bot API
Google Sheet tab named Daily Reconciliation: ten days in July 2026, nine marked MATCH and one, July 8, marked VARIANCE with a difference of 500; sales amounts blurred
Every day closes as MATCH, or VARIANCE when the counted cash doesn’t match the sales. On July 8 the drawer was 500 short, and the alert went out the same day. Sales amounts blurred.
Telegram chat with the cafe bot: the /help command list, the /week summary and the /variance list, with amounts blurred
The owner’s side, in Telegram: /help, /week and /variance. Amounts blurred.
Telegram chat with the cafe bot: /inventory stock counts, the /month summary and the /today cash prompt, with amounts blurred
/inventory, /month and /today, which asks for the counted cash.

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.

Eight workflows, one Sheet

1Daily Cash Variance CheckDailyCompares expected cash with the counted drawer at close and flags a shortfall the same day.
2Weekly Profit ReportWeeklySplits profit between PC rental income and snack margin.
3Monthly Profit ReportMonthlyThe same split, rolled up to the month.
4Snack Inventory DeductionPer saleDeducts stock at the last known cost, so restocks aren’t counted twice.
5Restock Form ReshapeOn form submitTurns each restock form submission into one row per snack item, then triggers the inventory update.
6Expense ClassificationOn form submitSeparates daily costs like cleaning supplies from monthly bills.
7Monthly Fixed Bills Generator1st of monthCreates rent, internet and salary entries automatically.
8Alert NotifierAlways onThe one workflow that sends every error and low-stock alert.

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.

The variance path of the Daily Cash Variance Check workflow in n8n: get the pending cash total, check there is a pending record, compute the variance, write the daily reconciliation, reply with the result, and if there is a variance, send the alert email
1 · Daily Cash Variance Check, the path that catches a shortfall: compute the variance, write the day’s row, reply in Telegram, and email an alert when the drawer doesn’t match. The full workflow, with the sales export and the six commands, opens on zoom.
Show the other seven workflowsHide them
n8n canvas of the weekly profit workflow
2 · Weekly Profit Report
n8n canvas of the monthly profit workflow
3 · Monthly Profit Report
n8n canvas of the Snack Inventory Deduction workflow
4 · Snack Inventory Deduction
n8n canvas of the Restock Form Reshape workflow
5 · Restock Form Reshape
n8n canvas of the Expense Classification workflow
6 · Expense Classification
n8n canvas of the Monthly Fixed Bills Generator workflow
7 · Monthly Fixed Bills Generator
n8n canvas of the Alert Notifier workflow
8 · Alert Notifier

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.

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.

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.

Rommel JosonOwner, coffee shop / photo studio · runs the Cafe Reconciliation system
All work

Hiring, or have a process to automate?

Let’s talk.

Send a few lines about the role, or what keeps slipping through.

Write to me

ralphmatthewmarty@gmail.com

Or message me

WhatsApp +63 919 947 0840

Or connect

LinkedIn

Replies within one business day · UTC+8

Good to know

Based in

Central Luzon, PH (UTC+8)

Looking for

Full-time remote roles; contract too

Works

Remote; hybrid or on-site in the Philippines