Company logo | Codica

We view chatbots as self-serving tools that help users get answers to their inquiries.

Today, we use these bots for a variety of purposes. Apart from obvious cases, such as sales and support inquiries, companies use chatbots to address internal and organizational issues.

In our case, we use a time-tracking chatbot that allows us to monitor the development workflow and evaluate each company member's performance. Today, we’re going to show you how we created this bot (we call it ‘Timebot’) and what benefits it brings to our company’s workflow.

Project background

Time tracking is a part of everyday life in any custom software development project, for both internal and external purposes. For example, we need to send reports to our clients, to monitor the team's workload, and redistribute tasks accordingly.

With the company’s growth, the scope of our projects expanded, and they became increasingly diverse. Thus, monitoring the development workflow and evaluating each company member's performance became important to us. So we started looking for ways to automate reporting and simplify time tracking.

At Codica, we utilize Slack for corporate communication to discuss all project issues. And the Slack App provides an opportunity to create different bots that help automate everyday routines. Naturally, we had an idea to create a Slack bot for time tracking.

Additionally, one of the leading grounds to build a time-tracking tool using Slack is that web solutions are rather time-consuming. We were interested in creating a more effective and optimized way of time-tracking.

When we made the decision to create our Slack bot for time tracking, we proceeded to gather requirements. The solution was not supposed to work for time tracking only, so we had to define all the issues it would help us solve.

Timebot interface

Thanks to the Slack-integrated Timebot development, we provided the following benefits to our teammates and clients:

  • Direct time-tracking: We track time directly in Slack, eliminating the need to switch between windows and the risk of losing focus.
  • Easy, precise time logging: Our team logs time effortlessly for specific projects or tasks, which can be linked to particular conversations.
  • Accuracy and robustness thanks to database transactions: Despite multiple actions that happen simultaneously, Timebot’s database handles them accurately even under high usage or concurrent edits.
  • Saving time for project managers: The bot's enhanced capabilities save time for our PMs and improve efficiency in their work.
  • Team visibility: We monitor team activity and the resource allocation visibility in the Dashboard to gauge overall productivity without constant manual check-ins.
  • Better project insights: The bot accurately measures task and discussion durations, improving project planning and profitability.
  • Accurate billing: The detailed logs generated from the integration simplified accurate client billing.

Let’s look at these benefits through the lens of the features we’ve implemented.

Timebot features

Time entry logging, single and multi-line

We can log our work time directly in Slack with our Timebot. This way, we do not need to switch between various tools. Also, we can choose between single-line entries and multi-line entries. The first are perfect for quick daily updates, and multi-line inputs support more detailed breakdowns of activities and tasks.

This versatility helps us keep our time records precise, although we can get overloads occasionally. As a result, time tracking becomes a natural part of daily communication rather than a separate duty.

Project management with plans and tasks

Another Timebot feature is its ability to help us manage project activities clearly. The bot helps us organize our activities into plans and tasks that we can access right from Slack. So, we are on the same page regarding viewing priorities, progress, and responsibilities in this shared space. As a result, we gain clear collaboration, fewer misunderstandings, and a feeling of ownership across projects.

Project management with plans and tasks

Absence and holiday management

What was happening in spreadsheets and private chats now goes directly to Slack. We apply for time off, and managers respond in a single click. This way, we avoid scheduling conflicts and maintain coverage. The central calendar notifies us of who is available and who is out and when. Thus, our HR team and team leads have more time for advanced and prioritized tasks.

Dashboard and analytics

We added a visual dashboard to Timebot to help make better decisions across various data and perspectives. The dashboard summarizes work hours, workloads, and activity trends. Now, our project managers and team leads quickly see patterns. They also spot overloaded team members or deadlines that need additional attention. Thanks to analytics tools, we transform raw time logs into meaningful data and vital insights.

Time-tracking app's dashboard

Management reports: PM, client, detailed

The system generates multiple types of reports depending on the needs of our clients and team. Thus, project managers get helpful summaries and precise breakdowns for internal audits. The bot also helps us prepare straightforward client billing documents. Detailed reporting ensures that we know what has been achieved. These reports can be exported or shared easily to support invoicing, internal reviews, or strategic planning. This helps both teams and clients maintain clarity.

We save hours of manual preparation and strengthen transparency and trust with our customers thanks to our time-tracking app.

You may also like: Top 10 Reasons to Add an AI Chatbot to Your SaaS

Slack bot with an interactive interface

We built this version of our Timebot based on feedback from employees who used the previous version. One of the crucial things was not only to make the Timebot functional, but also convenient.

Hence, our simple and intuitive interface includes calendar prompts to guide the user in the correct way to enter data. We've included a drop-down menu of our projects for suitable selection, weekly and monthly hours entered and counted, and days left for time off. The result is a smooth, user-friendly experience.

Slack time-tracking app's interface

Board API integrations

The solution integrates with external project boards and tools our team uses, including Jira, Asana, and Monday. Hence, we get updates in Slack. They automatically sync with project boards and keep data consistent across platforms. When we complete a task or log the time, it reflects everywhere instantly.

Want to build a chatbot to boost your team's efficiency?
Let us help you build one.
Contact us
Want to build a chatbot to boost your team's efficiency? | Codica

Product discovery session

Business logic and specification

At the beginning of the bot development, we were looking to cover the following needs:

  • Simplify the tracking process for the team.
  • Automate the reporting system for customers.
  • Provide the opportunity to clearly evaluate the overall workload.
  • Record each company’s employee contribution to the projects.

After initial discussions during the product discovery phase, we arrived at the idea that the following feature list would help us with the above requirements:

  • Time tracking would allow tracking the number of hours spent on a particular task or project.
  • Transparent reporting system would allow gathering and getting particular information for a specific period from the timesheets and provide the customers with timely and accurate reports.
  • Convenient management of entries and hours dedicated to work, which do not count when we have day-offs, vacations, and leaves.
  • Dashboard (administration panel) would give an opportunity to monitor the company employees’ timesheets, current projects they work on, absence days, etc. Also, it would simplify tracking the overall performance.

Further reading: AI Chatbots: Your 24/7 Customer Support for Marketplaces

Prototype development

Prototypes are part of the deliverables from the product discovery session. These are layouts of your future solution. Why do we consider them essential to the development process? Prototypes are helpful because they represent your future solution and any usability issues before actual development begins. Since prototypes reflect your solution, you can decide what you would change.

In our Timebot, we created prototypes to ensure that we included all necessary features. Thus, our team achieved the following with the prototypes:

  • Reduced the risk of developing unnecessary features or, in contrast, a lack of features.
  • Validated ideas, moving beyond assumptions, and getting to a tangible feature representation.
  • Improved collaboration between team members before going into the development.
  • Eliminated uncertainties and sped up the handoff process.
  • Ensured cohesive and efficient development lifecycle.
  • Simplified the iteration process for designers who managed to modify features as a result of team discussions.
Timebot prototype

Tech stack

The Timebot’s interface is simple and user-friendly. We can input our daily time-tracking details easily without thinking about how things are made. But under the hood, our Timebot is a sophisticated creation with APIs and integrations that help us manage different processes. Here is a brief overview of the technologies we used to make this solution a reliable ally in our time tracking.

Backend:
NestJS, TypeScript, NodeJS
  • This combination of JavaScript-based technologies provides a powerful tool for managing processes in Timebot. We constantly input, cancel, and edit data. So these processes should run smoothly, given the accuracy we need for our operations and clients’ reports.
Database:
PostgreSQL with TypeORM
  • The strengths of both technologies bring stability and performance to modern apps. They simplify modern development processes and data management, making data management more efficient and cost-effective.
Queue:
Bull and Redis
  • This combo makes the queue system stable and persistent by providing feature-rich queue management. These technologies provide reliable job management in high-performance, scalable queue systems.
Integrations:
Slack Bolt, Google APIs, Board APIs (Jira, Asana, Monday)
  • Slack Bolt handles complex logic automatically and allows for operations that ensure building stable and reliable apps.
  • Google APIs with rich functionality and data ensure performance, cost-efficiency, and speed in development and access to a wide pool of features.
  • Board APIs (Jira, Asana, Monday): as we use these tools in our daily work and praise them for a wide range of features and convenience, we used the relevant APIs to integrate the boards into Slack. With these APIs, we preserved automation of workflows, enhanced reporting, and improved team collaboration.
Security:
JWT, Argon2, Helmet
  • Security is a must for any app, especially those that depend on accuracy and involve many parties. Thus, we used these technologies for their ability to reduce the attack surface, make an app immune to hard vulnerabilities, provide secure and quick authorization, and balance features and performance.
  • Besides that, we use rate limiting to ensure that APIs are not overwhelmed by requests, and we limit access to legitimate users and protect credentials.
Other:
Pino Logger, Swagger docs
  • We use Pino Logger for high performance and low overhead, and Swagger docs based on OpenAPI specification to help machines understand your APIs with automatically generated documentation.

Our development process

DevOps and setup

Regarding the pace of modern technologies, securing virtual spaces is essential. In our DevOps services, we use modern control and transparency in development. It is especially vital when dealing with sensitive or critical data, like in a time-tracking app.

Thanks to our DevOps engineers, we ensure that custom development begins with a solid setup and continues through maintenance and support.

Our setup uses technologies that ensure cost-effective, secure, and scalable development while minimizing the risk of errors. Additionally, this environment simplifies the process of launching new versions of a solution and makes it easy to monitor and update a platform as needed.

Read also: DevOps Security: Challenges and Best Practices

UI/UX design

The Timebot’s design aims to provide convenience, accuracy, and engagement. That is why we incorporated the necessary use cases in the UX to cover all the ways we use the app.

UX design

Examples of the primary Timebot flow include the following:

  • Time tracking allows tracking the number of hours spent on a particular project and monitoring a development workflow as a whole. The information will appear on each member’s timesheet, which can later be viewed and edited. To log time, you need to enter the project name, the time spent on a particular task, and add comments to specify the task details.
  • Absences allow tracking employees’ vacation, illnesses, and other reasons for absence on a particular day.
  • Reports are convenient for obtaining specific data and for gathering it for further statistical analysis.
  • Projects are implemented to allow users to monitor, add, and use them for time logging.
Examples of time-tracking app workflow

Along with the Slack bot, we have developed a Dashboard. It gives an opportunity to monitor the company members’ timesheets, current projects they work on, absence days, etc.

It is the inner workings of our time-tracking tool and is particularly valuable for project managers. It fully reflects the overall performance statistics on individuals, teams, and projects at any chosen period.

In the Dashboard, we have a visual display of our data. The graphs contain the number of hours spent by the user, speciality, for a specific project. Moreover, the Dashboard allows users to view information about the projects they are working on.

UI design

Besides robust UX, we used UI elements to make our Timebot an engaging tool that not only provides precision but also converts a chore into joy. It is convenient to see the time you tracked, the outstanding time to track the work, and to rest and take care of your health. We used emojis not only to make the process more enjoyable but also to provide concise highlights of the essential time-tracking points.

Timebot's UI design

Bot creation: Our process

Developing a Slack-integrated time-tracking bot required solving several practical engineering problems. Here are the primary aspects we focused on when developing our Timebot:

  • Tracking of time worked on a specific project.
  • Tracking absences (vacation, sick leaves).
  • Notifications with the meeting time that pops up 10 minutes before the meeting, and a discussion.
  • Performance and velocity of the internal company processes.
  • Analysis of time tracked depending on the specialities like frontend and backend developers, QA engineers, and PMs, which sufficiently helps project managers in estimating.
  • The accuracy of reports and statistics that we provide to the customers.

In line with these aspects, we focused on the tech side of the solution:

  • Frontend: our Timebot’s interface relies on interactive modals, message menus, and buttons. Developers followed the designed clean, minimal UI components and guided our teammates through logging time, selecting projects, requesting absences, or generating reports. Every interaction feels conversational and frictionless.
  • Backend: It is the core engine that handles all time-tracking logic. In our Timebot, it validates user input, stores entries, updates records, and triggers notifications. Moreover, it ensures time-consuming operations are processed asynchronously without slowing down the user experience.
  • Integrations and APIs: Our team integrated Timebot smoothly, so we do not need to switch between Slack and other app. Everything is done in Slack. In addition, we connected Jira, Asana, and Monday via APIs. These integrations ensure that time logs sync across the ecosystem without manual duplication.

While developing the bot, we ensured its smooth operation by overcoming several tech challenges. The main challenges and solutions for this bot implementation include the following:

ChallengeResultDescription
Report performanceSolved with Bull Queue for asynchronous processingGenerating reports runs in the background thanks to Bull Queue. Thus, reports are generated accurately while the app remains responsive. As a result, users can request reports and continue working without interruption.
Board API complexitySolved with the Strategy PatternThe bot integrates with multiple project management boards. Each of them has its own logic, which makes it complex to handle them. Hence, we implemented the Strategy Pattern, which separates each integration into its own module. The system now follows along with each board's API rules, keeping the core logic clean and consistent.
Slack syncResolved synchronization issues between Slack and DashboardUpdates to time logs or tasks should be reflected in Slack and the Dashboard consistently, which requires perfect system synchronization. We introduced a synchronization layer that listens to Slack events and updates the bot database accordingly, and vice versa. The result is a smooth, reliable user experience without duplicate entries or conflicting records.

Quality assurance

Ensuring the time-tracking app quality means ensuring the precision that our operations and clients need. That is why we conducted various tests to ensure our teammates and clients would have the necessary convenience and accuracy in documentation.

Here is a brief breakdown of the tests we performed to ensure everything works correctly and smoothly with our quality assurance services.

Quality assurance for a Slack time-tracking app
AreaPrimary testsAchieved results
Functional

Core actions work:

  • Tested single-line and multi-line entries, edits, and deletions.
  • Ensured entries can be fixed cleanly without data mismatch and passed to the right person.
Flows are correct
UX/Slack UI

Easy interaction:

  • Validated interactive elements (buttons, menus, modals).
  • Checked how messages are displayed across mobile, desktop, and browser Slack clients.
  • Ensured error messages are human-readable and straightforward.
The bot is intuitive and easy to use
Integrations

Data sync accuracy:

  • Validated authentication and permissions.
  • Ensured the correct work of APIs.
  • Checked that no duplicates occur.
Jira, Asana, and Monday updates match, data is precise and correct across systems
Data quality

Precise time records:

  • Compared logged time vs. stored time in the database.
  • Tested reports for accuracy and cross-source consistency.
Data remains accurate when entered and included in reports
Security and performance

Access protection:

  • Confirmed that only authorized users can view/edit specific time logs.
  • Checked for protection against vulnerabilities.
  • Ensured the upholding of GDPR / data retention rules.
Data is protected, and access boundaries are clear; the app works correctly even during busy days
User acceptance testing (UAT)

Real usage fit:

  • Observed real usage behavior, what confuses or delights our teammates.
  • Gathered feedback to refine UI text, command flow, and help responses.
The bot feels simple for everyday work

Maintenance and support

Now, we constantly support our Timebot to ensure it delivers accurate results on time. Our developers keep an eye on functionality, security, and updates that are necessary for the system.

We support every project we create whenever the client needs us to. Depending on individual technical and business priorities, we provide comprehensive support that includes timely patches, updates, and constant vigilance on security and data protection for a relevant solution.

Want to create a Slack bot for your business?
Let our experts help you build a robust bot.
Reach out to us
Want to create a Slack bot for your business? | Codica

Bottom line

To conclude, we have shown you how to create a SlackBot in our practice, and we believe this guide will be helpful to you and your business. Chatbots are handy and powerful tools for a variety of tasks you may create.

If you have a chatbot project on mind, let’s get in touch. We have extensive experience creating web platforms, chatbots, and assistants, which you can see in our portfolio. Let us help you build a reliable, helpful assistant for your daily routines.

Frequently Asked Questions
Dmytriy Tech Lead & Node.js expert | Codica
Dmytriy
Tech Lead & Node.js expert
Dmytriy is a Node.js developer with 8+ years of experience. Skilled in both frontend and backend, he builds high-performance apps using React and Node.js.
Authors details
Rate this article!
Rate this article | CodicaRate this article full | CodicaRate this article | CodicaRate this article full | CodicaRate this article | CodicaRate this article full | CodicaRate this article | CodicaRate this article full | CodicaRate this article | CodicaRate this article full | Codica
(0 ratings, average: 0 out of 5)

Related posts

Stay up-to-date and never miss a resource

Subscribe to Codica newsletter

Latest posts