Staff Tasks Bot
Telegram bot that runs a team's tasks: deadlines, photo reports, review and return, overdue alerts, daily summaries and a live Google Sheet.
ChapterIndependent practice- Year
- 2026
- Status
- Live
- Stack
- Convex, Telegram Bot API, Google Sheets

A small company wanted its tasks out of group chats. The brief was a Telegram bot, no web cabinet: a director, managers and masters, tasks with deadlines, reports with photos and files, review or return, overdue alerts, a summary every morning and evening, and everything mirrored into a Google Sheet.
All the logic is one Convex mutation that takes a Telegram update and moves a conversation along; dialogue state lives in a table. Outgoing messages aren't sent from there — they're written to an outbox and delivered by a separate action. That split is what makes it testable: 29 tests run the bot's whole flows and check the outbox, without a network.
People join by one-time invites from the director, so nobody can wander into the bot. A cron every five minutes catches deadlines and sends the summaries. The Google Sheet is updated with a debounce and a lock, so a burst of edits becomes one write and two writes never fight over a row.
Two things I learned the hard way: `\b` in JavaScript regular expressions doesn't treat Cyrillic as word characters, which quietly broke the word «завтра» in deadlines, and Convex cron names must be ASCII. The bot is live and in use; the image here is a drawing of its real messages, because a bot has no screen to photograph.