Zum Hauptinhalt springen
Tutorials

Telegram Bot erstellen ohne Code: Automatisierung mit n8n und Make.com

Schritt-für-Schritt Anleitung zum Erstellen eines Telegram Bots mit n8n.

15 min Lesezeit
Aktualisiert: 24. März 2026

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": "⚠️ <em>Server Alert</em>\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 =

    📊 <em>System Status</em>

    🌐 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 =

    <em>Fett</em>

    _Kursiv_

    ~Durchgestrichen~

    \Code\

    \\\

    Code Block

    \\\

    Link

    ;

    // 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
    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.

    5 Minuten · ehrliche Bestandsaufnahme

    Lohnt sich Automation in Ihrem konkreten Fall?

    Statt Newsletter und allgemeinen Tipps: machen Sie den 5-Minuten-Check zu einem konkreten Prozess bei Ihnen. Sie bekommen Score, Reifegrad und eine ehrliche Einschätzung — direkt in Ihr Postfach.

    5-Min-Analyse starten

    Kostenlos · keine Verpflichtung · DSGVO-konform