A leave tracker that runs in Telegram.
A custom tool we built for a shift-based operations team. Staff log and approve days off in Telegram, and the numbers live in a Google Sheet.
The problem
A shift-based operations team needed one place to log and approve off-in-lieu (OIL) days, the days off staff earn by working extra days.
What we built
We built a Telegram bot with a Google Sheet behind it, and have improved it with the team ever since.
For staff
- Log extra days worked. Normal days and public holidays are kept as two separate balances.
- Apply to take time off: a full day, or a half day, morning or afternoon.
- New people register themselves. An admin adds them to a team.
For approvers
- Each request goes to the right approver on its own. Staff send a request; it goes to their shift lead, or to the team manager when the shift lead is away.
- Approve or reject in Telegram, one by one or several at once. Safe requests can be set to approve themselves.
- Away mode: approvers on leave stop receiving requests, and anyone waiting is asked to pick someone else.
Behind the scenes
- Public holidays and weekends aren't counted. Overlapping dates are blocked. Backdated requests are flagged.
- Live balances and a searchable tracker sit in the Google Sheet. Old records archive themselves every month so it stays fast. One tap exports an Excel report.
- Leave approved before the bot existed can be imported, so nothing was lost when the team switched over.
How a request moves
From a tap in Telegram to an updated sheet. Generic roles, no real names.
Staff log an extra day workedNormal days and public holidays are kept as two separate balances.
Staff apply for time offA full day, or a half day, morning or afternoon.
The leave bot checks the rulesWeekends and public holidays aren't countedOverlapping dates are blockedBackdated requests are flagged
Shift leadGets each request first.
Team managerTakes over when the shift lead is away.
Approve or reject in TelegramOne by one or several at once. Safe requests can be set to approve themselves.
Google SheetLive balances and a searchable tracker.
Every monthOld records archive themselves so it stays fast.
One tapExports an Excel report.
The result
38versions so far, each shaped by how the team really works
40people using it
about 30hours saved each month, time back for the team