Greeter Bot for Slack: Transforming human resources and enhancing workplace productivity

Mauro Alberto
6 min readNov 16, 2023

--

Last November I decided to start creating a Slack bot named Greeter Bot with the objective to simplify the life of Human Resources (HR) and also allow employees to access to essential information about their company with simple commands. To bring this concept to life, I decided to use the Slack API along with Python and Flask.

After completing the development of an app using React Native called Lovards, I was eager to embark on a fresh project. My goal was to not only expand my programming skills but also delve into a new programming language.

Adding to that, I wanted to create something that I could apply in the company where I work, Pipecodes, and then, the idea of creating a bot that could facilitate the work of HR came to my mind.

Motivation Behind the Greeter Bot

I opted to concentrate on the development of the Greeter Bot after detecting a prevailing demand through my professional experience. Often, individuals hesitate to inquire about everything they need, fearing come across as nuisance. And if this is a problem in companies with 10–20 employees, what about a company with over 100 employees?

And for HR, I am convinced that the Greeter Bot possesses the potential to evolve into an indispensable resource.

This a logo from the Greeter Bot for slack application. She is also the assistant, most known as Bea
Greeter Bot logo and assistant

Architecture and external API’s used

The first step to build this Slack bot was searching for examples in youtube. I found a video from Tech with Tim showing how to do a simple message display. And I noticed he was using Python together with the Flask framework, so I just follow his lead and decided to use that as the programming backbone for my endeavour.

I knew I wanted to create valuable assistance to the HR domain. Features and necessities were appearing as I wrote the code. Basically blending two “great” methodologies: Waterfall and eXtreme GoHorse.

For hosting I bought a subscription in PythonAnywhere, the frontend its made in plain HTML & CSS, for the database I used MySQL and for the payment system I used the external API Stripe.

Navigating the Greeter Bot’s Commands and Features

The primary goal of the Greeter Bot center around simplifying the exchange of information between the company and its employees.

By consolidating information and ensuring its uniform distribution to all users, this bot possesses the potential to notably elevate the efficacy of resource management.

You can interact with the Greeter Bot in two different ways.

  • Using the Home Tab of the Greeter Bot
  • Using direct commands on the main channel of Slack, known as general channel.

I recommend utilizing the Home Tab as it offers an enhanced user experience. Let’s explore how you can operate using both approaches.

Home Tab

Home Tab for Greeter Bot

This is the screen shown when you click on the Greeter Bot in your Slack workplace. We can divide the sections in: display, configuration, delete and utilities. To make it more reader-friendly, we will begin with the configuration section to create a more sequential flow.

  • Configuration: On this section, we have the commands to configure the messages to be shown to the users. We have the commands to configure the general messages (extra, mission, partners, products, software, welcome, general-vacation) and the commands dependent by user (buddy, line-manager). Only the admins of the Slack workspace will be able to configure the messages to be shown.
An example of selecting the Buddy and Mission buttons on the configuration section.
  • Display: This section have the commands that allow the user to display the messages configurable by the Slack admin. We have the commands to display the same general messages configured above. Every user can call these commands. All messages will be shown in the Greeter Bot Messages Tab and only will be seen by the user.
An example of selecting the Buddy and Mission buttons.
  • Delete: For this category, we have the possibility to delete all messages configured (/delete buddy, /delete mission,…). All information regarding to the general messages or the selected user (whether they are the buddy/line manager or sponsee), will be removed. Only the admins of the Slack workspace will be able to delete the messages to be shown.
An example of removing a Buddy and Mission the delete section.
  • Utilities: To assist the admin of the Slack workspace, the Greeter Bot offers the capability to view the service’s expiration date via the button check expiration date. Furthermore, should the administrator wish to access all files and messages associated with their team, they can utilize the button show-all-messages. Only the admins of the Slack will be able to configure the messages to be shown.
The outcome when clicking the button Check Expiration Date.
The outcome when clicking the button Show Messages

Commands

When it comes to the commands, their ultimate function is identical to choosing buttons on the Home Tab. The distinction lies in the potential for increased error rates, as users must manually input all the commands themselves.

Example of a /config mission command written in the general channel
Example of a /mission command written in the general channel
Example of a /delete buddy command written in the general channel
Example of a /check-expiration-date command written in the general channel
Example of a /show-all-messages command written in the general channel

Note: In case you need more help regarding the setup and configuration of the messages, you can access this youtube link. It’s also possible to follow a command with the word help in order to see the command behaviour.

Problems solved with the Greeter Bot

By installing the Greeter Bot for Slack, many problems are solved:

Identification of Buddy and Line Manager

Problem: Collaborators may struggle to identify their assigned buddy or line manager.
Solution: Greeter Bot offers commands like /buddy and /line-manager to help collaborators identify their buddy and line manager by fetching this information.

Information about Software, Company Partners, Products and Mission:

Problem: Collaborators might need to know about the software used for email services and the main products of the company.
Solution: Greeter Bot provides /software, /partners, /mission and /products commands to help collaborators quickly access this information from the configuration.

Tracking Tasks during Vacation:

Problem: Collaborators may forget to complete tasks before going on vacation.
Solution: Admins can set up a vacation configuration message, and when a user changes their Slack status to “vacation,” the bot sends them a reminder about the unfinished tasks.

Message that was configured by the Slack admin to show to a user that goes into vacations

Awareness of Special Days and Events:

Problem: Collaborators might not be aware of casual Fridays or upcoming team-building events.
Solution: Admins can add relevant information to the “/extra” command configuration, and collaborators can use this command to stay informed about such events.

Subscription and Feature Access

9€/month is the subscription plan to access all this features. You can try it for free for 7 days.

Wrapping Up: Unveiling the Greeter Bot’s Impact

What began as a journey fuelled by curiosity, evolved into a tool that bridges communication gaps and enhances the workplace experience.

Completing this project brings a sense of satisfaction. There were moments when I almost considered abandoning it, and going to a new project or a idea of one. Just excuses to avoid the challenges that come with development. I wouldn’t have accomplished this without the invaluable support of both my girlfriend, Beatriz, and ChatGPT, which I express gratitude each time it assists me, just in case AI takes over the world. This achievement is truly a joint effort with them.

Thank you. I hope that future users find the application as enjoyable to use as I found it rewarding to develop. This bot helped me become a better developer. Should any questions or situations arise, please feel free to reach out to me at geral@maurocruzalberto.pt.

--

--