Dein Feedback-Widget sollte keine Registrierung verlangen

Product

Das Feedback-Board von Kookee liegt im gehosteten Portal und verlangt ein Konto, bevor jemand etwas posten kann. Das ist gewollt. Ein Konto ist eine Stimme, jeder Beitrag hat einen Autor, dem du antworten kannst, und dein Team entscheidet, was öffentlich sichtbar bleibt.

Und jetzt überleg, wer die Bugs in der Praxis findet. Jemand ist mitten in einem Export, und im PDF fehlt das letzte Diagramm. Um dir das zu sagen, muss die Person die Seite verlassen, dein Portal finden, ein Konto anlegen, ihre E-Mail-Adresse bestätigen und einen Beitrag schreiben, den Fremde lesen. Ein paar tun das. Die meisten schließen den Tab oder erwähnen es eine Woche später beim Support, in zwei Worten.

Deshalb hat das Website-Widget jetzt einen Tab Feedback. Besucher schreiben, was passiert ist, auf der Seite, auf der es passiert ist, und schicken es ohne Konto ab. Die Nachricht geht an dein Team und an niemanden sonst. Im selben Release habe ich auch etwas erledigt, das ich eine Weile vor mir hergeschoben hatte: Der KI-Chat, KI fragen, ist jetzt optional.

Der Feedback-Tab des Widgets: Bug ausgewählt, eine Nachricht zu einem PDF-Export und die bereits ausgefüllte E-Mail-Adresse des Besuchers

Nach diesen Regeln habe ich ihn gebaut.

1. Nach der Nachricht fragen, nicht nach einem Konto

Das Formular fragt nach drei Dingen: worum es geht (eine Idee, eine Verbesserung, ein Bug oder etwas anderes), nach der Nachricht selbst und nach einer E-Mail-Adresse, falls die Person eine Antwort möchte. Wenn deine Website dem Widget schon mitteilt, wer angemeldet ist, ist die E-Mail-Adresse bereits ausgefüllt. Die Seite, auf der die Person war, wird mitgeschickt: „Der Export ist kaputt“ kommt zusammen mit der Adresse der Seite an, auf der er kaputtging.

Die naheliegende Abkürzung habe ich mir angesehen. Kookee kennt bereits Gastnutzer, also hätte jede Nachricht einen anlegen können. Ich habe mich dagegen entschieden. Ein Gastkonto pro Nachricht füllt deine Nutzerliste mit Leuten, die sich nie registriert haben, und verspricht etwas, das es nicht gibt: ein Konto, bei dem sich niemand anmelden kann, mit einem Beitrag, den niemand wiederfindet. Eine Widget-Nachricht wird als das gespeichert, was sie ist, als Nachricht, mit den Kontaktdaten, die der Besucher hinterlassen wollte.

2. Nichts wird öffentlich, bevor ein Mensch es gelesen hat

Ein offenes Formular im Internet sammelt drei Arten von Nachrichten: nützliche Hinweise, halbfertige Gedanken und Spam. Gingen sie direkt auf ein öffentliches Board, sähe dein Board aus wie dein Posteingang.

Deshalb warten Nachrichten. Die Seite Feedback in deinem Dashboard hat eine zweite Ansicht, Aus dem Widget: jede Nachricht mit ihrer Kategorie, dem Absender, falls er sich genannt hat, der Seite, von der sie kam, und dem Zeitpunkt, an dem sie eintraf.

Feedback → Aus dem Widget: vier Nachrichten zur Prüfung, jede mit Kategorie, Kontakt, Seite und Uhrzeit, dazu die Schaltfläche Auswahl verwerfen

Öffnest du eine, hast du drei Möglichkeiten. Zum Board hinzufügen macht daraus einen Beitrag in deiner ersten offenen Spalte, unter einem Titel, den du wählst. Mit einem bestehenden Beitrag verknüpfen ist für Wünsche, die schon auf dem Board stehen: Die Nachricht landet bei diesem Beitrag, statt ein Duplikat davon zu werden. Schließen verwirft die Nachricht und löscht sie.

Eine Nachricht aus dem Website-Widget mit E-Mail-Adresse, Name und Seite des Besuchers und den Aktionen Zum Board hinzufügen, Mit einem bestehenden Beitrag verknüpfen und Schließen

Vom Verknüpfen erwarte ich am meisten. Zehn Leute, die dieselbe fehlende Funktion auf zehn verschiedene Arten beschreiben, sollten ein einziger Beitrag mit zehn Leuten dahinter werden. Der Beitrag behält ihre Nachrichten, und wer eine E-Mail-Adresse hinterlassen hat, kann von dir hören, sobald die Funktion live ist.

3. Das Team einmal pro Stunde benachrichtigen, nicht bei jeder Nachricht

Eine Benachrichtigung pro Nachricht funktioniert bis zum ersten vollen Tag. Danach bringt sie allen bei, Benachrichtigungen zu ignorieren.

Deshalb alarmiert das Widget niemanden in Echtzeit. Einmal pro Stunde, wenn neue Nachrichten eingegangen sind, bekommt jeder im Team eine Benachrichtigung im Dashboard und eine E-Mail, dass Nachrichten warten. Zehn Nachrichten in einer Stunde ergeben eine E-Mail. Eine ruhige Woche ergibt keine.

4. Ein offenes Formular braucht Limits, die echte Menschen nie erreichen

Alles, was ein Besucher ohne Konto senden kann, kann auch ein Skript senden. Die Limits liegen weit über dem, was ein Mensch tut, und deutlich unter dem, was ein Skript tut: 30 Nachrichten pro Stunde von einer IP-Adresse, 120 pro Stunde für ein ganzes Projekt und höchstens 1.000, die auf Prüfung warten. Ist die Warteschlange voll, lehnt das Widget neue Nachrichten ab, bis jemand ein paar geprüft hat, und das Dashboard zeigt, warum.

Zwei weitere Entscheidungen folgen aus derselben Überlegung. Eine Nachricht, die niemand zum Board hinzufügt oder mit einem Beitrag verknüpft, wird nach 90 Tagen gelöscht, damit die Warteschlange nicht endlos wächst. Und eine gesendete Nachricht zählt nicht zu deinem monatlichen API-Kontingent. Ein Feedback-Formular sollte dich nichts kosten, wenn jemand es benutzt.

5. Auch der Chatbot sollte optional sein

Bis zu dieser Woche war der Chat der einzige Tab, den du nicht abschalten konntest. Startseite, Hilfe und Feedback waren Extras drumherum. Diese Entscheidung habe ich früh getroffen, als das Widget nur ein Chat war, und sie hat länger gehalten als ihr Grund.

Manche Teams wollen noch keine KI, die ihren Kunden antwortet. Manche haben ein Dutzend Hilfeartikel und wissen, dass der Assistent meistens sagen würde, er sei sich nicht sicher. Manche wollen nur einen Ort für ihre Doku, ihr Changelog und ein Feedback-Formular. Ein Widget, das auf einem Chatbot besteht, installieren sie gar nicht erst.

KI fragen ist jetzt ein Tab wie die anderen. Schaltest du ihn ab, hat das Widget nirgends mehr einen Chat: Die Startseite verliert ihr Fragefeld, Artikel verlieren Frage zu diesem Artikel stellen, und selbst ein Aufruf von KookeeChat.sendMessage() aus deinem eigenen Code bewirkt nichts, damit keine Antwort entsteht, die niemand lesen würde.

Das Website-Widget ohne KI fragen: die Startseite mit einer Ankündigung, Links und Neuigkeiten und nur die Tabs Startseite, Hilfe und Feedback

Ein Detail brauchte mehr Sorgfalt, als man ihm ansieht. Früher öffnete sich das Widget im Chat und wechselte zu den gespeicherten Tabs, sobald sie einen Moment später vom Server kamen. Jetzt, wo der Chat abgeschaltet sein kann, hätte dieser Moment einen Chatbot gezeigt, den der Inhaber abgeschaltet hat, und ein schneller Besucher hätte schon hineintippen können. Deshalb wartet ein Panel, das sich mit der Seite öffnet, jetzt auf seine Einstellungen, höchstens fünf Sekunden lang. Hängt die Anfrage, bekommt der Besucher den Chat statt eines Ladekreisels, und die echten Tabs übernehmen, sobald sie ankommen.

Das Dashboard hat eine eigene Sicherung: Den letzten eingeschalteten Tab kannst du nicht abschalten, damit ein Widget immer etwas zeigt.

Die Karte Tabs unter Website-Widget → Anpassen: Startseite, Hilfe und Feedback eingeschaltet, KI fragen ausgeschaltet, dazu ein Hinweis, dass sich die Tabs per Drag-and-drop umsortieren lassen

Was ich weggelassen habe

Antworten. Im Widget gibt es keinen Posteingang und keine Unterhaltung. Wenn du jemandem antworten willst, schreib an die E-Mail-Adresse, die er hinterlassen hat. Ein Antwortverlauf ist ein Support-Werkzeug, und ein Feedback-Formular, das eins sein will, wird am Ende eine schlechtere Version von beidem.

Abstimmungen. Besucher können im Widget nicht abstimmen. Abgestimmt wird weiter im Portal, wo ein Konto eine Stimme ist.

Vertrauen in das, was die Seite sagt. Name, ID und E-Mail-Adresse, die eine Website an das Widget übergibt, erscheinen an der Nachricht mit dem Vermerk „Nicht verifiziert“. Es sind Angaben, keine Identitäten.

So bekommst du es

Das Script-Tag übernimmt all das ohne Änderung an deiner Website. Über npm braucht der Feedback-Tab @kookee/react 1.13, und um KI fragen abzuschalten, brauchst du 1.14. Öffne dann Website-Widget → Anpassen, schalte Feedback ein und KI fragen aus, wenn du ein Widget ohne Chat willst.

So öffnest du das Formular über einen eigenen Link „Problem melden“:

js
KookeeChat.open('feedback');

Die vollständige Anleitung steht in Feedback über dein Website-Widget sammeln, die anderen Tabs behandelt Tabs Startseite und Hilfe zum Widget hinzufügen.