Boatswain is a Slack app for #high-seas-help in the Hack Club Slack. It's built for us to quickly answer as many help questions as possible whilst also being human.
- Thread System - Users can create support threads by messaging in #high-seas-help and it gets sent to a private relay channel where the support team (lifeguards) can respond.
- Macros - Lifeguards can create their own macros to quickly respond to common questions.
- Airtable Integration - All support threads are logged in an Airtable base for easy tracking and analytics.
- GitHub Issue Creation - If a support thread is deemed to be a bug, a GitHub issue can be created directly from the thread by clicking a button to open a modal.
- Resolving - Once a thread is resolved, the lifeguard can mark it as resolved and it will be logged in Airtable as such and all traces will be deleted from the private channel.
- User Information - When a new request is created, Boatswain will automatically send a message in the thread with information about the users votes, ships, any fraud cases, doubloons and more.
The goal is that the private channel remains empty, meaning there are no more questions to respond to.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 main.py
The following environment variables are required:
SLACK_BOT_TOKEN
- Get this from Slack app dashSLACK_USER_TOKEN
- Get this from Slack app dashSLACK_SIGNING_SECRET
- Get this from Slack app dashSLACK_SUPPORT_CHANNEL
- Get this from the channel linkSLACK_REQUEST_CHANNEL
- Get this from the channel linkSLACK_GH_TICKET_CREATOR
- User ID. Set this to yourself if you're running the appAIRTABLE_API_KEY
- Get this from the Airtable Builder HubAIRTABLE_BASE_ID
- Get this from the Airtable Base URL (app...)GITHUB_REPO
- Get this from the GitHub repository URL (hackclub/boatswain)GITHUB_TOKEN
- Get this from the GitHub Developer Settings
The following environment variables are optional:
PORT
- Defaults to 3000 if not specified
Add notes on gunicorn (Don't use the dev server)