Slack ist das Kommunikations-Zentrum vieler Unternehmen. Mit eigenen Bots können Sie Benachrichtigungen senden, Daten abfragen und Workflows direkt aus Slack starten -- etwa Deal- und Lead-Meldungen aus dem CRM, wie sie die Referenz HubSpot → Slack durchspielt. Das Beste: Sie brauchen keine Programmierkenntnisse. In diesem Guide zeigen wir, wie Sie in 30 Minuten einen funktionierenden Slack Bot erstellen. Alternativ können Sie auch einen Telegram Bot erstellen oder einen Microsoft Teams Bot bauen.

Warum einen Slack Bot?

Typische Use Cases:

Use CaseBeschreibung
AlertsServer-Monitoring, Sales-Notifications
Status-Abfragen"/status" zeigt System-Status
GenehmigungenUrlaubsanträge, Ausgaben freigeben
Daily StandupsAutomatische Erinnerungen + Sammlung
OnboardingNeue Mitarbeiter begrüßen

Vorteile:

  • Direkt im Arbeitskontext
  • Interaktive Buttons und Dialoge
  • Keine App-Wechsel nötig

Slack Bot erstellen: Schritt für Schritt

Schritt 1: Slack App erstellen

  1. Gehen Sie zu api.slack.com/apps
  2. "Create New App" → "From scratch"
  3. App Name: z.B. "Automation Bot"
  4. Workspace auswählen

Schritt 2: Bot User hinzufügen

  1. "OAuth & Permissions" im Seitenmenü
  2. Unter "Scopes" → "Bot Token Scopes":
    • chat:write (Nachrichten senden)
    • commands (Slash Commands)
    • users:read (User-Infos lesen)

Schritt 3: App installieren

  1. "Install to Workspace" klicken
  2. Berechtigungen bestätigen
  3. Bot User OAuth Token kopieren: xoxb-...

Schritt 4: Bot in Channel einladen

/invite @automation-bot

Methode 1: Incoming Webhooks (Einfachste)

Nur für Nachrichten senden – keine Interaktion.

Webhook einrichten

  1. App-Einstellungen → "Incoming Webhooks"
  2. "Activate Incoming Webhooks" → On
  3. "Add New Webhook to Workspace"
  4. Channel auswählen
  5. Webhook URL kopieren

Nachricht senden (n8n)

// Node: HTTP Request
{
  "method": "POST",
  "url": "https://hooks.slack.com/services/T00/B00/xxxx",
  "headers": { "Content-Type": "application/json" },
  "body": {
    "text": "Hallo aus n8n! 👋"
  }
}

Formatierte Nachrichten

{
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "🎉 Neue Bestellung!"
      }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*Kunde:*\nMax Mustermann" },
        { "type": "mrkdwn", "text": "*Betrag:*\n149,00 €" }
      ]
    },
    {
      "type": "actions",
      "elements": [
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "Im Shop ansehen" },
          "url": "https://shop.example.com/orders/123"
        }
      ]
    }
  ]
}

Methode 2: Slack API (Vollwertig)

Für alle Funktionen: Senden, Empfangen, Interaktionen.

n8n Slack Node

  1. Credentials → Slack API
  2. Access Token: xoxb-... eintragen

Nachricht senden:

// Node: Slack
{
  "operation": "send",
  "channel": "#alerts",
  "text": "Wichtige Benachrichtigung!",
  "attachments": [
    {
      "color": "#36a64f",
      "title": "Server Status",
      "text": "Alle Systeme laufen normal"
    }
  ]
}

Methode 3: Slash Commands

User tippt /befehl und Ihr Bot antwortet.

Slash Command einrichten

  1. App-Einstellungen → "Slash Commands"
  2. "Create New Command"
  3. Command: /status
  4. Request URL: https://n8n.ihre-domain.de/webhook/slack-status
  5. Description: "Zeigt System-Status an"

n8n Workflow

Webhook (POST /slack-status)
        ↓
    System-Status abrufen
        ↓
    Formatierte Antwort zurück

Node: Webhook

// Slack sendet:
{
  "command": "/status",
  "text": "",  // Parameter nach dem Command
  "user_id": "U12345",
  "user_name": "max.mustermann",
  "channel_id": "C12345"
}

Node: Respond

// Antwort an Slack
{
  "response_type": "in_channel",  // Für alle sichtbar
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*System Status*\n✅ API: Online\n✅ Database: Online\n✅ Queue: 5 Jobs"
      }
    }
  ]
}

Methode 4: Interaktive Buttons

User klickt Button und Ihr Bot reagiert.

Interactivity aktivieren

  1. App-Einstellungen → "Interactivity & Shortcuts"
  2. "Interactivity" → On
  3. Request URL: https://n8n.ihre-domain.de/webhook/slack-interactive (mehr dazu in unserem Webhook-Anleitung)

Nachricht mit Buttons

{
  "channel": "#approvals",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "🏖️ *Urlaubsantrag*\n\nMax Mustermann möchte vom 15.-20.01. Urlaub nehmen."
      }
    },
    {
      "type": "actions",
      "block_id": "approval_buttons",
      "elements": [
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "✅ Genehmigen" },
          "style": "primary",
          "action_id": "approve",
          "value": "request_123"
        },
        {
          "type": "button",
          "text": { "type": "plain_text", "text": "❌ Ablehnen" },
          "style": "danger",
          "action_id": "reject",
          "value": "request_123"
        }
      ]
    }
  ]
}

Button-Klick verarbeiten

// Node: Webhook - Slack sendet bei Klick:
{
  "type": "block_actions",
  "user": { "id": "U12345", "name": "chef" },
  "actions": [
    {
      "action_id": "approve",
      "value": "request_123"
    }
  ],
  "response_url": "https://hooks.slack.com/actions/..."
}

// Antwort: Original-Nachricht aktualisieren
{
  "method": "POST",
  "url": "{{ $json.response_url }}",
  "body": {
    "replace_original": true,
    "text": "✅ Urlaubsantrag genehmigt von @chef"
  }
}

Praxisbeispiele

1. Server-Monitoring Bot

Uptime Robot (Server Down)
        ↓
    Slack #ops-alerts:
    "🔴 Server XYZ ist offline!"
    [Dashboard öffnen] [Acknowledge]

2. Daily Standup Bot

Schedule (Mo-Fr 9:00)
        ↓
    Slack #team:
    "☀️ Zeit für den Daily Standup!
     Was hast du gestern gemacht?
     Was machst du heute?
     Gibt es Blocker?"
        ↓
    Replies sammeln (1h)
        ↓
    Zusammenfassung in Notion

3. Lead-Notification Bot

Website Formular (neuer Lead)
        ↓
    Slack #sales:
    "🔔 Neuer Lead!
     👤 Max Mustermann
     🏢 Firma GmbH
     📧 max@firma.de
     [Im CRM öffnen] [Anrufen]"

4. Expense Approval Bot

Mitarbeiter reicht Ausgabe ein
        ↓
    Slack DM an Manager:
    "💰 Ausgabe zur Genehmigung
     Betrag: 250€
     Kategorie: Software
     Beschreibung: Figma Jahresabo
     [Genehmigen] [Ablehnen] [Nachfragen]"

Make.com: Slack Module

Verfügbare Module

ModulFunktion
Watch EventsTrigger bei Nachrichten
Send MessageNachricht senden
Update MessageNachricht bearbeiten
Create ChannelKanal erstellen
Invite UserUser einladen
Upload FileDatei hochladen

Beispiel-Szenario

Slack (Watch Events)
        ↓
    Filter: Enthält "hilfe"
        ↓
    OpenAI: Antwort generieren
        ↓
    Slack: Reply senden

Advanced: Event Subscriptions

Für Echtzeit-Events (nicht nur Commands).

Events aktivieren

  1. App-Einstellungen → "Event Subscriptions"
  2. "Enable Events" → On
  3. Request URL: https://n8n.ihre-domain.de/webhook/slack-events
  4. Events abonnieren:
    • message.channels (Nachrichten in Channels)
    • app_mention (Bot wurde erwähnt)
    • member_joined_channel (User tritt bei)

URL-Verifizierung

Slack sendet einen Challenge-Request:

// Node: Code - Challenge beantworten
if ($json.type === 'url_verification') {
  return {
    json: { challenge: $json.challenge }
  };
}

// Normale Events verarbeiten
return $json;

Auf @Mention reagieren

// Event: app_mention
{
  "type": "event_callback",
  "event": {
    "type": "app_mention",
    "user": "U12345",
    "text": "<@BOTID> Wie ist der Serverstatus?",
    "channel": "C12345"
  }
}

Block Kit Builder

Slack bietet einen visuellen Editor für Nachrichten:

app.slack.com/block-kit-builder

Komponenten

Block-TypVerwendung
HeaderÜberschriften
SectionText + Felder
DividerTrennlinie
ImageBilder
ActionsButtons, Selects
ContextKleine Zusatzinfos
InputFormulareingaben

Best Practices

1. Nicht spammen

// Nachrichten batchen
const events = collectEvents(5 * 60 * 1000); // 5 Min

if (events.length > 5) {
  // Zusammenfassung statt einzelne Nachrichten
  sendDigest(events);
} else {
  events.forEach(e => sendMessage(e));
}

2. Threads nutzen

{
  "channel": "#alerts",
  "text": "🔴 Incident: Server Down",
  "thread_ts": "{{ $json.original_message_ts }}"  // Antwort im Thread
}

3. Ephemeral Messages

Nur für einen User sichtbar:

{
  "channel": "C12345",
  "user": "U12345",
  "text": "Nur du siehst diese Nachricht"
}
// Mit: chat.postEphemeral

4. Fehlerbehandlung

try {
  await slack.chat.postMessage({ channel, text });
} catch (error) {
  if (error.data?.error === 'channel_not_found') {
    // Bot nicht im Channel
    await slack.chat.postMessage({
      channel: '#fallback',
      text: `Konnte nicht in ${channel} posten`
    });
  }
}

Kosten

KomponenteKosten
Slack BotKostenlos
n8n CloudAb $20/Monat
Make.comAb $9/Monat

Fazit

Slack Bots sind mächtige Werkzeuge für Team-Automatisierung:

  • Benachrichtigungen direkt im Arbeitskontext
  • Interaktive Genehmigungen
  • Slash Commands für schnelle Aktionen
  • Event-basierte Automatisierung

Weiterführende Artikel

Nächste Schritte

  1. Slack App erstellen auf api.slack.com
  2. Webhook oder API einrichten
  3. Erste Benachrichtigung senden
  4. Interaktivität hinzufügen (Buttons, Commands)

Wir unterstützen Sie bei der Slack-Automatisierung – von der Einrichtung bis zum produktiven Bot. Jetzt Kontakt aufnehmen.