In any organization, there come times when individuals within the organization want to report incidents that they've experienced or witnessed.
Maybe a direct supervisor made a questionable remark. Maybe a coworker consumed the last cookie. Maybe a hackathon goer experienced an uncomfortable situation.
We saw two main barriers to people being willing to report incidents: (1) not knowing where to route the complaint, and (2) fear of repercussions for reporting. Escalater addresses both of these.
What it does
Escalater allows for anonymous incident reporting through the use of Escalater Bot on Slack. Slack users who wish to report an incident can send a message to the Escalater Bot, specifying the group of users they would like to report the incident to, for example HR managers or a diversity committee. Their message is sent anonymously to the group, who can reply to the incident via a thread and maintain an anonymous discussion with the reporter. Organizations can view the collection of incidents that have been reported by their members via an accompanying web app.
We use Slack as our main platform since many organizations who would be interested in an incident reporting tool have already decided to use Slack for their primary communications. Slack facilitates and easy back-and-forth conversation between the incident reporter and the responder, making an otherwise stressful situation a little more comfortable.
How we built it
We built a Slack app with an attached bot, as per the Slack documentation. Our server was built in Node.JS, and our database storing incidents was MongoDB. We used Express for routing. We also have a web frontend built with Bootstrap.
Our Node.js server and MongoDB are hosted on Google App Engine and mLab.
Challenges we ran into
The Slack Events API is new and imperfect, so our main challenge was deduplicating event payloads that were sent to us for each reported incident.
We also faced challenges in writing and reading from our database, which neither of us have worked with in the past.
Accomplishments that we're proud of
We put together three moving parts of Slack's API: threads, events, and bots. The former two are quite new, so the documentation on them are sparse.
This is also a tool we want to see used in our own organizations, so we were excited to be able to build the first version.
What's next for Escalater
We'd like to add GCP natural language processing, to analyze incoming incident reports and categorize them, providing better routing to the correct responders with less need for user input.