A dead-simple Telegram bot to capture issues, feature requests, and feedback from your users, with automatic integration to Asana for issue tracking.
No technical experience? No problem!
π Start here: GETTING_STARTED.md
This beginner's guide walks you through every single step with:
- β Plain English explanations (no jargon!)
- β Exactly what to click and type
- β Screenshots of what you'll see
- β Solutions to common problems
- β Complete in ~30 minutes
TL;DR: Just run ./setup.sh and answer the questions. That's it!
- Chat-Only Interface: No complex web apps or forms - just chat naturally
- Screenshot Support: Copy/paste screenshots directly in the chat (Ctrl+V / Cmd+V)
- Smart Metadata Detection: Automatically extracts environment, version, page, A/B variant, and platform from messages
- Asana Integration: Creates organized tasks in your Asana project
- Reporter Tracking: Tracks who reported each issue with Telegram username
- Message Links: Direct links to original Telegram messages for easy follow-up
- Issue Type Detection: Automatically categorizes issues (bug, feature, question, etc.)
# Run the complete setup wizard
./setup.shThis interactive wizard handles everything:
- β Checks prerequisites
- β Installs dependencies
- β Collects credentials
- β Deploys to Vercel
- β Configures webhook
- β Tests your bot
# Install Vercel CLI
npm install -g vercel
# Deploy to Vercel (FREE)
vercel --prod
# Or use the automated deploy script
./deploy.sh# Run bot locally for testing
./local-dev.shGuides:
- QUICKSTART.md - Complete script documentation
- SIMPLE_DEPLOY.md - Manual deployment guide
Users can report issues naturally in Telegram:
"Bug on prod /checkout: payment button doesn't work"
The bot automatically:
- Creates an Asana task
- Extracts metadata (environment: production, page: /checkout)
- Tracks the reporter (@username)
- Includes a direct link to the Telegram message
- Categorizes it as a bug
Telegram Bot Token:
- Message @BotFather on Telegram
- Send
/newbotand follow instructions - Save the bot token
Asana Credentials:
- Go to Asana Developer Console
- Create a Personal Access Token
- Note your Workspace ID and Project ID
In Vercel Dashboard β Settings β Environment Variables:
TELEGRAM_BOT_TOKEN=your_bot_token
ASANA_ACCESS_TOKEN=your_asana_token
ASANA_PROJECT_ID=your_project_id
ASANA_WORKSPACE_ID=your_workspace_id
After deploying, set the Telegram webhook:
curl "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=<YOUR_VERCEL_URL>/api/webhook"That's it! Your bot is live π
Bug on staging v2.1.3: upload fails on iOS
β Creates task with environment: staging, version: 2.1.3, platform: iOS
Feature request: add dark mode for mobile app
β Creates feature request task with platform: mobile
Just paste or send an image with a caption:
[Screenshot]
Login page broken on /auth
β Creates task with screenshot and page: /auth
How do I export data from the dashboard?
β Creates question-type task
telegram_issue_bot/
βββ api/
β βββ webhook.ts # Main bot logic (Vercel serverless)
β βββ health.ts # Health check endpoint
β βββ form-config.ts # Form config endpoint (legacy)
βββ src/
β βββ asana/
β β βββ client.ts # Asana API integration
β βββ config/
β β βββ env.ts # Environment configuration
β βββ types/
β β βββ index.ts # TypeScript types
β βββ utils/
β βββ metadata-extractor.ts # Smart metadata detection
βββ vercel.json # Vercel configuration
βββ package.json
βββ tsconfig.json
| Script | Purpose |
|---|---|
./setup.sh |
Complete setup wizard - runs everything automatically |
./deploy.sh |
Deploy to Vercel with options (first-time, quick, production) |
./local-dev.sh |
Run bot locally for development (with auto-reload) |
./setup-telegram.sh |
Manage Telegram webhook (set, check, delete, test) |
./deploy-simple.sh |
Ultra-quick Vercel deploy (already configured) |
See QUICKSTART.md for detailed script documentation.
/start- Welcome message/help- Show help information
That's it! The bot works by simply sending messages - no commands needed.
The bot intelligently extracts context from natural language:
- Environment: prod, production, staging, stage, dev, development
- Version: v1.2.3, version 2.0, etc.
- Page/URL: /checkout, /dashboard, full URLs
- A/B Variant: variant-A, control, exp-123
- Platform: iOS, Android, mobile, desktop, mobile-web
Vercel (Recommended - FREE)
- Serverless architecture
- Auto-scaling
- Global CDN
- Zero maintenance
See SIMPLE_DEPLOY.md for step-by-step instructions.
- All credentials stored as environment variables
- Never commit
.envfiles - HTTPS enforced by Vercel
- Input validation on all user data
- GETTING_STARTED.md - Complete beginner's guide (start here!) β
- STEP_BY_STEP.md - Visual walkthrough with screenshots
- CHEATSHEET.md - One-page quick reference
- QUICKSTART.md - Complete guide to all setup scripts
- SIMPLE_DEPLOY.md - Quick 3-minute deployment guide
- VERCEL_DEPLOY.md - Detailed Vercel deployment guide
- VERCEL_QUICKSTART.md - Fast Vercel setup reference
For issues or questions, check:
- The deployment guides above
- Vercel deployment logs
- Telegram webhook status
MIT