Welcome to our Discord bot that manages member roles and status progression! This bot automatically syncs with our Google Sheets to keep member information up-to-date.
- Automatically assigns roles based on your status in our organization
- Promotes members through our progression system (Incoming → Active → Previous)
- Syncs with Google Sheets to keep everything organized
- Updates both Discord and our database when status changes
| Command | What it does |
|---|---|
!ping |
Test if the bot is working |
!checkapps |
See how many applications we have |
!sync_roles |
Manually sync all roles from our sheet |
!promote |
Promote everyone's status (Incoming→Active→Previous) |
!setstatus @username Active |
Set a specific person's status |
We have three main status roles:
- 🟡 Incoming - New members who just joined
- 🟢 Active - Current active members
- 🔴 Previous - Former members
If you just need to run the bot:
pip install discord.py gspread python-dotenv oauth2clientAsk an admin in Discord for:
.envfile (contains Discord token and Sheet ID)credentials.jsonfile (Google Sheets API credentials)
Place both files in your project folder.
python bot.pyThat's it! The bot should now be running and connected to our Discord server.
If you need to set up the bot for a completely new spreadsheet:
pip install discord.py gspread python-dotenv oauth2clientCreate a .env file in the project folder:
DISCORD_TOKEN=your_discord_bot_token_here
SHEET_ID=your_google_sheet_id_here-
Get the Google Sheet ID from the URL:
- Open your Google Sheet
- Copy the ID from the URL:
https://docs.google.com/spreadsheets/d/SHEET_ID_HERE/edit
-
Set up Google Sheets API:
- Go to Google Cloud Console
- Create a new project
- Enable Google Sheets API
- Create a Service Account
- Download the credentials JSON file
- Rename it to
credentials.jsonand place in project folder
-
Share your Google Sheet:
- Open your Google Sheet
- Click "Share" (top right)
- Add the service account email (from credentials.json) with Editor permissions
- ✅
bot.py- Main bot code - ✅
.env- Environment variables (get from admin or create new) - ✅
credentials.json- Google Sheets API credentials (get from admin or create new)
When it's time to promote members (like at the end of a semester):
!promote
This will:
- Move Incoming → Active
- Move Active → Previous
- Remove Previous roles
- Update our Google Sheet automatically
To change someone's status manually:
!setstatus @username Active
Replace @username with the person's Discord mention and Active with their new status.
If roles get out of sync:
!sync_roles
This will sync all roles from our Google Sheet to Discord.
To see our latest applications:
!checkapps
This shows how many applications we have and the most recent one.
!ping- Test bot!checkapps- See applications!promote- Promote everyone!setstatus @user Active- Set individual status!sync_roles- Manual sync
Made by Prabhgun Bhatia