Chatwoot self-hosted: Kundenservice-Plattform mit KI
Was dieser Artikel behandelt
- Was Chatwoot ist: Open-Source-Kundenservice mit Omnichannel.
- Docker-Setup und Kanal-Einrichtung (Website, E-Mail, WhatsApp).
- KI-Integration: Ollama beantwortet Tickets automatisch oder entwirft Antworten.
- Agenten-Workflows, Automatisierungen, Labels und Routing.
- Vergleich zu Rocket.Chat-Omnichannel und Intercom.
Einleitung
Chatwoot ist die Open-Source-Alternative zu Intercom/Zendesk: eine Kundenservice-Plattform, die alle Kommunikationskanäle in einer Inbox vereint: Website-Chat-Widget, E-Mail, WhatsApp Business, Telegram, Facebook, sogar Telefon-Integrationen. Agenten bearbeiten alles in einer Oberfläche.
Für KI-Self-Hoster ist Chatwoot die ideale Front für KI-gestützten Support: Nachrichten kommen an → Ollama entwirft Antwort → Agent prüft und sendet (oder KI antwortet automatisch bei einfachen Fällen). Human-in-the-loop by design.
Typische Anwendungsszenarien
- KI-First-Level-Support: KI beantwortet Standardfragen, Menschen übernehmen komplexe Fälle.
- Omnichannel-Inbox: Website, WhatsApp, E-Mail, alles landet in einer Queue.
- Antwort-Entwürfe: Agenten bekommen KI-generierte Entwürfe zur Prüfung (Copilot-Modus).
- Auto-Kategorisierung: KI labelt Tickets (Bug, Billing, Frage) und routet sie.
- Übergabe von Bots: Typebot oder eigener Bot eskaliert an Chatwoot.
Installation: Docker
Chatwoot ist eine Rails-App mit Postgres + Redis:
services:
chatwoot:
image: chatwoot/chatwoot:latest
ports: ["127.0.0.1:3000:3000"]
environment:
- SECRET_KEY_BASE=langer-zufaelliger-key
- FRONTEND_URL=https://support.deine-domain.de
- POSTGRES_HOST=postgres
- POSTGRES_USERNAME=chatwoot
- POSTGRES_PASSWORD=geheim
- POSTGRES_DATABASE=chatwoot
- REDIS_URL=redis://redis:6379
- MAILER_SENDER_EMAIL=support@deine-domain.de
- SMTP_ADDRESS=smtp.dein-server.de
- SMTP_PORT=587
- SMTP_USERNAME=...
- SMTP_PASSWORD=...
volumes: [chatwoot_data:/app/storage]
depends_on: [postgres, redis]
restart: always
chatwoot-worker:
image: chatwoot/chatwoot:latest
command: bundle exec sidekiq -C config/sidekiq.yml
environment: *same-env-vars*
volumes: [chatwoot_data:/app/storage]
depends_on: [postgres, redis]
restart: always
postgres:
image: postgres:16
environment:
POSTGRES_USER: chatwoot
POSTGRES_PASSWORD: geheim
POSTGRES_DB: chatwoot
volumes: [pg_data:/var/lib/postgresql/data]
restart: always
redis:
image: redis:7
volumes: [redis_data:/data]
restart: always
volumes:
chatwoot_data:
pg_data:
redis_data:
Nach dem Start: docker exec chatwoot bundle exec rails db:prepare für DB-Setup, dann Setup-Wizard.
Kanäle einrichten
- Website-Livechat: Inbox → Website → Widget-Snippet auf Deine Seite (wie Rocket.Chat Livechat, aber als dedizierte Support-Plattform).
- E-Mail: Eingehende Mails an support@ werden zu Tickets.
- WhatsApp Business: Über Twilio/360dialog oder direkt über WhatsApp Cloud API.
- Telegram: Bot-Token eintragen: Telegram-Nachrichten werden zu Tickets.
- API-Kanal: Eigene Integrationen per Chatwoot-API.
KI-Integration: Ollama als Support-Agent
Chatwoot hat Webhooks (bei jeder neuen Nachricht) + REST-API (Antworten posten). Der KI-Agent dazwischen:
from flask import Flask, request
import requests
import ollama
app = Flask(__name__)
CW = "https://support.deine-domain.de"
CW_TOKEN = "dein-api-access-token"
client = ollama.Client(host="http://ollama:11434")
@app.route("/webhook", methods=["POST"])
def webhook():
data = request.json
if data.get("event") != "message_created":
return {"ok": True}
if data.get("message_type") != "incoming": # nur Kunden-Nachrichten
return {"ok": True}
convo_id = data["conversation"]["id"]
text = data.get("content", "")
# Konversations-Kontext aus Chatwoot laden
msgs = requests.get(
f"{CW}/api/v1/accounts/1/conversations/{convo_id}/messages",
headers={"api_access_token": CW_TOKEN}).json()
history = [{"role": "user" if m["message_type"] == 0 else "assistant",
"content": m["content"]} for m in msgs["payload"][-10:]]
resp = client.chat(model="llama3.1:8b", messages=[
{"role": "system", "content":
"Du bist Support-Agent. Antworte kurz, hilfreich. "
"Wenn Du unsicher bist, sag 'Ich leite an einen Kollegen weiter'."}
] + history)
answer = resp["message"]["content"]
# Antwort als Agent posten
requests.post(
f"{CW}/api/v1/accounts/1/conversations/{convo_id}/messages",
headers={"api_access_token": CW_TOKEN},
json={"content": answer})
return {"ok": True}
Copilot- statt Auto-Antwort
Sicherer für Business: KI postet Entwurf als private Note (nicht an den Kunden), Agent prüft und sendet:
# private_note: True → nur intern sichtbar
requests.post(url, json={"content": f"[KI-Entwurf]\n{answer}",
"private": True})
Automatisierung in Chatwoot selbst
Eingebaute Automation-Rules (ohne Code):
- Label-Zuordnung nach Keywords
- Auto-Assignment an Agenten-Teams
- SLA-Tracking und Eskalation
- Canned Responses (vorgefertigte Antworten)
Mit KI-Webhooks erweiterbar: KI labelt → Automation routet.
Sicherheit und Datenschutz
- DSGVO: On-premise → Kundendaten bleiben bei Dir, der Hauptgrund vs. Intercom/Zendesk.
- Kundendaten: Support-Chat enthält personenbezogene Daten: HTTPS, Zugriff nur für Agenten.
- API-Token: Pro Integration eigenen Token.
- KI-Transparenz: Kunden sollten wissen, ob sie mit KI oder Mensch sprechen (im Bot-Namen/Intro kenntlich machen).
Chatwoot vs. Alternativen
| Tool | Stärke | Schwäche |
|---|---|---|
| Chatwoot | Omnichannel, Agenten-Inbox, KI-fähig | Rails-App, etwas schwerer |
| Rocket.Chat | Team-Chat + Omnichannel | Support-Features schwächer |
| Intercom | Ausgereifteste KI-Features | Cloud, sehr teuer |
| Typebot | No-Code-Flows | Keine Agenten-Inbox |
Weiterführende Links
- IRC-Coding.de: Programmier-Tutorials: Webhooks, API-Integration.
- Typebot: Bot-Eskalation an Chatwoot.
- Rocket.Chat: Alternative mit Omnichannel.
- WhatsApp-Bots: WhatsApp-Kanal im Detail.
- n8n: Workflow-Automatisierung.
Key Takeaways:
- Chatwoot = Open-Source-Intercom: Omnichannel-Support (Website, Mail, WhatsApp) in einer Inbox.
- Webhooks + API → Ollama beantwortet Tickets oder entwirft Antworten für Agenten.
- Human-in-the-loop: Copilot-Modus (KI-Entwurf → Mensch prüft) ist der sichere Weg.
- Self-hosted → Kundendaten bleiben bei Dir (DSGVO).
- Die beste Open-Source-Wahl für echten Kundenservice mit KI.
FAQ
Kann die KI komplett automatisch antworten?
Welche Kanäle?
Chatwoot oder Rocket.Chat für Support?
Ressourcen?
Kostenlos?
WhatsApp-Anbindung?
Quellen und weiterführende Literatur
- Chatwoot: GitHub.
- Chatwoot Docs: Dokumentation.
- IRC-Coding.de: Programmier-Tutorials.


