Book Image

Building Slack Bots

Book Image

Building Slack Bots

Overview of this book

Slack promises that its users will "be less busy." Slack bots interact with users in Slack chatrooms, providing useful immediate information, and automating work. This book gives you everything you need to build powerful and useful Slack bots. You’ll see how to hook into the Slack API to create software that can read and post to chatrooms, respond to commands and hints given in natural conversational language, and build fun and useful bots for your own place of work, both as a front end to your own service and to distribute and share as apps. You can even sell your bots and build a business as a Slack bot developer. Throughout the book, you’ll build useful and fun example applications that you can modify for your own situations. These range from simple, fun applications to liven up discussions to useful, data-driven apps to help you make decisions quickly and manage work.
Table of Contents (14 chapters)

Webhooks


A webhook is a way of altering or augmenting a web application through HTTP methods. Previously, we used third-party APIs in our bots to get data into and out of Slack. However, this isn't the only way. Webhooks allow us to post message to and from Slack using regular HTTP requests with a JSON payload. What makes a webhook a bot is its ability to post messages to Slack as if they are a bot user.

These webhooks can be divided into incoming and outgoing webhooks, each with their own purposes and uses.

Incoming webhooks

An example of an incoming webhook would be a service that relays information from an external source to a Slack channel without being explicitly requested. An example of this is the aforementioned GitHub Slack integration:

The GitHub integration posts messages about repositories we are interested in

In the preceding screenshot, we can see how a message was sent to Slack after a new branch was made on a repository this team is watching. This data wasn't explicitly requested...