A Slack bot that sends reminders for board game sessions and helps coordinate game selection through emoji reactions.
- Sends friendly reminders about board game sessions
- Randomly selects games to suggest from a configurable list
- Adds emoji reactions for each game, allowing participants to vote
- Supports both production and testing environments
- Shows player count requirements for each game
- Versatile for any recurring activity (sports, picnics, team events)
Note: While this bot is designed for board game nights, it can be easily adapted for any recurring team activity. Simply customize the messages and options in the configuration files to match your event type, whether it's a weekly sports day, monthly picnic, or any other regular team gathering.
The bot sends a friendly reminder and adds emoji reactions for each game, making it easy for users to indicate which games they'd like to play.
Choose one of these methods:
- Go to https://api.slack.com/apps
- Click "Create New App" → "From an app manifest"
- Select your workspace
- Copy and paste the contents of
slack-manifest.jsonfrom this repository - Click "Create"
- Go to https://api.slack.com/apps
- Click "Create New App" → "From scratch"
- Name your app and select your workspace
- Go to "OAuth & Permissions" and add these scopes:
chat:write(for sending messages)channels:read(for accessing channels)groups:read(for accessing private channels)chat:write.public(for sending messages to public channels)reactions:write(for adding emoji reactions)
-
Install the app to your workspace:
- Click "Install to Workspace"
- Copy the "Bot User OAuth Token" (starts with
xoxb-...)
-
Clone and setup the repository:
git clone https://github.com/furic/board-game-slack-reminder.git cd board-game-slack-reminder npm install -
Configure environment:
- Create a
.envfile with your bot token:SLACK_BOT_TOKEN=xoxb-your-bot-token
- Create a
-
Add the bot to channels:
- Invite the bot using
/invite @your-bot-name - Required channels:
- Production:
social-board-games - Testing:
social-board-games-testing
- Production:
- Invite the bot using
-
Customize game settings:
- Edit
src/config.jsonfor production - Edit
src/config.test.jsonfor testing - Configure games, messages, and player counts
- Edit
Production:
npm run build
npm startTesting:
npm testThe bot uses two configuration files:
src/config.json: Production configurationsrc/config.test.json: Test configuration
Each config file contains:
channel: The Slack channel namemessages: Array of possible reminder messagesgames: Array of games with:name: Game nameemoji: Slack emoji name (without colons, e.g., "game_die" not ":game_die:" or "🎲")emojiUnicode: Unicode emoji for reference (e.g., "🌾" for Catan)minPlayers: Minimum number of players requiredmaxPlayers: Maximum number of players allowed
Note: For the
emojifield, use valid Slack emoji names without colons. For example, use "rice" for 🌾, "castle" for 🏰, etc. You can find a list of available emojis in your Slack workspace by typing:in the message input. TheemojiUnicodefield is for reference only and is not used by the bot.
- Added TypeScript support for better type safety
- Moved channel configuration to
config.json - Added separate test configuration with
config.test.json - Added player count requirements for games
- Improved error handling and logging
- Added emoji reactions for game voting
- Added Slack app manifest for easier setup
Don't make weekend plans – we roll dice tomorrow, 4:30pm L9 😉
🎮 We'll likely play Catan and The Resistance!
- ✅ Weekly scheduled message (via GitHub Actions cron job)
- ✅ Uses Slack Bot Token for authenticated posting
- ✅ Editable game list and messages
- ✅ Zero infrastructure (runs serverlessly via GitHub)
📦 board-game-slack-reminder
├── src/
│ ├── board-game-reminder.ts # The main script
│ ├── config.json # Production configuration
│ └── config.test.json # Test configuration
├── package.json # Dependencies and scripts
├── slack-manifest.json # Slack app configuration
└── .github/
└── workflows/
└── slack-reminder.yml # GitHub Actions workflow
Got a fun feature idea? Open an issue or submit a PR! Suggestions like:
- Google Sheets integration
- RSVP interactivity
- Random snacks generator 🍕?
MIT – Free to use, modify, or share.
Made with ☕ and 🎲 by gamers, for gamers.
