Telegram Bots sind mächtige Werkzeuge für Business-Automatisierung: Kundenbenachrichtigungen, Team-Alerts, Bestellstatus-Updates oder sogar komplette Chatbots. Das Beste: Sie brauchen keine Programmierkenntnisse. In diesem Guide zeigen wir, wie Sie einen funktionierenden Telegram Bot in 30 Minuten erstellen.

Bevor Sie weiterlesen
Lohnt sich Automation bei Ihnen überhaupt? Machen Sie die 5-Minuten-Analyse — Score, Reifegrad und eine ehrliche Einordnung, ob dieser Weg für Ihre Situation taugt. Kostenlos, Report per Mail.
5-Min-Analyse starten →

Warum Telegram Bots?

Vorteile gegenüber anderen Kanälen:

KanalZustellrateKostenInteraktiv
E-Mail20-30% geöffnetKostenlosBegrenzt
SMS95%+0,05-0,10€/SMSNein
WhatsApp Business90%+Komplex, teuerJa
Telegram Bot90%+KostenlosJa

Use Cases:

  • Server-Monitoring Alerts
  • Bestellbenachrichtigungen
  • Team-Kommunikation
  • Kunden-Support Bot
  • Tägliche Reports
  • IoT-Benachrichtigungen

Schritt 1: Bot bei Telegram erstellen

BotFather kontaktieren

  • Öffnen Sie Telegram
  • Suchen Sie nach @BotFather
  • Starten Sie den Chat mit /start
  • Bot erstellen

    Sie: /newbot
    BotFather: Alright, a new bot. How are we going to call it?
    
    Sie: Mein Business Bot
    BotFather: Good. Now let's choose a username for your bot...
    
    Sie: mein_business_bot
    BotFather: Done! Congratulations on your new bot...
              Use this token to access the HTTP API:
              1234567890:ABCdefGHIjklMNOpqrsTUVwxyz

    Wichtig: Den API Token sicher speichern – er ist wie ein Passwort! Mehr zum Thema APIs erfahren Sie in unserem Artikel API-Integration einfach erklärt.

    Bot konfigurieren

    Weitere BotFather-Befehle:

    BefehlFunktion
    /setdescriptionBot-Beschreibung
    /setabouttextInfo-Text
    /setuserpicProfilbild
    /setcommandsBefehle definieren

    Schritt 2: Chat-ID ermitteln

    Um Nachrichten zu senden, brauchen Sie die Chat-ID:

    Für Einzelpersonen

  • Schreiben Sie Ihrem Bot eine Nachricht
  • Rufen Sie auf: https://api.telegram.org/bot{TOKEN}/getUpdates
  • Suchen Sie "chat":{"id":123456789}
  • Für Gruppen

  • Fügen Sie den Bot zur Gruppe hinzu
  • Schreiben Sie etwas in die Gruppe
  • Rufen Sie getUpdates auf
  • Gruppen-IDs sind negativ: -987654321
  • Automatisch mit n8n

    // Node: Telegram Trigger
    // Wartet auf Nachrichten und extrahiert Chat-ID
    
    const chatId = $json.message.chat.id;
    const username = $json.message.from.username;
    const text = $json.message.text;
    
    // Chat-ID speichern für spätere Nutzung

    Selbst bauen oder bauen lassen?
    Wir implementieren diesen Workflow für Sie — fertig getestet in 1-4 Wochen. Festpreisangebot in 24h.
    Angebot anfragen →

    Schritt 3: Ersten Workflow erstellen

    Use Case: Server-Alert Bot

    Benachrichtigung bei Server-Problemen:

    Uptime Monitor (Server down)
            ↓
        Telegram: Alert senden
        "⚠️ Server XYZ ist nicht erreichbar!"
            ↓
        Warten auf Antwort
            ↓
        Bei "OK": Alarm bestätigt markieren

    n8n Workflow

    Node 1: HTTP Request (Webhook von Uptime-Monitor)

    // Webhook empfängt Alert
    {
      "server": "webserver-01",
      "status": "down",
      "timestamp": "2024-01-15T10:30:00Z"
    }

    Node 2: Telegram - Send Message

    // Telegram Node konfigurieren
    {
      "chatId": "-987654321",  // Gruppen-ID
      "text": "⚠️ *Server Alert*\n\nServer: {{ $json.server }}\nStatus: {{ $json.status }}\nZeit: {{ $json.timestamp }}\n\nAntworten Sie mit /ack zum Bestätigen.",
      "parseMode": "Markdown"
    }

    Schritt 4: Interaktiven Bot bauen

    Befehle definieren

    Bei BotFather:

    /setcommands
    
    status - Aktueller System-Status
    help - Hilfe anzeigen
    subscribe - Benachrichtigungen aktivieren
    unsubscribe - Benachrichtigungen deaktivieren

    Auf Befehle reagieren

    Telegram Trigger (neue Nachricht)
            ↓
        Switch (nach Befehl)
            ↓
        /status → System-Status senden
        /help → Hilfetext senden
        /subscribe → User registrieren
        /unsubscribe → User entfernen

    n8n: Command Handler

    // Node: Switch
    // Routing basierend auf Befehl
    
    const text = $json.message.text;
    
    if (text === '/status') return { route: 'status' };
    if (text === '/help') return { route: 'help' };
    if (text.startsWith('/subscribe')) return { route: 'subscribe' };
    if (text.startsWith('/unsubscribe')) return { route: 'unsubscribe' };
    
    return { route: 'unknown' };

    Status-Befehl implementieren

    // Node: HTTP Request → Ihre API
    // Node: Format Response
    
    const status = {
      webserver: $json.webserver.status,
      database: $json.database.status,
      queue: $json.queue.jobs_pending
    };
    
    const message = `
    📊 *System Status*
    
    🌐 Webserver: ${status.webserver === 'ok' ? '✅' : '❌'}
    🗄️ Datenbank: ${status.database === 'ok' ? '✅' : '❌'}
    📬 Queue: ${status.queue} Jobs wartend
    
    _Aktualisiert: ${new Date().toLocaleString('de-DE')}_
    `;
    
    return { message };

    Schritt 5: Inline Keyboards

    Interaktive Buttons für bessere UX:

    Button-Nachricht senden

    // Node: Telegram - Send Message
    {
      "chatId": "{{ $json.chatId }}",
      "text": "Welche Aktion möchten Sie ausführen?",
      "replyMarkup": {
        "inline_keyboard": [
          [
            { "text": "✅ Bestätigen", "callback_data": "confirm" },
            { "text": "❌ Abbrechen", "callback_data": "cancel" }
          ],
          [
            { "text": "📊 Status", "callback_data": "status" }
          ]
        ]
      }
    }

    Auf Button-Klicks reagieren

    // Node: Telegram Trigger
    // callback_query enthält Button-Daten
    
    if ($json.callback_query) {
      const action = $json.callback_query.data;
      const chatId = $json.callback_query.message.chat.id;
      const messageId = $json.callback_query.message.message_id;
    
      // Button-Klick bestätigen (entfernt Ladeanimation)
      await answerCallbackQuery($json.callback_query.id);
    
      // Original-Nachricht updaten
      await editMessage(chatId, messageId, "Aktion ausgeführt: " + action);
    }

    Schulung oder Implementierung?
    Ob Sie es selbst lernen oder von uns umsetzen lassen wollen — wir bieten beides. Individuelle Workshops ab 2h oder fertige Lösungen.
    Optionen ansehen →

    Praxisbeispiele

    1. E-Commerce Bestellbot

    Shopify (Neue Bestellung)
            ↓
        Telegram an Kunden:
        "Danke für Ihre Bestellung #1234!
    
         📦 Produkte:
         - Produkt A (2x)
         - Produkt B (1x)
    
         💰 Gesamt: 149,00€
    
         Wir informieren Sie über den Versand."

    2. Team-Standup Bot

    Schedule (Mo-Fr 9:00)
            ↓
        Telegram an Team-Gruppe:
        "☀️ Guten Morgen! Zeit für den Daily Standup.
    
         Bitte antwortet mit:
         1. Was habe ich gestern gemacht?
         2. Was mache ich heute?
         3. Gibt es Blocker?"
            ↓
        Antworten sammeln (30 Min)
            ↓
        Zusammenfassung in Notion speichern

    3. Lead-Notification Bot

    Website Formular (neuer Lead)
            ↓
        Telegram an Sales-Team:
        "🔔 Neuer Lead!
    
         👤 Max Mustermann
         📧 max@example.com
         🏢 Firma GmbH
         💬 'Interesse an Enterprise Plan'
    
         [Zum CRM] [Anrufen]"

    4. Monitoring & Alerts

    Verschiedene Quellen:
    - Server Down → ⚠️ Alert
    - Hohe CPU → 🔥 Warning
    - Backup fertig → ✅ Info
    - Fehler in Logs → 🐛 Bug Report
            ↓
        Telegram mit Severity-Emoji

    Make.com: Telegram Bot Szenario

    Module

  • Telegram Bot - Watch Updates (Trigger)
  • Router (nach Message-Typ)
  • Text Parser (Befehle extrahieren)
  • HTTP (Ihre API aufrufen)
  • Telegram Bot - Send Message
  • Beispiel-Szenario: FAQ Bot

    Telegram Watch Updates
            ↓
        Router:
        ├─ /faq → FAQ-Menü senden (Inline Keyboard)
        ├─ callback "faq_*" → FAQ-Antwort senden
        └─ Freitext → KI-Suche in FAQ-Datenbank

    Fortgeschritten: KI-Chatbot

    Mit OpenAI/Claude verbinden

    // Node: OpenAI
    // Konversation mit Kontext
    
    const systemPrompt = `
    Du bist ein freundlicher Support-Bot für Firma XYZ.
    Du beantwortest Fragen zu unseren Produkten und Services.
    Bei komplexen Anfragen verweise auf den menschlichen Support.
    `;
    
    const messages = [
      { role: 'system', content: systemPrompt },
      { role: 'user', content: $json.message.text }
    ];
    
    // Konversationshistorie einbeziehen
    const history = await getConversationHistory($json.message.chat.id);
    messages.splice(1, 0, ...history);

    Konversation speichern

    // Node: Redis/Database
    // Kontext für 24h speichern
    
    await saveMessage({
      chatId: $json.message.chat.id,
      role: 'user',
      content: $json.message.text,
      timestamp: Date.now()
    });
    
    await saveMessage({
      chatId: $json.message.chat.id,
      role: 'assistant',
      content: aiResponse,
      timestamp: Date.now()
    });

    Best Practices

    1. Rate Limits beachten

    AktionLimit
    Nachrichten an User30/Sekunde
    Nachrichten in Gruppe20/Minute
    Bulk-Nachrichten30 User/Sekunde

    // Delay einbauen bei Bulk
    for (const user of users) {
      await sendMessage(user.chatId, message);
      await sleep(100); // 100ms Pause
    }

    2. Fehlerbehandlung

    // Telegram API Fehler abfangen
    try {
      await sendMessage(chatId, text);
    } catch (error) {
      if (error.code === 403) {
        // User hat Bot blockiert
        await removeSubscriber(chatId);
      } else if (error.code === 429) {
        // Rate Limit - warten und retry
        await sleep(error.parameters.retry_after * 1000);
        await sendMessage(chatId, text);
      }
    }

    3. Nachrichten formatieren

    // Markdown V2 Syntax
    const text = `
    *Fett*
    _Kursiv_
    ~Durchgestrichen~
    \`Code\`
    \`\`\`
    Code Block
    \`\`\`
    [Link](https://example.com)
    `;
    
    // Sonderzeichen escapen
    const escaped = text.replace(/[_*[\]()~`>#+=|{}.!-]/g, '\\$&');

    4. Medien senden

    // Bild senden
    {
      "method": "sendPhoto",
      "chatId": "123456",
      "photo": "https://example.com/image.jpg",
      "caption": "Beschreibung"
    }
    
    // Dokument senden
    {
      "method": "sendDocument",
      "chatId": "123456",
      "document": "{{ $binary.data }}",
      "filename": "report.pdf"
    }

    Sicherheit

    Token schützen

    • Nie im Code committen
    • Umgebungsvariablen nutzen
    • Bei Leak: Token bei BotFather revoken

    Zugriff beschränken

    // Nur bestimmte User erlauben
    const allowedUsers = [123456, 789012];
    
    if (!allowedUsers.includes($json.message.from.id)) {
      await sendMessage(chatId, "Zugriff verweigert.");
      return;
    }

    Webhook absichern

    Mehr zum Thema Webhooks finden Sie in unserem Guide Webhook erstellen: Schritt-für-Schritt-Anleitung.

    // Secret Token prüfen
    const secretToken = $headers['x-telegram-bot-api-secret-token'];
    if (secretToken !== process.env.TELEGRAM_SECRET) {
      return { status: 403 };
    }

    Kosten

    KomponenteKosten
    Telegram Bot APIKostenlos
    n8n CloudAb 20€/Monat
    Make.comAb 9€/Monat
    Server (Self-Hosted)Ab 5€/Monat

    Stand: August 2026. Anbieterpreise ändern sich — prüfen Sie die aktuellen Konditionen beim Anbieter.

    Gesamtkosten: 5-30€/Monat für einen voll funktionsfähigen Bot

    Fazit

    Telegram Bots sind eine kostengünstige und effektive Lösung für Business-Automatisierung:

    • Kostenlose API
    • Hohe Zustellraten
    • Interaktive Features
    • Einfache Integration mit n8n/Make.com

    Weiterführende Artikel

    Nächste Schritte

  • Bot erstellen bei BotFather
  • Ersten Workflow aufsetzen (z.B. einfacher Alert)
  • Interaktivität hinzufügen (Buttons, Befehle)
  • Skalieren (KI-Integration, mehr Use Cases)
  • Wir unterstützen Sie bei der Telegram-Automatisierung – von der Einrichtung bis zum produktiven Einsatz. Jetzt Kontakt aufnehmen.