Docs
Mignuti Chatbot ist eine Web Component. Wenn deine Plattform einen <script>-Tag
erlaubt, kannst du Mignuti Chatbot einbetten. Unten: der 60-Sekunden-Quickstart und acht
plattform-spezifische Rezepte.
Nicht technisch? Für WordPress gibt es ein Plugin ganz ohne Code. Für alle anderen Plattformen genügt eine Zeile, die dein Team in zwei Minuten einfügt.
Quickstart (60 Sekunden)
- Registriere dich auf /signup (kostenlos, keine Kreditkarte).
- Der Onboarding-Wizard legt dein erstes Projekt an. Wähle ein Vertical-Template oder lade ein Dokument hoch (PDF, Text, Markdown) oder füge eine URL ein.
-
In Schritt 3 generieren wir deinen Embed-Code — eine Zeile HTML mit
data-project-Attribut. - Diese Zeile auf deine Seite einfügen. Reload. Der Chat-Launcher erscheint unten rechts.
Embed-Tag Anatomie
<script
src="https://widget.mignuti.com/v1.js"
data-project="prj_4f9c…" // public Widget-Key
data-secret="sec_9b21…" // bcrypt-bound Secret
data-consent="granted" // 'pending' | 'granted' | 'denied'
async></script> - data-project: öffentlicher Key, darf im HTML stehen.
- data-secret: server-seitig validiert; ohne ihn bootet das Widget nicht. Es steht — wie bei jedem Embed-Widget — im öffentlichen HTML. Die eigentliche Absicherung sind Domain-Binding, Rate-Limits und kurzlebige Session-JWTs; das Secret bindet das Embed nur eindeutig an dein Projekt.
- data-consent: Default
pending— das Widget wartet auf einen explizitenwindow.MignutiChatbot.setConsent('granted')-Call, bevor es Sessions startet oder localStorage schreibt. Verbinde das mit deinem Cookie-Banner (siehe Consent) — oder lass es weg: beipendingzeigt das Widget dem Besucher einen eigenen Einwilligungs-Button, bevor ein Chat startet. - async: nie blockierend. Das Widget wiegt rund 37 KB (gzip).
WordPress
Drei Optionen, sortiert nach Empfehlung:
1. Plugin „Mignuti Chatbot" (empfohlen)
Das dedizierte Plugin richtet sich per 1-Klick selbst ein — inklusive Seiten-Targeting, DSGVO-Consent-Bridge (Borlabs, Complianz, Cookiebot, Usercentrics, Real Cookie Banner) und „Verbindung testen". Seit dem 26. September 2026 im offiziellen Verzeichnis: wordpress.org/plugins/mignuti-chatbot. Alle Details →
Alternativ: ZIP herunterladen (18 KB)- WP-Admin → Plugins → Installieren → nach „Mignuti Chatbot" suchen → Jetzt installieren → aktivieren. (Oder das ZIP über Plugin hochladen einspielen — dieselbe Version.)
- Einstellungen → Mignuti Chatbot → „Connect with Mignuti" klicken, Projekt wählen — Key und Domain werden automatisch gesetzt.
Updates kommen über das Verzeichnis automatisch mit den übrigen Plugin-Updates. Wer keinen
Connect-Flow will, kann data-project + data-secret unter „Enter details manually"
auch von Hand eintragen.
2. Header-Footer-Injection-Plugin (Insert Headers and Footers, WPCode)
Embed-Snippet in den „Body"- oder „Footer"-Hook einfügen. Funktioniert auf jedem Theme.
3. Theme functions.php
add_action('wp_footer', function () {
echo '<script src="https://widget.mignuti.com/v1.js" data-project="prj_…" data-secret="sec_…" async></script>';
}); JTL-Shop
Für JTL-Shop 5 gibt es ein dediziertes Plugin — kein Template-Editieren:
JTL-Shop-Plugin herunterladen (ZIP)- Shop-Admin → Plugins → Plugin-Manager → Upload → ZIP wählen → installieren.
- Plugins → Mignuti Chatbot → Einstellungen:
data-project(Projekt-ID) und Secret aus dem Mignuti-Admin → Embed eintragen, Einwilligungsmodus + optional Akzentfarbe setzen. - Wichtig — Cache leeren: System → Cache → „Gesamten Objekt-Cache leeren" UND „Gesamten Template-Cache leeren". Erst danach erscheint der Chat in der Storefront.
Das Plugin fügt den Loader automatisch vor </body> ein — auf allen Storefront-Seiten,
mit optionaler Ausblendung für eingeloggte Kunden und im Bestellvorgang. Vergiss nicht, deine Shop-Domain
im Mignuti-Admin unter Embed → Erlaubte Domains freizugeben.
Shopware 6
Für Shopware 6 gibt es ein dediziertes Plugin — kein Theme-Editieren:
Shopware-Plugin herunterladen (ZIP)- Admin → Erweiterungen → Meine Erweiterungen → Erweiterung hochladen → ZIP wählen → installieren & aktivieren.
- Erweiterungen → Mignuti Chatbot → Konfiguration:
data-project(Projekt-ID) und Secret aus dem Mignuti-Admin → Embed eintragen, Einwilligungsmodus wählen. - Storefront-Cache leeren — der Chat erscheint auf allen Storefront-Seiten.
Optional im Warenkorb/Checkout und für eingeloggte Kunden ausblenden. Alle Details →
Shopify
- Online-Shop → Themes → Code bearbeiten am aktiven Theme.
layout/theme.liquidöffnen.- Embed-Snippet direkt vor
</body>einfügen. - Speichern. Das Widget erscheint auf Shop-, Produkt-, Warenkorb- und Kollektions-Seiten.
Auf Checkout-Seiten erlaubt Shopify Scripts nur über das App-SDK (Plus-Plan). Mignuti Chatbot lädt absichtlich nicht im Checkout — Chatbots lenken bei der Conversion ab. Falls du es brauchst, meld dich bei uns.
Webflow
- Project Settings → Custom Code → Footer Code.
- Embed-Snippet einfügen.
- Speichern → Publish.
Auf Staging (webflow.io-Domains) musst du die Staging-URL zu „Allowed Origins" in deinen mignuti-chatbot-Embed-Einstellungen hinzufügen. Das Widget bootet nicht auf nicht-allow-listed Origins — Anti-Key-Diebstahl-Schutz.
Plain HTML / statische Sites (Astro, Hugo, Eleventy, Jekyll)
Snippet ins Layout-Template einfügen, direkt vor </body>:
<!-- in deinem <body> -->
<script src="https://widget.mignuti.com/v1.js"
data-project="prj_…" data-secret="sec_…" async></script>
</body> React / Next.js
Sauberstes Pattern ist ein Layout-Effect, der das Script einmal injiziert:
// app/layout.tsx (Next.js 14 App Router)
import Script from 'next/script';
export default function RootLayout({ children }) {
return (
<html lang="de">
<body>
{children}
<Script
src="https://widget.mignuti.com/v1.js"
strategy="lazyOnload"
data-project="prj_…"
data-secret="sec_…"
/>
</body>
</html>
);
}
Warum lazyOnload: Das Widget ist nicht-kritische UI. Erst nach Window-Load laden hält
Largest Contentful Paint sauber.
Vue 3 / Nuxt 3
In nuxt.config.ts:
export default defineNuxtConfig({
app: {
head: {
script: [
{
src: 'https://widget.mignuti.com/v1.js',
'data-project': 'prj_…',
'data-secret': 'sec_…',
async: true,
},
],
},
},
}); Consent / Cookie-Banner
Mit data-consent="pending" (Default) startet Mignuti Chatbot keine Session, bis du
window.MignutiChatbot.setConsent('granted') aufrufst. Das verbindest du mit deinem Cookie-Banner-Akzeptieren-Button:
// nachdem der Besucher Marketing-/Funktional-Cookies akzeptiert:
window.MignutiChatbot?.setConsent('granted');
// nachdem der Besucher abgelehnt hat:
window.MignutiChatbot?.setConsent('denied'); // Widget blendet sich aus Mignuti Chatbot ist technisch ein „Funktional"-Cookie nach den meisten CMP-Kategorisierungen (speichert eine Session-ID in localStorage, damit das Gespräch über Page-Loads bestehen bleibt). DSGVO Art. 6 Abs. 1 lit. a (Einwilligung) ist die sauberste Rechtsgrundlage für B2C-Sites; B2B-Sites mit Berechtigtem-Interesse-Argument (Art. 6 Abs. 1 lit. f) funktionieren auch.
Leads ins CRM (Zapier, Make, n8n)
Mignuti Chatbot bewertet jedes Gespräch mit einem Lead-Score (0–100) und erfasst – wenn der Besucher sie nennt – dessen E-Mail. Heiße Leads (Score ≥ 70) übergibst du automatisch an dein CRM: per Webhook, ganz ohne Programmierung. Die Leads siehst du außerdem jederzeit im Admin unter Leads (inkl. CSV-Export).
-
In Zapier, Make oder n8n einen
Webhook / Catch Hook-Trigger anlegen und die URL kopieren. -
Im Admin unter Integrationen → Webhooks eine Subscription mit dieser URL anlegen und
das Event
hot_leadwählen. -
Im CRM-Schritt
data.lead_emailals Kontakt-E-Mail mappen;lead_scoreundintentsals Notiz. Fertig für HubSpot, Pipedrive, Salesforce, Google Sheets, Slack, Notion …
Beispiel-Payload (POST, JSON):
{
"id": "hot_lead:8f3c…",
"event": "hot_lead",
"occurred_at": "2026-08-27T10:15:00Z",
"data": {
"conversation_id": "8f3c…",
"project_id": "a91b…",
"lead_score": 82,
"lead_email": "kunde@example.com",
"intents": ["buying_intent", "price_question"],
"first_message": "Was kostet das Enterprise-Paket?"
}
} Jeder Request ist HMAC-SHA256-signiert. Verifiziere den Header und lehne Requests älter als 5 Minuten ab:
x-mignuti-chatbot-signature: t=<ts>,v1=<sig>
x-mignuti-chatbot-timestamp: <unix-seconds>
x-mignuti-chatbot-event: hot_lead
// sig = HMAC_SHA256(secret, ts + "." + rawBody) // hex
Das secret wird beim Anlegen der Subscription einmalig angezeigt. Kein CRM-Automations-Tool
im Einsatz? Der CSV-Export auf der Leads-Seite funktioniert mit jedem CRM.
Dropbox-Ordner verbinden
Statt Dateien hochzuladen, kannst du einen Dropbox-Ordner anbinden: Der Bot liest neue und geänderte Dateien selbst nach, gelöschte verschwinden wieder aus der Wissensbasis. Verfügbar ab dem Tarif Standard.
- Im Dashboard auf Wissen → Wissen hinzufügen → Dropbox-Ordner, dann Mit Dropbox verbinden.
-
Bei Dropbox den Zugriff bestätigen. Dabei entsteht in deiner Dropbox der Ordner
Apps/Mignuti Chatbot— nur diesen sehen wir. - Dateien in den Ordner legen und Jetzt abgleichen drücken (oder warten).
Optional lässt sich beim Verbinden ein Unterordner angeben, etwa /Handbuecher. Dann liest
der Bot nur diesen Teil.
Was gelesen wird
- Formate: PDF, TXT, Markdown — bis 25 MB je Datei. Alles andere bleibt liegen.
- Abgleich: täglich, wöchentlich, monatlich oder nur auf Knopfdruck. Die schnellste Kadenz hängt am Tarif, genau wie beim URL-Crawl.
- Nur lesend: Wir schreiben, verschieben oder löschen in deiner Dropbox nichts — auch dann nicht, wenn du ein Dokument bei uns löschst.
- Mengengrenze: Es gilt dieselbe Dokumentgrenze wie beim Upload. Ist sie erreicht, zeigt die Quelle „Grenze erreicht" und liest keine weiteren Dateien ein.
In welche Richtung Löschen wirkt
- Datei in Dropbox gelöscht → das Dokument verschwindet beim nächsten Abgleich aus der Wissensbasis.
- Dokument bei uns gelöscht → es kommt nicht zurück, die Datei in deiner Dropbox bleibt unberührt.
- Verbindung getrennt → alle daraus eingelesenen Dokumente werden entfernt, der Token wird bei Dropbox widerrufen.
Der Ordner bleibt leer / nichts wird eingelesen
-
Liegen die Dateien wirklich in
Apps/Mignuti Chatbot? Existiert unterAppsein zweiter, gleichnamiger Ordner, meldet Dropbox uns schlicht einen leeren Ordner — ohne Fehler. - Ist der Dropbox-Client mit dem Hochladen fertig (grüner Haken)? Halb synchronisierte Dateien sieht unsere Abfrage noch nicht.
- Passt das Format? Tabellen, Präsentationen und Bilder werden bewusst still übersprungen — die Quelle zeigt sie als „übersprungen".
Google Drive verbinden
Bei Drive wählst du einzelne Dateien statt eines Ordners — im vertrauten Google-Fenster. Wir sehen ausschließlich, was du dort anklickst. Verfügbar ab dem Tarif Standard.
- Wissen → Wissen hinzufügen → Google Drive, dann Mit Google Drive verbinden und bei Google bestätigen.
- Dateien auswählen öffnet das Google-Fenster. Mehrfachauswahl ist möglich; die Liste lässt sich jederzeit erweitern.
- Fertig — der erste Abgleich läuft sofort, danach zur eingestellten Kadenz.
Was gelesen wird
- Formate: PDF, TXT, Markdown und Google Docs — letztere holen wir als reinen Text, was für einen Chatbot besser funktioniert als ein PDF. Tabellen und Präsentationen bleiben liegen.
- Größe: bis 25 MB je Datei.
- Zugriff: nur die ausgewählten Dateien, ausschließlich lesend. Der Rest deines Drive bleibt für uns unsichtbar — das ist keine Zusage, sondern die Bauart der Freigabe, die du erteilst.
Wie du Dateien wieder loswirst
- Aus der Auswahl nehmen (Kreuz neben dem Dateinamen) → das Dokument verlässt die Wissensbasis, die Datei in deinem Drive bleibt.
- In Drive gelöscht oder in den Papierkorb gelegt → verschwindet beim nächsten Abgleich.
- Verbindung getrennt → alle daraus gelesenen Dokumente werden entfernt, die Freigabe bei Google widerrufen.
Das Google-Fenster öffnet sich nicht
-
Blockiert eine Browser-Erweiterung
apis.google.com? Der Dateiwähler wird von dort geladen. - Meldung „Der API-Entwicklerschlüssel ist ungültig": Dann stimmt die Google-Konfiguration der Instanz nicht — bei uns gehostet? Kurze Mail, wir prüfen es.
Fehlerbehebung
Meine Seite nutzt eine strikte Content-Security-Policy (CSP)
Das Widget braucht diese CSP-Freigaben — sonst lädt es zwar, aber Sessions/Antworten scheitern still:
script-src ... https://widget.mignuti.com;
connect-src ... https://widget.mignuti.com https://api.chatbot.mignuti.com;
font-src ... https://widget.mignuti.com; script-src: lädtv1.js.-
connect-src: Chat-Session, Antwort-Stream und UI-Übersetzungen (beide Hosts nötig). font-src: nur falls du in der Bot-Konfig eine eigene Schrift gewählt hast.
Der Launcher erscheint nicht
- DevTools → Network — wird
v1.jsmit Status 200 geladen? - Console — gibt es „origin_not_allowed"-Fehler? Host zu „Allowed Origins" hinzufügen.
- Sicherstellen, dass
data-secretgesetzt ist und mitsec_beginnt.
Bot antwortet, sagt aber oft „Das weiß ich nicht"
- Wissensbasis prüfen — ist der Dokument-Status „bereit" (nicht „wartend"/„fehlgeschlagen")?
- Similarity-Schwellwert in der Chatbot-Konfig prüfen (Standard 0,35) — bei knappem Inhalt leicht senken, bei irrelevanten Antworten leicht anheben.
- Q&A-Paare für die häufigsten unbeantworteten Fragen ergänzen (siehe „Offene Fragen"-Seite).
„Bot ist am Limit"-Nachricht
Du hast die Hard-Cap erreicht (3× Plan-Limit). Plan im Billing upgraden oder bis nächsten Monat warten. Die Hard-Cap existiert, damit ein außer Kontrolle geratenes Widget dir nie 10 000 € berechnet.
Widget bricht unser Site-CSS
Kann es nicht — das Widget läuft in einem closed Shadow Root mit :host { all: initial }. Falls du CSS-Bleed siehst, schreib uns an media@mignuti.com
mit deiner URL — das wäre ein Bug, den wir wissen wollen.
Etwas, das nicht in den Docs steht?
Antwort an Werktagen innerhalb eines Arbeitstages.
media@mignuti.com