As you may have understood, timeNough is currently in phase 1 of its prototype development. It remains a bot system intended to be sold to companies and institutions in exchange for a license fee per user, a true SaaS project. As co-founders of this new time-related enterprise software, Benjamin and I are currently developing phase 2.

At this time we are still offering the same 8 initial bots: the Time Cc Logger, Time Clock-out, Time Clock-in, Time Clock-out, Time Pause, Time Back, Time Late, Time Away, and Time Quant. But now with a new medium that is intended to complement the two existing ones (emails and SMS): a corporate chat. It must be considered a vertical development.

Eight new additional bots are currently being prepared for a horizontal scaling, however, this will be addressed at a later date. Throughout this article, I would like to introduce you to a new strategic medium that has been selected for phase 2: the professional chat service called Slack, which we discussed in December 2021 regarding groupware solutions.


What’s already in place about timeNough and its prototype

Let me start by reminding you what we have accomplished to date: timeNough is a B2B solution for timesheets, meant to reduce the number of interfaces employees are required to handle every day. Less interface, better flow is the motto of the entire project. In making such a promise, the purpose is to improve their productivity while making things more comfortable for them.

There is robot and a smartphone in blur supposed to represent timeNough bots system.

We found that the best way to reduce this amount is to stay in the most commonly used and easy-to-use interfaces. timeNough will not propose new interfaces, rather it will find a way to remain within the existing ones, to be integrated to the current ones, instead of adding more visuals and dashboards where training will be required for these employees.

An email and SMS-enabled bot system

Therefore, we began to develop a bot system that will be controlled via email. This means that the mailbox is the interface, the email technology is the medium, and the messages are signals that the bots can respond to, can understand. Bots are applications that run in the background without an interface or dashboard, and each time employees wish to interact with them, such as sending them instructions or commands, they must do so by sending email.

It was found that the concept worked, and more than 100 decision makers tested it during what we have referred to as phase 1 of the prototype timeNough. As an additional medium, we have added the possibility of interacting with the bots by SMS, so signals can also be sent via text messages, and the interface becomes your already existing messaging app on your smartphone.

There is mail Communication Connection message to mailing contacts phone, representing a mailbox system on which timeNough is present

Lara Bowen and John Doeson are using it as employees

This is not a re-invention of the wheel. As indicated earlier, eight different bots have been developed in this way, each intended to serve a specific purpose and mission. The system is still in place and operational today, and you may test it for yourself here. A fictitious professional mailbox belonging to John Doeson should be displayed, as well as Lara Bowen, his colleague acting as CMO of CoreNough.

You will have the opportunity to send real emails to the email addresses of the bots to discover their response. The same applies to the SMS medium as well, we have placed real phone numbers connected to the bots so that you can have a better idea of how the process works. Additionally, you may test everything using your own email address, but it must be whitelisted through a simple online procedure, and then, with a preferences form such as this, you may attach your own phone number.

The reasons for choosing Slack as the medium number three

Despite its seniority and global use in corporate environments, email remains a boring and heavy concept involving a different set of actions that will never be changed for the user: he must and will always have to select manually the recipient of the message, the Cc, change the field and type the subject, change it again and type the message content, then perform a spell check to verify if there are any typos or sense errors before sending the message and wait for the response and read it.

There is Slack app on the smartphone screen and a finger launching it.

Although SMS is faster due to fewer fields, the idea remains the same. We live in a world of apps, app stores and notifications today, and people prefer things that are quick, easy to use, user-friendly, instantaneous or immediate, live such as messaging apps. It is rare to find an organization that does not have a chat system for facilitating real time communication and exchanges in the workplace. So what is the best messaging system used at the office, the most popular one? Five letters: Slack.

An app that facilitates live information exchange

Slack was a startup that finally became a unicorn, a $16 billion business. It was founded in 2013 and has seen a tremendous growth of its user base like no other. With a new way of presenting basic features such as channels or groups, they have improved the user-friendliness and convenience of chat apps and instant messaging apps. The success of Slack, in my opinion, can primarily be attributed to its ability to integrate into existing systems, and to the ease with which the Slack developers enabled other developers to use it and integrate or plug with it as well.

Slack is well integrated with a wide range of other online apps and services, can provide alerts about activity from other apps if you need them. This app is renowned for its innovative features, such as reacji (emojis used to respond to posts), animated GIFs in the keyboard, personalized status alerts, threaded conversations and the ability to forward emails. They were followed by competitors, but Slack was the first to do so. This really interesting ranking article from PC Magazine about the Best Business Messaging Apps for 2022 may be of interest to you. You can discover the alternatives to Slack that I will discuss later in this article.

There is the logo of Slack in their building, August 21, 2019 San Francisco / USA - Slack Technologies, Inc.

Take a look at the possibility of being plugged in

Therefore, if you intend to develop your own B2B software and sell it to corporations like us, it would be in your interest to consider and look at the applications that are most commonly used by the employees of these corporations, and Slack is one of them. So, it is a wise decision to consider how you can integrate your tool or solution into a software like this, in order to make it more accessible to users, similar to a shortcut.

Rather than developing a complete software from scratch, which will require much more time and effort, why not create a quick-win that would be similar to a plugin for a well-known and widely used software like Slack, supported by a large community of developers, contributors and end-users. Take a look at this non-exhaustive list of Slack plugins created by developers who view themselves as Slack enthusiasts. Now the question should be for us: is there a way to integrate our bot system easily with Slack, so that any company already using Slack could use it with no particular effort, installation, additional fee?

Confirmation that additional availability is relevant

Everything would and should happen in similar fashion to the employee’s mailbox interface, so there would be no need to develop another one, and everything would occur there for the employee who will stay inside Slack. There is no doubt that it is possible, but some work will need to be done. After much consideration, we have finally decided to release our prototype for Slack at the beginning of October 2022, six months after the release of the bot system in emails and SMS in April 2022, and spend the necessary time developing it.

There is woman hand using smartphone typing, chatting conversation in chat app like Slack or live messaging.

The fictitious CoreNough LLC has now a real Slack workspace

The Slack workspace is the main notion on top of everything where you begin. It is similar to a container for a messaging application, where you enter, where everything takes place, made up of channels where team members can communicate and work together. After being invited to join a workspace, you’ll create an account using your email address, or your professional email address with the domain of your company’s website. If you wish to join multiple workspaces simultaneously, the Slack application will display them in a left menu list. The main advantage of Slack is that it is available on mobile devices as well as desktop computers, allowing you to chat from anywhere at any time.

During phase 1 of the prototype, we created an imaginary company called CoreNough LLC that does not exist in reality, which has 12 employees, and this company is a client of timeNough and uses timeNough products. The demo interface is the mailbox of one of these employees or personas, John Doeson, and the tester is simply invited to use John’s mailbox and email address, j.doeson@corenough.com, to test interactions with the bots that compose the timeNough first product (the discussed email bot system), in the same manner that John would do.

It is still about remaining within existing interfaces

If the mailbox has been replaced with Slack, it means that we need to set up a Slack workspace for CoreNough LLC, similar to many other companies. Each Slack workspace has its own public URL which is hosted and managed by Slack. CoreNough’s URL is simply corenough.slack.com or bit.ly/3MmZlp0, and yes, you can join and simply register yourself.

There is view of the Slack chat app in CoreNough LLC workspace.

Considering that we are behind all of this, each new registration will be validated by us, but this will only mean you wish to test the Slack integration of the timeNough prototype, like an employee of CoreNough. Upon registering and logging in, you should see the #general channel, which is common to all Slack workspaces, and then a list of users you may chat with, including John Doeson, who is part of that non existing company.

Here is a company that might be yours using the same chat

Obviously, nobody will answer you, since we are not behind each fictional chat user but it is an effective Slack workspace, the interface is real and effective, only the 12 fictitious users are not real, but we created them for the principle and for a better fit with our scenario. There were 12 employees in the company, each with their own email address, and they can use the timeNough bots system through their email addresses, so they also have access to the CoreNough Slack workspace and will also use the timeNough bots system from inside this new interface. That’s the idea.

Instead of acting like John Doeson, the idea is to be yourself, thanks to Slack’s invitation mechanism. You will have the opportunity to behave as if you were an employee of the company on the same level as them. The benefit now is that you will be able to interact with something already available in the messaging app interface: the eight timeNough bots that are now accessible through a Slack workspace. It should now be more palpable if you work at a company that uses something similar.

There is the trombinoscope of CoreBough LLC and its 12 employees.

It’s going to be a Slack app every existing timeNough bot

Now that you understand what a Slack workspace is, with channels and users inside, let’s move onto a third component of it: the Slack applications. You can search for a user, send him a direct message in a conversation, or mention him with the @ symbol followed by his user name. It’s pretty basic, simple, and efficient. A user has a username has a way to reach him.

Slack applications are quite similar. It’s like a user, with a user name or an application name, with the option of mentioning it through the @ symbol and to start a dedicated conversation with it, but behind the screen is not a real person but an application that interacts with you, reads your messages and reacts to them. Instead of a human, it will be a program, a software. It could be a bot, in other words.

Behind the scenes: a server and an API endpoint

Slack has made an excellent effort to make its API more accessible to developers and individuals with a basic understanding of APIs. Rather than define API here, I will simply provide you with this link. However, the Slack API is the doorway needed when you wish to develop an application for Slack, which will not be a common application, but rather an application intended to be used only within a Slack workspace.

There is a view on Slack API dashboard while creating a new app.

A dedicated dashboard allows any user to create a Slack app or a bot, call it whatever they like, duplicate it through an extremely efficient mechanism called manifest, and even make it public, so that it is available to other Slack workspaces and not just your own as initially. You will then have to create what IT professionals call an API endpoint on your own server, using whatever programming language you choose. This can be as simple as a script that will run at all times and receive data from your Slack application.

Behind the scenes: Slack events for a Slack webhook

There are two new concepts related to Slack, which are of particular interest to developers: Slack is built to log all of your users’ actions, action by action, in the backstage of your Slack workspace when they are chatting, communicating, or exchanging live messages. Events are what Slack calls them, and they have created an entire system for logging all Slack events and forwarding them to your Slack app through another technical concept known as Slack outgoing webhooks.

The webhooks are the mechanism by which Slack becomes aware of the API endpoint you will set up on your server, and relays these Slack events to it via HTTP requests. The full mechanism is more complicated to explain here, but you will have to grant your Slack app permission to monitor your Slack workspace for Slack events, and once that has been done, Slack will relay these Slack events to you via Slack webhooks. Only one webhook is needed here, just on API endpoint hosted where you want.

There is view on Slack API dashboard and the Event subscription section for outgoing webhooks.

In the end, you configure your Slack app so that it listens to everything that is happening in your Slack workspace, it’s like if you worked on the hears and eyes of your Slack app. In your API endpoint code, you will need to parse the data (usually received in JSON format) of the Slack Events, and then do whatever you wish with them, such as taking actions, because till now, your app is just able to listen and witness Slack events.

For the end users: 3 types of specific usage per bot

It is now time for your Slack app to interact directly with the users of your Slack workspace. In order to make it perform like a bot or an intelligent program that can respond when it receives a solicitation, you will need to include the code that calls Slack API functions. Detailed documentation and a complete list of methods are available here, and if your bot or Slack app is written in PHP, you may wish to take inspiration from “wrapi/slack”.

It is also up to you to determine what constitutes solicitation. It will be up to you to decide what actions will trigger the Slack app to respond and react. In order to make the usability and comfort of the timeNough bots more attractive and practical, we decided to start with three:

There is view on the CoreNough LLC Slack workspace with a user on a Direct Message to the timeNough Time Late bot.

  • Direct messages: within the CoreNough Slack workspace, the 8 timeNough bots will appear in the search engine, so users can simply type “Time”, bots will be listed and then they can initiate a genuine conversation with them. Any message will be received, viewed as a signal, and processed by the bots in accordance with their objectives. There are only two bots that are not behaving in this manner: the Time Logger bot, which refuses direct messages, and the Time Away bot, which will really care about the content of the message since he expects a query that looks like “1 day + 06/12/2023 + sick”. More details here.
  • Slack mentions: the ability to mention or tag another user in a message is a common feature of most messaging and chat applications, whether you are writing a direct message or composing a message for a Slack channel or group. Start by typing the @ symbol, and the application should show a list or box of users that can be mentioned, so that you have the option of avoiding typing the entire name of the user letter by letter yourself. Like Slack users, Slack apps can also be mentioned, and our eight timeNough bots will simply listen to mentioning events sent by the Slack workspace, and process them as received signals. There is only one bot that refuses mentions and does not respond to them: the Time Away bot. If you mention multiple bots in one message, the first one will be the only one to react accordingly.
  • Slack commands: in Slack, you have the option of writing something called a “command” anywhere. Instead of the @ symbol, you will have to start typing the / symbol, and based on what is defined and configured for the Slack app or bots inside the workspace, the application will open a suggestion box, but this time it will not display users and Slack apps (or bots) but rather existing and available commands. Each Slack app or bot has its own related command, used to trigger him, to request him something through the Slack commands mechanism.

There is view on the CoreNough LLC Slack workspace with a user on a command pre-editing to the timeNough Time Clock-out bot.

As an example, the Time Clock-in bot may be accessed via the command /clock-in, and the Time Pause bot may be accessed via the command /pause. In addition to the command, you may specify a message before clicking on Send, but it will not be considered by our timeNough bots. The fact that you have triggered the command will suffice for our timeNough bot and it will indicate that it is a signal. Slack commands are not being received by the Time Logger bot, the only one in that case.

Try it all yourself by joining the CoreNough workspace

Previously, I stated that the CoreNough Slack workspace is effective, working, and all eight of our timeNough bots are currently testable. By following this link, all you need to do is register yourself. It’s not necessary for you to have an @corenough.com email address, you can use any email address, personal or professional. After receiving a confirmation email, your name will be asked, and that’s it.

No worries if you do not have the Slack application installed on your computer or smartphone. The CoreNough Slack workspace can be accessed through any web browser including Chrome, Safari, Firefox, or Edge. As soon as you are logged in, you will be able to use these bots right away and send direct messages, mentions, and commands. To fully comprehend what these 8 bots are supposed to do and what is their initial mission, I recommend visiting this wiki page first.

There is view on the log-in screen of the CoreNough LLC Slack workspace dashboard.

You are still required to whitelist your email address

Again, the email address you have provided in the Slack onboarding process should also be whitelisted in our timeNough system by going here. This demo Slack workspace contains eight bots that are behind the scenes connected to a central program we developed. The program currently handles both SMS and email signals simultaneously, so regression is not allowed. Slack integration is an extension of that system, and if the system’s core requires that new users be whitelisted, the same applies to this Slack workspace as well.

Next integrations will be with competitors of Slack

Although we are extremely proud of ourselves and our integration with a mainstream messaging app, this is not sufficient, unfortunately. As Slack is not alone in his field, there are always alternatives as well as strong contenders who deserve a fair share of this market. Since we are trying to sell enterprise software, we should not limit our extension to only one live messaging app, because perhaps a company who may be interested in our prototype does not use Slack at all, making that recent integration irrelevant to them.

8 specific interfaces where employees spend a great deal of time

As a result, in this section I will quote again the article from PC Magazine about the best business messaging apps and the outstanding editorial work by their journalists and IT professionals that preceded it. It simply gives us the names of eight Slack competitors, eight other chat applications, which might be of interest to us because they are widely used in corporate environments and organizations that require such a technology. A similar integration is to be included in our agenda.

There is working from home employee is downloading the Microsoft Teams social platform, ready for remote working in isolation from home.

Nonetheless, one thing is crucial to consider, and I will conclude my article with it: what about their respective APIs, developer resources, event subscriptions, and webhook opportunities? This is something we will definitely check before integrating our prototype into their environment. Until now, we have put in place a central webhook and API endpoint on our servers that can handle and receive Slack events, email events, and SMS events in one location. It would be great if releasing a new integration would simply involve adding a new block of code to our existing one and testing it.

A dedicated chat bot must be easily created there

We understand, however, that this may not be as straightforward as it seems. We have already found resources on Microsoft Teams and Skype Business, two serious competitors of Slack in the corporate environment. As the philosophy they have adopted is quite similar to that of Slack, releasing an additional medium and vertical development of timeNough in the near future may not be a major concern. As for the other software, we will have to review them one by one, but here are our requirements for making our bot system available within them:

  1. The chat app is available through web browser, mobile app and desktop app,
  2. The chat app is able to send API events in JSON format about anything happening,
  3. The chat app allows internal apps development that can be each of our bots,
  4. All of our bots can be contacted seamlessly through the chat app (Direct messages),
  5. Our bots can be tagged and mentioned in any message by using the @ sign,
  6. A API reaction to an API event happens in an instant, like with Slack.