The Business Headache

Let’s be blunt: every first working day of the month, PolskieBiuro24’s team lost over 8 solid hours copying phone numbers, pasting e-mails and praying they hadn’t missed a debtor. Mistakes crept in, tempers flared, and nobody wanted to own the process. They didn’t need fancy SaaS. They needed their spreadsheet to do the grunt work for them – while keeping the rest of the workflow exactly the same.

My Brief, My Roles

“Don’t change how we work — just delete the pain.”

Challenge accepted. I stepped in as UX Strategist, Automation Engineer and API Integrator in one. My plan: a minimal-invasion design that your accountant can grasp and your CTO would still sign off.

Designing for Zero Friction

  • One extra column per month, that’s it. Each month now has a WINIEN flag. Tick it and walk away.

  • Templates live where the data lives. Two new tabs — SMS and Mail — carry four message variants (2-, 3-, 4-, >4-month debt). Anyone can rewrite copy without calling me.

  • Cron-driven workflow. At 11:00 on day 06 the bot:

    • Authenticates via Google Sheets API, reads the last six months.

    • Maps debt age → correct template.

    • Sends personalised HTML e-mail (SMTP) + SMS (SMSAPI).

    • Pushes a signed log to a secure dashboard.

  • Security basics done right. All API keys, SMTP creds and sender IDs live in ENV files — never hard-coded, never pushed to Git. Rollbacks are a one-liner.

Impact in Plain Numbers

MetricBeforeAfterΔ
Manual labour per month>8 h< 5 min-95 %
Typos / missed debtors15 %0 %-100 %
Avg. debtor response14 days48 h4× faster
Team morale“Billing day… sigh”“Already done?”+ 😊

“I finally stop dreading the first of the month—our sheet basically writes reminders in its sleep.”

Ready to reclaim your time?

The Process

Building a “ghost-in-the-spreadsheet” sounds like wizardry, but it’s really a disciplined loop of research, design and engineering. Here’s the quick-and-dirty roadmap that turned a manual eight-hour chore into an invisible assistant:

Discover

Mapped every click in the legacy sheet, interviewed three frontline users.

Design

Prototyped column tweaks in Google Sheets, validated with stakeholders in 30 min.

Build

Crafted a 180-line Python script: pandas, gspread, requests. ENV for secrets.

Test

Ran dry-runs with anonymised data, simulated API failures.

Deploy

Docker container on a tiny VPS, cron schedule, uptime monitor ping.