When the Virginia shooting happened last week, the staff at Al Jazeera English didn't get the news from a wire service. It wasn't Twitter either. Instead, they got an alert on Slack.

That’s right, Slack, the trendy real-time messaging app that has quickly become ubiquitous in so many newsrooms.

Al Jazeera has a custom bot that is constantly on the lookout for breaking news. When it finds something that's 'breaking', it sends a Slack message to the team.

Reuters tweeted out the news before sending an alert on its wire, and that's when Al Jazeera's breaking news Slack channel received an update.

The bot was built around two weeks ago by Alaa Batayneh, producer and data analyst at Al Jazeera English's online department.

"People aren't always looking at email or news wires. Something like this helps the team to stay alert and updated during meetings, lunch breaks," said Batayneh.

When he saw how effective the Slack bot was in the newsroom, Batayneh created another one. This one was for the many people who wanted to know Web analytics for their stories. Now they have a Slack service to provide the answer.

When reporters want to know how many page views a certain article received, or how many people are on the site at that moment, they just ask Seena. Named after the Persian scientist Avicenna, Seena is a Slack bot that Batayneh built to reduce his team's workload of scouring through analytics to get this data. The bot also has the functionality to calculate social shares and recommend related articles for a particular topic.

Different commands will return different analytic data. For instance, the command "/facebook" will get the top five shared stories on Facebook during the past 24 hours from Al Jazeera English's website.


"/traffic" followed by an article ID serves up the page views for that story. "/online_now" will tell how many people are on the website at that moment.

(Page views were retracted by the organization for this example)

With the code for the bot written in PHP, the service uses the Chartbeat API and Google Analytics API to fetch the website's traffic data.

Most recently, Batayneh gave Seena the power to recommend stories based on topics. Al Jazeera's CMS requires publishers to choose related stories for a particular article. The command "/news {topic}," fetches the most recent news about a specific {topic}, replace the news with "ops" and Seena will return the most recent opinion pieces from the site. While the function can be useful while reporting a story, it also gives the reporter assistance while selecting related stories.


At present, Batayneh is working on a Facebook bot that notifies a specific group of people if a post on Facebook crosses a specific reach and engagement metric - something that basically reflects the popularity of a post.

Batayneh doesn't plan to open source the code behind these bots at this point, since they aren’t packaged as proper products that work for everyone.

His interest in Slack bots developed when he was up at 4 a.m. reading about Blossom -- The New York Times bot that predicts which stories will do well on social.

Al Jazeera's breaking news bot was built in-house and is customized to track outlets that are most likely to break the topics that Al Jazeera covers. Newsrooms that don't have the resources to create this type of personalized bot may want to integrate a generic breaking news service for Slack that was launched by breakingnews.com last week.

In the case of Al Jazeera, the deploying of these service bots has also been a way to encourage online producers to use Slack more often. The online department of the news organization moved to the platform five weeks ago and the cultural shift has been slow for some team members.

Service bots such as Blossom and Seena are being referred to as ChatOps - a term used to describe tools used within the confines of a chat program. With the buzzword slowly seeping into newsrooms, and the adoption of a work chat such as Slack gaining popularity, chat bots come across as the most conversational way for people to interact with data and information.

If you too want to build a Slack bot, this is one guide to start with.