Basically, "Standup meetings for Slack"
Slack Manager allows teams to conduct lightweight "standup" style meetings via Slack. You can start a meeting by inviting your bot to your current channel and just type "start meeting".
Advantages of Slack Manager from other services:
- Free and easy to use.
- Configurable mail settings.
- Configurable questions.
- Works with multiple channels.
- Currently, the channels must be private channels.
- First make a bot integration inside of your Slack channel. Go here:
https://my.slack.com/services/new/bot
- Enter a name for your bot. Make it something fun and friendly, but avoid a single task specific name. Bots can do lots! Let's not pigeonhole them.
- When you click "Add Bot Integration", you are taken to a page where you can add additional details about your bot, like an avatar, as well as customize its name & description.
Copy the API token that Slack gives you. You'll need it in the next step.
- Clone the repository by:
git clone https://github.com/saasbook/slack-manager
- Install via NPM
npm install
- Copy the environment file:
cp .env.sample .env
-
Fill in
.env
with your unique values. Do Not put production tokens in the.sample
file! -
Run the bot using
foreman
or any other Procfile-based too.foreman start
. -
Alternatively, do
source .env && npm start
. You can test this locally as long as the Slack token is correct.
Mailer service uses nodemailer's transport methods. Therefore, for better understanding please read nodemailer's available transports .
For example for Gmail settings: change your settings file by:
{
"token": "YOUR SLACK TOKEN HERE",
"mailer": {
"service": "Gmail",
"email": "email@address.com",
"pass": "mySuperFancyPassword"
}
}
Open default.json
and add a questions field shown below.
slack-manager lets users to ask different questions to different channels. If you prefer a single question list then you will only need the default field of the questions object. If you want to ask different questions to different channels then you will need to add additional fields to the questions object. Fields of the questions object must be the names of the corresponding channels.
Note: If no questions that has the same name as the channel found then the default list will be asked.
"questions": {
"default": [
"What did you do yesterday?",
"What are you going to do today?",
"Did you encounter any problems?"
],
"CHANNEL-NAME": [
"How do you feel?"
],
"ANOTHER-CHANNEL-NAME": [
"Another question?",
"Perhaps more?"
]
}
NOTE: The repo currently contains CS169 specific data!
Set the 3 variables:
TESTING_CHANNEL
This exempts checkingSTAFF_IDS
.STAFF_IDS
This is a list of users for which the bot will always skip asking to provide a status.MEETING_RESULTS_CHANNEL
This is the channel where results are sent.
Use Environment Variables in place of a config.json
file.
token=YOUR-SLACK-TOKEN
mailer_service=gmail # Unless you have a more complex config.
mailer_email= # A valid gmail / google apps address.
mailer_pass= # A
mail_from= # must match mailer_email
mail_to=
-
start meeting
Starts meeting. To be able to start meeting with this command your bot should be invited to the channel.
-
skip
Skips the current user's turn. Asks/Returns to the skipped users again at the end of the meeting. Can be skipped more than once.
-
dismiss
Dismisses the current user, in other words kicks the current user out of the meeting. Useful in case of an absence.
-
quit
Ends the meeting. Meeting can be restarted by typing
start meeting
again.
Slack-Manager uses a number of open source projects to work properly:
- Botkit - Botkit - Building Blocks for Building Bots
- Node-mailer - Send e-mails with Node.JS – easy as cake! E-mail made in Estonia.
- Lodash - A JavaScript utility library delivering consistency, modularity, performance, & extras.
- Async - Async utilities for node and the browser.
- Nconf - Hierarchical node.js configuration with files, environment variables, command-line arguments, and atomic object merging.
Want to contribute? Great! Feel free to submit bugs, and open pull requests.
MIT