window.homieBot, das nach dem Event homiebot:api-ready verfügbar ist. Methoden, die Nachrichten senden oder lesen (sendMessage, getHistory, sendCustomPdpQuestion), benötigen ein bereites Iframe — sie warten intern, aber du kannst die Bereitschaft mit isReady() prüfen oder auf homiebot:assistant-ready hören.
Sichere dich immer dagegen ab, dass
window.homieBot beim Seitenaufruf noch undefined ist. Siehe die
Beispiele für ein Wait-for-Ready-Muster.open()
Öffnet das Chat-Widget, falls es aktuell geschlossen ist. Gibtvoid zurück.
close()
Schließt das Chat-Widget, falls es aktuell offen ist. Gibtvoid zurück.
toggle()
Wechselt das Widget zwischen offen und geschlossen. Gibtvoid zurück.
isOpen()
Gibtboolean zurück — ob das Widget aktuell offen ist. Verändert die UI nicht.
isReady()
Gibtboolean zurück — ob das Chat-Iframe vollständig geladen und bereit für sendMessage und getHistory ist. Nutze dies, bevor du aus spät gebundenem Code Nachrichten sendest.
sendMessage(input, options?)
Fügt eine Nachricht direkt in den Chat ein — ideal für Produktdetailseiten (PDPs) oder kontextgetriebene Prompts. Öffnet den Chat zuerst, falls er geschlossen ist. Gibt einPromise zurück.
input (erforderlich: text)
options
Die oben dokumentierte Signatur ist der unterstützte öffentliche Vertrag. Die aktuelle Embed-Quelle stellt eine
vereinfachte Form
sendMessage(input) bereit, bei der input die Felder text, questionSetId, questionId,
type ('DEFAULT' | 'PDP_QUESTION') und newChat akzeptiert und kein options-Argument hat. Wenn du das neueste
Embed nutzt, bevorzuge die Felder text / newChat, die in beiden Varianten stabil sind.getHistory()
Gibt einPromise zurück, das mit dem aktuellen Chat-Verlauf-Payload aus dem Iframe aufgelöst wird. Nützlich für eigenes Tracking. Die Anfrage läuft nach einigen Sekunden ab, falls das Iframe nicht antwortet.
updateMessageMetadata(metadata)
Hängt Metadaten als Schlüssel-Wert-Paare an die nächste Nutzernachricht an. Gibtvoid zurück. Ist das Iframe noch nicht bereit, werden die Metadaten zwischengespeichert und automatisch gesendet, sobald das Iframe initialisiert. Mehrere Aufrufe werden zusammengeführt.
Zusammenführen und Entfernen von Schlüsseln
- Bestehende Schlüssel können mit neuen Werten überschrieben werden.
- Schlüssel werden entfernt, indem
nullals Wert übergeben wird. - Mehrere Aufrufe werden zusammengeführt — neue Schlüssel werden hinzugefügt, bestehende aktualisiert.
sendCustomPdpQuestion(questionSetId)
Öffnet den Chat und löst den eigenen Produktfragen-Flow für ein bestimmtes Fragenset aus. Gibt einPromise zurück. Diese Methode steht hinter dem „Frag etwas anderes”-Button des Produktfragen-Widgets.
trackPdpQuestionsView(element, questionSetId)
Meldet einen qualifizierten View (Impression) für selbst gerenderte Produktfragen. Gibtvoid zurück. Nutze diese Methode, wenn dein Shop die Produktfragen über die REST API lädt und mit eigenem Markup rendert — sie wendet dieselben Sichtbarkeitsregeln an wie das eingebaute Rendering, damit deine Views und Click-Through-Rates in den Analytics der Plattform vergleichbar bleiben:
- zählt nur, wenn das Element mindestens 1 Sekunde lang zu mindestens 50 % im Viewport sichtbar war
- zählt höchstens einmal pro Seitenbesuch (pro Produkt-URL)
- kann bei Framework-Re-Renders gefahrlos erneut aufgerufen werden — eine laufende Messung wird auf dem neuen Element neu gestartet, ein bereits gezählter Besuch feuert nie doppelt
Views sind der Nenner der Click-Through-Rate. Wenn du Fragen selbst renderst und diese Methode nie aufrufst, zeigen
deine Produktseiten in den Analytics Klicks, aber keine Views.