A secure Telegram bot that captures ideas from authorized users and groups, sending them directly to your Trello boards.
- 🔐 Authorization System - Only authorized users and groups can use the bot
- 🏢 Multiple Workspaces - Each user/group can use their own Trello account
- 📝 Capture ideas from Telegram group chats
- 📋 Send ideas directly to Trello boards and lists
- 👥 Works in group chats with multiple users
- 🎯 Configurable board and list selection
- 🏷️ Add labels and descriptions to cards
- 👤 Assign cards to team members
- 🔒 Admin controls for bot management
- 📊 Usage statistics and request management
- 🔄 Automatic workspace switching per chat
- Open Telegram and search for @BotFather
- Send
/newbotcommand - Choose a name for your bot (e.g., "Trello Assistant")
- Choose a username (must end with 'bot', e.g., "TrelloAssistant_bot")
- Save the bot token you receive
- Go to https://trello.com/app-key
- Log in to your Trello account
- Copy your API Key
- Click on "Token" link to generate a token
- Authorize the app and copy the Token
Important: You need your Telegram user ID to be the bot admin.
- Search for @userinfobot on Telegram
- Start a chat and it will show your user ID
- Copy this ID for the next step
-
Copy
.env.exampleto.env:cp .env.example .env
-
Edit
.envand add your credentials:TELEGRAM_BOT_TOKEN: Your bot token from BotFatherTRELLO_API_KEY: Your Trello API keyTRELLO_TOKEN: Your Trello tokenBOT_USERNAME: Your bot's username (without @)ADMIN_USER_IDS: Your Telegram user ID from step 3 (comma-separated for multiple admins)ENCRYPTION_KEY(optional): Random string for encrypting tokens (recommended to change)
To set a default board, you need the board ID:
- Open your Trello board in a browser
- Add
.jsonto the end of the URL - Look for
"id"at the beginning of the JSON - Copy this ID to
DEFAULT_BOARD_IDin.env
# Install dependencies
npm install
# Start the bot
npm start
# For development with auto-restart
npm run dev/start- Initialize the bot and check authorization/request- Request access to use the bot
/helptrello- Show all available commands/idea [your idea]- Quick capture an idea to default list/task [task description]- Create a task card
/workspace- View current workspace info/setworkspace- Connect your own Trello account/removeworkspace- Remove custom workspace and use default
/boards- List all accessible Trello boards/setboard- Set the current board for the chat/lists- Show lists in current board/setlist- Set default list for quick captures/status- Show current configuration
/addidea- Interactive idea creation with options/assign @username [card title]- Create and assign a card/label [label] [card title]- Create card with label/search [query]- Search for cards
/authorize [user_id]- Authorize a user/authorize group:[group_id]- Authorize a group/unauthorize [user_id]- Remove user authorization/requests- View pending access requests/authorized- View all authorized users and groups/settings- Configure bot settings/stats- Show bot usage statistics
Each authorized user or group can connect their own Trello account:
- Use
/setworkspacecommand - Get your API key from https://trello.com/app-key
- Generate a token using the link provided
- Send credentials to the bot in the format shown
- Privacy: Your cards go to your own Trello account
- Organization: Each group can use different workspaces
- Flexibility: Switch between workspaces anytime
- Independence: Not dependent on bot owner's Trello
The bot uses a whitelist system - only authorized users and groups can use it.
- Add your Telegram user ID to
ADMIN_USER_IDSin.env - Start the bot
- You'll have full access as admin
For individual users:
- User sends
/requestto the bot - Admin receives notification
- Admin uses
/authorize [user_id]to grant access
For groups:
- Add bot to the group
- Someone in the group uses
/start - Bot shows the group ID
- Admin uses
/authorize group:[group_id]to grant access
-
Get group authorized first (see above)
-
Add the bot to your group:
- Open the group chat
- Click group name → Add Members
- Search for your bot username
- Add the bot
-
Important: Make the bot an admin (for it to see messages):
- Click group name → Edit
- Administrators → Add Administrator
- Select your bot
-
Configure the board for the group:
- Use
/setboardcommand - Select the Trello board for this group
- Use
/idea Build a feature for user authentication
/task Implement OAuth2 login with Google
/addidea
Bot: What's your idea?
You: Create landing page
Bot: Select a list: [Shows buttons]
You: [Select "To Do"]
Bot: Add a description? (optional)
You: Modern, responsive design with hero section
Bot: Card created!
- Use
/setlistto set a default list for faster idea capture - Ideas can be captured by mentioning the bot:
@YourBot_bot idea: [your idea] - Multiple users can use the bot simultaneously in group chats
- Cards are created with the sender's name for tracking
- Click the button above or go to Railway
- Create a new project from your GitHub repository
- Add the following environment variables in Railway:
TELEGRAM_BOT_TOKENTRELLO_API_KEYTRELLO_TOKENBOT_USERNAMEADMIN_USER_IDSENCRYPTION_KEY(optional but recommended)DEFAULT_BOARD_ID(optional)PORT(Railway sets this automatically)
- Add a volume for persistent data storage:
- Go to your service settings
- Click "Volumes" → "New Volume"
- Mount path:
/app/data - Volume size: 1GB (you'll use <100MB)
- Deploy!
Cost: Railway ~$5/month + Volume $0.01/month = **$5.01/month total** ✅
Note: The bot stores data in JSON files in the data/ folder. Railway volumes ensure this data persists across restarts and redeployments.
The bot can be deployed to any Node.js hosting platform:
- Heroku: Use the included
Procfile - DigitalOcean: Deploy as a Node.js app
- AWS/GCP: Use their Node.js runtime
- VPS: Run with
npm startor use PM2 for process management
Using PM2 (recommended for VPS):
npm install -g pm2
pm2 start index.js --name trello-bot
pm2 save
pm2 startup- Bot not responding in groups: Make sure bot is an admin
- Can't see boards: Check Trello token permissions
- Commands not working: Ensure bot username is correctly set in
.env - Bot crashes: Check logs for missing environment variables
- Never share your
.envfile or commit it to git - Keep your API keys and tokens secret
- Regularly rotate your Trello token
- Use ADMIN_USER_IDS to restrict sensitive commands
- The bot encrypts stored tokens in JSON files in the
data/directory - The
data/directory is excluded from git via.gitignore
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Troubleshooting section
- Search existing GitHub Issues
- Create a new issue if your problem isn't already reported