Übersicht
Öffentliche und eingebettete Chats auf deiner Website.
Ein Chat-Widget ist TaskMonkey als Baustein auf einer fremden Website — typisch als Support-Chat unten rechts, als Lead-Generator auf einer Landingpage, oder als Vollbild-Assistent in einem Portal.
Das Widget spricht mit derselben Chat-API wie die eingeloggte Oberfläche, aber in einem speziellen Modus: öffentlicher Chat mit streng kontrollierter Tool-Allowlist und ohne Benutzerauthentifizierung.
Varianten
TaskMonkey liefert zwei Widget-Varianten aus:
| Variante | Skript | Anwendungsfall |
|---|---|---|
| Inline | chat.js |
Chat wird direkt als Block auf der Seite gerendert (in einem Container, Vollbild, Sidebar) |
| Bubble | chat-icon.js |
Kleiner Chat-Button unten rechts; klickt man ihn, öffnet sich das Chat-Fenster |
Beide teilen dieselbe Chat-Engine, nur das Shell unterscheidet sich.
Die drei Kernkonzepte
1. Öffentlicher Chat (public.php)
Definiert, was das Widget kann: Tool-Allowlist, System-Prompt, erste Nachricht, Vorschläge. Ohne diesen Eintrag in deinem Workspace gibt es kein Widget.
Siehe Öffentliche Chats.
2. Widget-Styling (widget.php)
CSS (und optional HTML) für das visuelle Erscheinungsbild. Mit Shadow-DOM-Isolation — dein Widget-Stil beeinflusst nicht die Host-Website.
Siehe Widget customizen.
3. Einbettung (Script-Tag)
Ein einziger Script-Tag auf der Kundenseite:
<script src="https://taskmonkey.example.com/chat.js"
data-tenant="dein-workspace"></script>
Siehe Einbettung.
Minimal-Setup
Drei Dateien in deinem Workspace, und es läuft.
public.php
<?php
return [
'public.tools' => ['searchFaq', 'setSuggestions'],
'public.prompt' => 'Du bist der Assistent unserer Website. Antworte kurz und freundlich.',
'public.greeting' => 'Hi! Wie kann ich helfen?',
];
Top-Level dot-paths — der Loader merged sie zum public-Array.
widget.php (optional — nur wenn du das Aussehen ändern willst; sonst Default-Look)
<?php
return [
'widget.css' => <<<'CSS'
#chat-box { background: #fff; border-radius: 12px; }
CSS,
];
Kunden-Website:
<script src="https://taskmonkey.example.com/chat.js"
data-tenant="dein-workspace"></script>
Öffentlich vs. eingeloggt — was ist anders?
| Aspekt | Öffentlicher Chat | Eingeloggter Chat |
|---|---|---|
| Auth | keine | Session / JWT |
| Tools | nur public.tools |
alle des aktiven Assistants |
| OAuth-Verbindungen | nicht nutzbar | ja, wenn der User verbunden ist |
| Chat-ID | public_<zufall> oder vom Betreiber vergeben |
unified_<user> / task_<slug>_<user> |
| File-Upload | möglich (Bilder, PDFs) | möglich |
| Persistenz | pro Browser (localStorage) | pro Benutzer in der DB |
Die strikte Tool-Allowlist im öffentlichen Chat ist die Sicherheitsgrenze: egal was ein Besucher schreibt, er kommt nicht an Tools, die nicht in public.tools stehen.
Wann welche Variante?
Inline (chat.js) — wenn der Chat sichtbares Element der Seite sein soll:
- Vollbild-Assistent auf einer Produktseite
- Sidebar-Chat neben Produktliste
- Embedded auf einer Support-Seite statt Kontaktformular
Bubble (chat-icon.js) — für dezenten, immer verfügbaren Chat:
- „Fragen? Chat unten rechts" auf allen Seiten
- Klassischer Support-Chat
- Lead-Erfassung ohne Prominenz