Skip to content

Latest commit

 

History

History
52 lines (29 loc) · 3.53 KB

README.md

File metadata and controls

52 lines (29 loc) · 3.53 KB

anon-feedback-slackbot

Slackbot that is triggered on slash command, publishing anonymous, public, and easy feedback to a channel.

Motivations

Background

I created this Slackbot for VandyHacks, the hackathon organization at Vanderbilt University in Nashville, Tennessee. In short, I am the current co-president, and wanted people to voice their feedback anonymously, publicly, and easily.

Problems

We found that the feedback loop was inefficient for people that had criticism, but did not feel as if they had the power to speak up in meetings or in public Slack channels. Therefore, we needed something that was anonymous.

Furthermore, we needed something that was public. Our previous usages of Google Forms or private messages meant that it was difficult to see if information and criticisms were being created or not. Therefore, we wanted to be transparent.

Finally, we wanted something that was easy to use to reduce friction, allowing people to submit feedback in a centralized location–making Slack the obvious choice, since most non-meeting discussions are held on Slack.

Solution

A Slackbot that could be called with a simple slash command was the easiest way for users to be able to submit feedback from a global context.

Furthermore, since the Slackbot would be the one outputting the feedback, it would be anonymous.

Finally, since the Slackbot was submitting it publicly to a channel where not only the recipient of the feedback could respond in a thread but also anyone else could view the feedback and respond, it would be very public.

Demonstration

Video demonstration of using the slash command: Photo Preview

Installation

First, start off with installing npm and git if you do not have them.

You will need to create an application on your Slack workspace with permissions for Incoming Webhooks and for Slash Commands. Save the Webhook URL that's exposed for you–that will become the SLACKBOT_WEBHOOK private environment variable that you will utilize later.

Then, git clone the repository, and then npm i the repository. You will need to create a .env file with your SLACKBOT_WEBHOOK.

Deployment

There are a couple of options for deployment–I used Zeit Now for ease of rapid deployment.

  • If using it, then deploy your bot utilizing now --prod in your terminal. Use the resulting URL with /action afterwards for your slash command url.
  • In order to export the environment variables for Zeit Now, you must follow the syntax now secrets add <secret-name> <secret-value>. Here, you should therefore say now secrets add SLACK_WEBHOOK <your_webhook_url_here>. Then, in now.json, you need to add an "env" property on the json object. Add what the environment variable in your code corresponds to in now–for reference, the format should be the lowercase version of the .env name, with an @ preceding it. For example, "SLACK_WEBHOOK": "@slack_webhook". For more documentation on secrets, refer to their article on serverless functions here.

Future Steps

  • Integrate OAuth process for other organizations to adopt
  • Link up with interesting web interface; integrate with VandyHacks documentation systems and Notion if they come out with an API
  • OAuth for other organizations
  • Install button for homepage