SuperNimbusKnowledge Base

Slack Vacation Bot

Introduction

Soon after founding SuperNimbus we encountered issues with tracking employee and contractor vacation and sick days was becoming quite complicated.

Much of these issues were related to common growing-pains of a small company. Directors and admins are a bottleneck and they are required to check requested vacation dates and make their best judgment for who was going to be on vacation, for what dates, and they hope that they dont accidentally schedule a whole team to be on vacation at the same time and cause a scheduling disaster for the customer.

Bootstrapping this process when we were a startup worked fine when we had a handful of employees, but as the team grew we needed something more solid for tracking what our employees were up to from week-to-week.

We knew we wanted something that could integrate into our day-to-day communication apps as the team has worked remotely since the founding of the company.

At SuperNimbus we use Slack for communication and we had worked on integrations with some complicated Slack integrations for several customers in the past, so we thought we come up with a system that could automatically report when members of the team were absent.

We have added to that system over the years and the resulting system is outlined in the following tutorials.

Project Aim

Annual Leave Calendar

We need to be able to track an employee’s vacation and sick days as they are requested.

This will be a simple Google Sheets document which will perform all the necessary tracking and calculations for company admins.
This needs to be flexible enough to accommodate full-time and part-time employees and employees that may have more or less vacation days than other employees based on contract or time with the company.

It should also be apparent by looking at this calendar if any conflicts in annual leave are about to take place, for example, all developers assigned to a certain project coincidentally requested the same week off, which could lead to the project being paused or deadlines slipping.

Slack Calendar Notifications

We want to be able to post vacation days into the #general channel in slack every morning so the team knows who is available each day.

As all members of our team work remotely, this was essential information so they are not blocked in a task waiting for a response from a given team member who is not available a given day.

We also want to tell the whole team the full report of vacation days at the end of each week so the team can plan on Monday for longer absences coming in the following week.

Slack Bot

We want employees to be able to check on how many vacation days they have, how many they have taken and any requests that might be pending.

To do this we will write another slack integration that can be integrated into your team’s slack account and can be accessed via slash (“/”) commands.

Cost

Cost was a big factor in considering how we would orchestrate this system as many of the off-the-shelf alternatives were considered too expensive for us early on.

Many alternatives are also billed per-employee which meant that, as our team grew the system would get even more expensive to maintain.

Therefore, where possible, we would use free services, or serverless technology which would allow us to minimize costs.

Usability

As our team grows, new members will have to be introduced to this system, maintain it and perhaps upgrade it. We therefore want to use technology that should be familiar to our team and that they might be using elsewhere on other projects.

Tutorial Links

Tutorial 3 – Automated Vacation Requests (coming soon)

Acknowledgments
We would like to give a special shout out to Kevin Murphy who originally designed and built this system for us while we was acting as project manager for SuperNimbus during the GameSparks migrations back in 2021-2022.

Jump to section