Anpassbares Website-Chat-Widget

Ich habe eine Website, auf der sich Besucher zuerst anmelden und dann Videos ansehen, und ich möchte, dass sie Chatnachrichten mit meinen Supportmitarbeitern austauschen können, während sie sich die Videos ansehen.

Ich suche nach einem Chat-Tool, das alle (oder zumindest die meisten ) dieser Funktionen hat:

  • Da die Besucher meiner Website bereits ihre E-Mail-Adresse und ihren Namen angegeben haben, "meldet" das Chat-Widget den Besucher automatisch an, indem es Daten verwendet, die in Javascript auf der Seite verfügbar sind (so dass Chat-Agenten den Namen, die E-Mail-Adresse, den Standort, die Geräteinformationen, etc). (Ich denke, Userlike.com erlaubt dies.)
  • Sowohl in mobilen Browsern als auch in Desktop-Browsern ist die Chatbox hochgradig anpassbar. Wenn ich zB nicht möchte, dass Besucher auf ein Symbol klicken müssen, um ein Textfeld-Chatfenster zu öffnen, könnte ich es so einstellen, dass ein Chat-Textfeld bereits sofort sichtbar ist. Ich würde gerne auch den Platzhaltertext und die Eingabeaufforderungen darüber steuern.
  • Ich kann sofort ändern, was Besucher sehen (ohne dass der Besucher die Seite aktualisieren muss), in dem Sinne, dass: wenn Agenten angegeben haben, dass sie „verfügbar“ sind, das Chat-Widget sichtbar ist. Und wenn alle Agenten nicht verfügbar sind, kann ich wählen, ob das gesamte Chat-Widget sofort unsichtbar wird (für alle Besucher, die es möglicherweise gerade sehen) oder eine Art Nachricht darüber anzeigt, dass es nicht verfügbar ist.
  • Das System führt eine Datenbank aller Chat-Aktivitäten, einschließlich Kontaktinformationen, Zeitstempel und der benutzerdefinierten Daten, die per Javascript gesendet wurden (damit ich später analysieren kann, „An welchen Stellen unserer Videos wollten uns Besucher Fragen stellen?“)
  • Agenten erhalten Push-Benachrichtigungen auf einer iOS-App und können dort auf Kunden-Chats antworten (Tawk.to ermöglicht dies).
  • Es wäre großartig, wenn Javascript-Ereignisse auf der Seite (z. B. wenn der Besucher bestimmte Momente beim Ansehen bestimmter Videos erreicht) automatisch an das Chat-Widget gesendet werden könnten (und ohne dass der Besucher es in der Chat-Konversation sieht), um den Agenten minutengenau auf dem Laufenden zu halten Minute darüber, was der Besucher auf der Seite erlebt.

Wenn Sie Vorschläge haben, würde ich sie schätzen!

PS Ich bin Softwareentwickler und meine Website verwendet Laravel. Wenn es eine einfache Möglichkeit gibt, dies mit https://laravel.com/docs/5.6/broadcasting und Pusher zu erreichen, bin ich dafür offen. Aber meine Vermutung ist, dass es bereits Tools gibt und ich nicht selbst etwas programmieren muss.

Antworten (1)

Tawk.to hat eine iOS-App und scheint so anpassbar zu sein, dass ich sie ausprobieren kann.

Obwohl ich Tawk.to bereits kannte, als ich diese Frage stellte, konnte ich diese Dokumentation zum Festlegen der E-Mail-Adresse des Besuchers usw. nie finden.

Hier ist der größte Teil meines Codes:

var startChatBtn = $('#startChatBtn');
startChatBtn.hide();
var visitorData = {
    name: $('#tawktoData').attr('data-name'),
    email: $('#tawktoData').attr('data-email'),
    hash: $('#tawktoData').attr('data-hash')
};
console.log('tawk visitorData', visitorData);
window.Tawk_API.visitor = visitorData;
var hasChatted = false;

window.Tawk_API.onChatStarted = function () {
    console.log('onChatStarted');
    hasChatted = true;
};

window.Tawk_API.onChatMinimized = function () {
    console.log('onChatMinimized');
    window.Tawk_API.hideWidget();
    showChatBtnIfOnline();
};

window.Tawk_API.onChatHidden = function () {//https://www.tawk.to/javascript-api/#onChatHidden
    console.log('onChatHidden');
    showChatBtnIfOnline();
};

window.Tawk_API.onStatusChange = function (status) {
    console.log('window.Tawk_API.onStatusChange');
    if (status === 'away' || status === 'offline') {
        if (!hasChatted) {
            startChatBtn.hide();
        }
    } else {
        showChatBtnIfOnline();
    }
    window.Tawk_API.hideWidget();
    window.Tawk_API.minimize();//https://www.tawk.to/javascript-api/#minimize
};

tawkto_helper.onLoad.done(function () {
    //window.Tawk_API.hideWidget();//Is "Hide widget on load" enabled? https://dashboard.tawk.to/#/admin/5a9480/default/widget-settings 
    //window.Tawk_API.setAttributes(visitorData, function (error) {});//Instead of waiting for onLoad, maybe by setting window.Tawk_API.visitor immediately (even before load), I can have the first iOS app notification include visitor data.
    console.log('tawkto_helper.onLoad');
    showChatBtnIfOnline();
});

function showChatBtnIfOnline() {
    console.log('showChatBtnIfOnline window.Tawk_API.getStatus()', window.Tawk_API.getStatus());
    if (window.Tawk_API.getStatus() === 'online') {
        startChatBtn.show();
    }
}

function tawkAddEvent(name, payload, errorCallback) {
    tawkto_helper.onLoad.done(function () {
        window.Tawk_API.addEvent(name, payload, errorCallback);
    });
}

startChatBtn.click(function () {//There is not a race condition because startChatBtn will only ever be visible if Tawk_API has already loaded
    console.log('startChatBtn.click');
    window.Tawk_API.maximize();
    startChatBtn.hide();
});