A secret Santa Slack bot for positive feedback.
Just click the button, duh!
You must configure on Heroku Scheduler how often Stanley will ask for feedback. Our team is asking feedback on Mondays, Wednesdays, and Fridays. It doesn't mean that all team members will be asked three times a week. Instead, Stanley will choose a sender and a receiver each day randomly.
https://api.slack.com/
-> 'Start Building'
In the section 'Add features and functionality' select Bots and fill the form
In the section 'Add features and functionality' select Permissions
In the Scope add
- bot
- chat:write:bot
- team:read
In the section 'Add features and functionality' select Event Subscriptions
you have to set the deployed app url into 'Requests URL' and verify
Next 'Subscribe to Bot Events' add 'message.im'
Now go to your app and have fun!
Until this moment you have a bot configure but not installed in your workspace yet. To do it and have access to Slack API credentials, click on Install your app to your workspace.
-
SLACK_VERIFICATION_TOKEN
: Still on Slack, click on Basic Information and in the section App Credentials copy Verification Token. -
SLACK_API_TOKEN
: in the section Install App, copy it from Bot User OAuth Access Token.
The variables SLACK_API_TOKEN
and SLACK_VERIFICATION_TOKEN
are required.
Other environment variables that are optional:
-
FEEDBACK_MEMBERS
: Stanley will use all members if you don't fill it in. You can get the users and their ids using Request team members command -
REDIS_URL
: default isredis://127.0.0.1:6379/0
-
SENTRY_DSN
: for Sentry integration purposes
To be able to see team members internal usernames (used in FEEDBACK_MEMBERS
variable), you can run
FLASK_APP=stanley/app.py flask team-command
It will give you the list of Slack team members with their IDs.
To ask for a feedback, just run
FLASK_APP=stanley/app.py flask request-feedback-command
This will ask a random person to provide a feedback to another random person.
Example of our command (that will run on Mondays, Wednesdays, and Fridays):
if [ "$(date +%u)" = 1 ] || [ "$(date +%u)" = 3 ] || [ "$(date +%u)" = 5 ];
then FLASK_APP=stanley/app.py flask request-feedback-command;
fi