Slack Bot erstellen ohne Code: Automatisierung mit n8n und Make.com
Schritt-für-Schritt Anleitung zum Erstellen eines Slack Bots mit n8n und Make.
Slack ist das Kommunikations-Zentrum vieler Unternehmen. Mit eigenen Bots können Sie Benachrichtigungen senden, Daten abfragen und Workflows direkt aus Slack starten. 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 Case | Beschreibung |
|---|---|
| Alerts | Server-Monitoring, Sales-Notifications |
| Status-Abfragen | "/status" zeigt System-Status |
| Genehmigungen | Urlaubsanträge, Ausgaben freigeben |
| Daily Standups | Automatische Erinnerungen + Sammlung |
| Onboarding | Neue Mitarbeiter begrüßen |
- Direkt im Arbeitskontext
- Interaktive Buttons und Dialoge
- Keine App-Wechsel nötig
Slack Bot erstellen: Schritt für Schritt
Schritt 1: Slack App erstellen
Schritt 2: Bot User hinzufügen
- chat:write (Nachrichten senden)
- commands (Slash Commands)
- users:read (User-Infos lesen)
Schritt 3: App installieren
xoxb-...Schritt 4: Bot in Channel einladen
/invite @automation-bot
Methode 1: Incoming Webhooks (Einfachste)
Nur für Nachrichten senden – keine Interaktion.
Webhook einrichten
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": "<em>Kunde:</em>\nMax Mustermann" },
{ "type": "mrkdwn", "text": "<em>Betrag:</em>\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
xoxb-... eintragen// 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
/statushttps://n8n.ihre-domain.de/webhook/slack-statusn8n 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": "<em>System Status</em>\n✅ API: Online\n✅ Database: Online\n✅ Queue: 5 Jobs"
}
}
]
}
Methode 4: Interaktive Buttons
User klickt Button und Ihr Bot reagiert.
Interactivity aktivieren
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": "🏖️ <em>Urlaubsantrag</em>\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
| Modul | Funktion |
|---|---|
| Watch Events | Trigger bei Nachrichten |
| Send Message | Nachricht senden |
| Update Message | Nachricht bearbeiten |
| Create Channel | Kanal erstellen |
| Invite User | User einladen |
| Upload File | Datei 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
https://n8n.ihre-domain.de/webhook/slack-events - 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-builderKomponenten
| Block-Typ | Verwendung |
|---|---|
| Header | Überschriften |
| Section | Text + Felder |
| Divider | Trennlinie |
| Image | Bilder |
| Actions | Buttons, Selects |
| Context | Kleine Zusatzinfos |
| Input | Formulareingaben |
Best Practices
1. Nicht spammen
// Nachrichten batchen
const events = collectEvents(5 <em> 60 </em> 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
| Komponente | Kosten |
|---|---|
| Slack Bot | Kostenlos |
| n8n Cloud | Ab $20/Monat |
| Make.com | Ab $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
- Telegram Bot erstellen: Automatisierung ohne Code
- Microsoft Teams Bot erstellen: Die Alternative für Microsoft-Umgebungen
- n8n Tutorial für Anfänger: Erste Schritte mit Workflow-Automatisierung
Nächste Schritte
Wir unterstützen Sie bei der Slack-Automatisierung – von der Einrichtung bis zum produktiven Bot.