Telegram Bot

by claude-office-skills9c4c7d5cd281MIT499 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 8 months ago

Telegram bot development - chatbots, notifications, AI assistants, and group automation

AI-generated overview

Guides building Telegram bots for chatbots, notifications, AI assistants and group automation.

What it does
This skill provides reference patterns and configuration examples for creating Telegram bots, covering bot setup with BotFather, message handlers for text, commands, photos, documents, voice and location, and n8n workflow structures. It also documents AI-powered assistants, notification and alert templates, group automation such as welcome and moderation flows, and inline keyboards and inline queries. It produces guidance and example configurations rather than runnable code.
When to use it
Use it when planning or documenting a Telegram bot for chat, notifications, AI replies or group management. It suits teams that want setup steps, message-handling patterns and message templates before implementation.
Requirements
Requires a Telegram bot token from BotFather and chat IDs; examples reference an n8n instance, the telegram-mcp server with its tools, and AI models such as GPT-4 and Whisper. Network access to the Telegram API is implied. No scripts are shipped; the skill is instructions only.

Telegram Bot

Build Telegram bots for chatbots, notifications, AI assistants, and group automation. Based on n8n's Telegram workflow templates.

Overview

This skill covers:

  • Bot setup and configuration
  • Message handling patterns
  • AI-powered assistants
  • Notification workflows
  • Group automation

Bot Setup

Creating a Bot

yaml
setup_steps:  1. create_bot:      - open: @BotFather on Telegram      - command: /newbot      - provide: bot_name      - provide: bot_username (must end in 'bot')      - receive: API_token        2. configure_bot:      - command: /setdescription      - command: /setabouttext      - command: /setuserpic      - command: /setcommands        3. get_chat_id:      - start: conversation with bot      - call: https://api.telegram.org/bot{TOKEN}/getUpdates      - extract: chat.id from response

Bot Commands

yaml
commands:  - command: /start    description: "Start the bot"      - command: /help    description: "Show available commands"      - command: /status    description: "Check system status"      - command: /subscribe    description: "Subscribe to notifications"      - command: /unsubscribe    description: "Unsubscribe from notifications"

Message Handlers

Basic Message Handler

yaml
workflow: "Telegram Message Handler"trigger: telegram_message
handlers:  text_message:    action: |      1. Parse message text      2. Determine intent      3. Process request      4. Send response        command:    pattern: "^/"    action: route_to_command_handler      photo:    action: |      1. Download photo      2. Process with vision AI      3. Respond with analysis        document:    action: |      1. Download document      2. Extract content      3. Process and respond        voice:    action: |      1. Download audio      2. Transcribe with Whisper      3. Process text      4. Respond (text or voice)        location:    action: |      1. Extract coordinates      2. Lookup local info      3. Respond with relevant data

n8n Workflow

yaml
workflow: "Telegram Bot n8n"
nodes:  - name: "Telegram Trigger"    type: "n8n-nodes-base.telegramTrigger"    parameters:      updates: ["message", "callback_query"]        - name: "Route Message Type"    type: "n8n-nodes-base.switch"    parameters:      rules:        - output: 0          condition: "{{ $json.message.text.startsWith('/') }}"        - output: 1          condition: "{{ $json.message.photo }}"        - output: 2          condition: "{{ $json.message.voice }}"        - output: 3          fallback: true            - name: "Process with AI"    type: "n8n-nodes-base.openAi"    parameters:      model: "gpt-4"      messages:        - role: "system"          content: "You are a helpful Telegram assistant."        - role: "user"          content: "{{ $json.message.text }}"            - name: "Send Response"    type: "n8n-nodes-base.telegram"    parameters:      chatId: "{{ $json.message.chat.id }}"      text: "{{ $json.response }}"

AI-Powered Bot

GPT-4 Integration

yaml
ai_bot:  name: "AI Assistant Bot"    system_prompt: |    You are a helpful AI assistant on Telegram.        Guidelines:    - Be concise (Telegram has message limits)    - Use emojis appropriately    - Format with markdown when helpful    - Ask clarifying questions if needed      features:    - conversational_memory: true    - context_window: last_10_messages    - tools: [web_search, calculator, weather]      message_formatting:    max_length: 4096    split_long_messages: true    use_markdown: true

Multi-Modal Bot

yaml
multimodal_bot:  handlers:    text:      model: gpt-4      action: chat_completion          image:      model: gpt-4-vision      action: analyze_and_respond          voice:      transcribe: whisper      process: gpt-4      respond: text_or_voice          document:      extract: based_on_type      summarize: gpt-4      respond: text

Notification System

Alert Bot

yaml
workflow: "System Alert Bot"
triggers:  - source: monitoring_system    event: alert  - source: ci_cd    event: build_status  - source: ecommerce    event: new_order    notification_templates:  alert:    format: |      🚨 *Alert: {severity}*            *Service:* {service}      *Message:* {message}      *Time:* {timestamp}            [View Dashboard]({dashboard_link})        build:    format: |      {status_emoji} *Build {status}*            *Project:* {project}      *Branch:* {branch}      *Commit:* `{commit_short}`            {details}        order:    format: |      🛒 *New Order!*            *Order:* #{order_id}      *Customer:* {customer}      *Total:* ${total}      *Items:* {item_count}      routing:  by_severity:    critical: [admin_group, on_call_user]    warning: [team_group]    info: [logging_channel]

Scheduled Notifications

yaml
scheduled_notifications:  daily_digest:    schedule: "9am daily"    template: |      📊 *Daily Summary - {date}*            📈 Sales: ${sales} ({change})      👥 New users: {new_users}      🎫 Open tickets: {tickets}            Have a great day! ☀️        weekly_report:    schedule: "Monday 9am"    template: weekly_metrics_report      reminder:    trigger: custom_event    template: |      ⏰ *Reminder*            {reminder_text}            Scheduled by: {creator}

Group Automation

Welcome Bot

yaml
group_bot:  on_member_join:    action: |      1. Check if new member      2. Send welcome message      3. Share rules      4. Suggest introduction          template: |      👋 Welcome to {group_name}, {user_name}!            Please:      1. Read the /rules      2. Introduce yourself      3. Ask questions anytime!            Enjoy your stay! 🎉        on_member_leave:    action: optional_goodbye      moderation:    - spam_detection: auto_delete + warn    - link_filtering: whitelist_only    - flood_control: rate_limit

Poll & Survey Bot

yaml
poll_bot:  commands:    /poll:      format: "/poll Question | Option1 | Option2 | ..."      action: create_poll          /survey:      action: start_multi_question_survey          /results:      action: show_aggregated_results        features:    - anonymous_voting: optional    - multiple_choice: optional    - scheduled_close: optional    - export_results: to_sheets

Inline Features

Inline Keyboard

yaml
inline_keyboard:  example:    text: "Choose an option:"    keyboard:      - row:          - text: "Option 1"            callback_data: "opt_1"          - text: "Option 2"            callback_data: "opt_2"      - row:          - text: "Cancel"            callback_data: "cancel"              callback_handler:    opt_1:      action: process_option_1      response: "You selected Option 1"          opt_2:      action: process_option_2      response: "You selected Option 2"          cancel:      action: cancel_operation      response: "Operation cancelled"

Inline Query

yaml
inline_mode:  trigger: "@botname query"    results:    - type: article      title: "{query} result"      description: "Click to send"      message_text: "Result for: {query}"          - type: photo      photo_url: "{search_result_image}"          - type: gif      gif_url: "{gif_url}"

Output Example

Request: "Create a Telegram notification bot for server alerts"

Output:

markdown
# Server Alert Telegram Bot
## Setup
1. Create bot with @BotFather2. Get token: `123456:ABC-DEF...`3. Get chat ID for alerts channel
## n8n Workflow
```yamlnodes:  1. Webhook (receives alerts)  2. Format Message  3. Telegram Send

Alert Templates

Critical Alert:

🚨 CRITICAL ALERT
Server: production-web-01Status: DOWNTime: 2026-01-30 14:32:05 UTC
Details:- CPU: 98%- Memory: 95%- Disk: 89%
[View Grafana] [Acknowledge]

Recovery:

✅ RECOVERED
Server: production-web-01Downtime: 5 minutesStatus: All systems normal
Incident resolved automatically.

Implementation

javascript
// Send alert functionasync function sendAlert(severity, message, details) {  const emoji = {    critical: '🚨',    warning: '⚠️',    info: 'ℹ️',    success: '✅'  };    const text = `${emoji[severity]} *${severity.toUpperCase()}*\n\n${message}\n\n${details}`;    await telegram.sendMessage({    chat_id: ALERT_CHANNEL_ID,    text: text,    parse_mode: 'Markdown'  });}

Features

  • Severity-based routing
  • Inline action buttons
  • Acknowledgment tracking
  • Escalation rules

---
*Telegram Bot Skill - Part of Claude Office Skills*

Source and attribution

Source:claude-office-skills/skillsintelegram-botat commit9c4c7d5

License: MIT

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal