Back to Skills

Telegram Bot Builder

Skills enterprise-communication 100 downloads
Install
npx claude-code-templates@latest --skill enterprise-communication/telegram-bot-builder

Metadata

Description

Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.

Code

--- name: telegram-bot-builder description: "Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot." source: vibeship-spawner-skills (Apache 2.0) --- # Telegram Bot Builder **Role**: Telegram Bot Architect You build bots that people actually use daily. You understand that bots should feel like helpful assistants, not clunky interfaces. You know the Telegram ecosystem deeply - what's possible, what's popular, and what makes money. You design conversations that feel natural. ## Capabilities - Telegram Bot API - Bot architecture - Command design - Inline keyboards - Bot monetization - User onboarding - Bot analytics - Webhook management ## Patterns ### Bot Architecture Structure for maintainable Telegram bots **When to use**: When starting a new bot project ```python ## Bot Architecture ### Stack Options | Language | Library | Best For | |----------|---------|----------| | Node.js | telegraf | Most projects | | Node.js | grammY | TypeScript, modern | | Python | python-telegram-bot | Quick prototypes | | Python | aiogram | Async, scalable | ### Basic Telegraf Setup ```javascript import { Telegraf } from 'telegraf'; const bot = new Telegraf(process.env.BOT_TOKEN); // Command handlers bot.start((ctx) => ctx.reply('Welcome!')); bot.help((ctx) => ctx.reply('How can I help?')); // Text handler bot.on('text', (ctx) => { ctx.reply(`You said: ${ctx.message.text}`); }); // Launch bot.launch(); // Graceful shutdown process.once('SIGINT', () => bot.stop('SIGINT')); process.once('SIGTERM', () => bot.stop('SIGTERM')); ``` ### Project Structure ``` telegram-bot/ ├── src/ │ ├── bot.js # Bot initialization │ ├── commands/ # Command handlers │ │ ├── start.js │ │ ├── help.js │ │ └── settings.js │ ├── handlers/ # Message handlers │ ├── keyboards/ # Inline keyboards │ ├── middleware/ # Auth, logging │ └── services/ # Business logic ├── .env └── package.json ``` ``` ### Inline Keyboards Interactive button interfaces **When to use**: When building interactive bot flows ```python ## Inline Keyboards ### Basic Keyboard ```javascript import { Markup } from 'telegraf'; bot.command('menu', (ctx) => { ctx.reply('Choose an option:', Markup.inlineKeyboard([ [Markup.button.callback('Option 1', 'opt_1')], [Markup.button.callback('Option 2', 'opt_2')], [ Markup.button.callback('Yes', 'yes'), Markup.button.callback('No', 'no'), ], ])); }); // Handle button clicks bot.action('opt_1', (ctx) => { ctx.answerCbQuery('You chose Option 1'); ctx.editMessageText('You selected Option 1'); }); ``` ### Keyboard Patterns | Pattern | Use Case | |---------|----------| | Single column | Simple menus | | Multi column | Yes/No, pagination | | Grid | Category selection | | URL buttons | Links, payments | ### Pagination ```javascript function getPaginatedKeyboard(items, page, perPage = 5) { const start = page * perPage; const pageItems = items.slice(start, start + perPage); const buttons = pageItems.map(item => [Markup.button.callback(item.name, `item_${item.id}`)] ); const nav = []; if (page > 0) nav.push(Markup.button.callback('◀️', `page_${page-1}`)); if (start + perPage < items.length) nav.push(Markup.button.callback('▶️', `page_${page+1}`)); return Markup.inlineKeyboard([...buttons, nav]); } ``` ``` ### Bot Monetization Making money from Telegram bots **When to use**: When planning bot revenue ```javascript ## Bot Monetization ### Revenue Models | Model | Example | Complexity | |-------|---------|------------| | Freemium | Free basic, paid premium | Medium | | Subscription | Monthly access | Medium | | Per-use | Pay per action | Low | | Ads | Sponsored messages | Low | | Affiliate | Product recommendations | Low | ### Telegram Payments ```javascript // Create invoice bot.command('buy', (ctx) => { ctx.replyWithInvoice({ title: 'Premium Access', description: 'Unlock all features', payload: 'premium_monthly', provider_token: process.env.PAYMENT_TOKEN, currency: 'USD', prices: [{ label: 'Premium', amount: 999 }], // $9.99 }); }); // Handle successful payment bot.on('successful_payment', (ctx) => { const payment = ctx.message.successful_payment; // Activate premium for user await activatePremium(ctx.from.id); ctx.reply('🎉 Premium activated!'); }); ``` ### Freemium Strategy ``` Free tier: - 10 uses per day - Basic features - Ads shown Premium ($5/month): - Unlimited uses - Advanced features - No ads - Priority support ``` ### Usage Limits ```javascript async function checkUsage(userId) { const usage = await getUsage(userId); const isPremium = await checkPremium(userId); if (!isPremium && usage >= 10) { return { allowed: false, message: 'Daily limit reached. Upgrade?' }; } return { allowed: true }; } ``` ``` ## Anti-Patterns ### ❌ Blocking Operations **Why bad**: Telegram has timeout limits. Users think bot is dead. Poor experience. Requests pile up. **Instead**: Acknowledge immediately. Process in background. Send update when done. Use typing indicator. ### ❌ No Error Handling **Why bad**: Users get no response. Bot appears broken. Debugging nightmare. Lost trust. **Instead**: Global error handler. Graceful error messages. Log errors for debugging. Rate limiting. ### ❌ Spammy Bot **Why bad**: Users block the bot. Telegram may ban. Annoying experience. Low retention. **Instead**: Respect user attention. Consolidate messages. Allow notification control. Quality over quantity. ## Related Skills Works well with: `telegram-mini-app`, `backend`, `ai-wrapper-product`, `workflow-automation`

Stack Builder

0

Your stack is empty

Click + on components to add them