Instant messaging team chat apps like Slack are perhaps the most important breakthrough in workplace communication after email and IRC. While email is good for long-form, asynchronous communication, team chat apps are essential for the modern teams that move in real time.
All the team chat apps today allow using bots. Bots can be used either as an extension, or as a bot user whose actions can be controlled programmatically or by a webhook based system. Slack leads this area with its “apps” that even have the ability to post custom formatted content directly to the chat. These bots and apps can either be downloaded from the Slack app store or a team can build their own app to meet their requirements. Slack provides a Real-Time Messaging (RTM) API that can be used to give powers to bot users. Unlike the push-based Events API, the RTM API works over a websocket connection to maintain an always online state. Both of these APIs can be used to build custom solutions for challenges teams in an organization face. The number of apps a team can install is limited to 10 in Slack’s free pricing plan, while it is unlimited for the two paid plans.
Slack bots and apps have a use case for each department in an organization. Developers can use apps like GitHub to know when new code is pushed to a repository, or when a new issue is created or an old issue is resolved. Devops can use apps like Moss to monitor the server load in real time and take actions like launching new servers or setting up monitoring accordingly right from within Slack. They can use the integrations for Travis or the open source project Jenkins to know the current status of the CI/CD pipeline. The marketing and HR departments can use the Salesforce integration to set up alerts for important leads and meetings. The analytics department can use apps like Amplitude to share insights faster. All departments can use general-purpose apps like Polly for making interactive polls right in the chat, or Dropbox integration for managing shared files.
An important responsibility of a CIO is to make sure that the teams in the IT department of an organization function in perfect synchronization with each other. With the way modern organizations are structured, each team has a separate communication channel that is often connected to other teams via custom-build internal tools. Slack bots bring the power of real-time communication to collaboration between different teams. The QA team can collaborate with the appropriate development team using plugins like Jira Cloud, and the development team can collaborate with the devops team using OpsGenie.
Adding external apps and bots integration to the workflow of teams has a drawback in that these extensions are dependent upon the platform. This in turn causes a lock-in into a single chat app. What if the organization decides to move to a different team chat app than Slack? The solution to this problem is using generic open source bots like Hubot that can be customized to perform many tasks. Hubot can be added to many other chat applications like Rocket Chat, Discourse, or the open source Zulip. The drawback is that Hubot cannot provide a wide range of customization and functionality like other apps can, which are native to a platform. Another option is to use a generic bot framework like the Microsoft Bot Framework to make custom bots.
Using team chat applications as an extension of the workspace is an innovative new approach that is currently gaining traction. The added benefit of seeing results from various external services right in the chat and the ability to reference them while communicating with other users is a huge productivity boost. The chat app also acts as a centralized place where team members can share things and tag the relevant people. It makes sure that every message is acknowledged by that person, without requiring them to monitor multiple sources of communication like new JIRA issues, changes to the Trello board, or a new lead. While each team chat application has its own pros and cons, nothing beats Slack in terms of the number or power of bots and apps integrations it provides. For those who want a more open alternative, they can always choose generic frameworks.