Guide d'utilisation avancée du site web
Le canal de site web prend en charge une configuration supplémentaire via l'interface du SDK du widget LiveDesk ou à l'aide d'un iframe afin de répondre à vos besoins.
Paramètres liés à l'iframe
Ignorer l'écran d'accueil
En mode iframe, vous pouvez ajouter le paramètre action=autoStart pour ignorer l'écran d'accueil qui s'affiche lorsque la bulle s'ouvre et accéder directement à la fenêtre de discussion.
<iframe
class="livedesk-widget-iframe"
src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=iTMtGDnzR1tccf3fiikLjL71&action=autoStart"
title="LiveDesk"
allow="camera;microphone"
/>
website_tokenspécifie la valeur correspondante générée après la création du canal.
Définir l'identifiant utilisateur
Deux méthodes de configuration sont disponibles.
Méthode 1 :
Array.from(document.getElementsByTagName('iframe'))
.filter((iframe) => iframe.src && iframe.src.includes('livedesk'))
.forEach((iframe) =>
iframe.contentWindow?.postMessage(
'livedesk-widget:' +
JSON.stringify({
event: 'set-user',
identifier: 'your_user_id',
user: { name: 'Nom affiché', email: 'user@example.com' },
}),
'*',
),
);
Méthode 2 : ajoutez le paramètre user_id=xxxxx à l'iframe.
<iframe
class="livedesk-widget-iframe"
src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=Etsz4XtvqKi7iqbHf8Ma6ZLR&action=autoStart&user_id=5002"
title="LiveDesk"
allow="camera;microphone"
/>
Interface du SDK du widget LiveDesk
Définir l'identifiant et les informations de l'utilisateur (mode standard)
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setUserId("Identifiant utilisateur unique (par exemple user_id)", {
// Le premier paramètre est l'identifiant unique
email: "user@example.com",
name: "Nom de l'utilisateur",
avatar_url: "https://example.com/avatar.jpg", // Facultatif
phone_number: "+1234567890", // Facultatif
});
});
window.addEventListener("livedesk:ready", function ()).
Définir l'identifiant et les informations de l'utilisateur (mode chiffré)
Activez l'authentification (recommandé) afin d'empêcher l'usurpation d'identité et d'assurer la persistance de la session entre les navigateurs. Activez HMAC dans la configuration et utilisez SHA-256 pour générer identifier_hash.
Exemple (JavaScript) :
const crypto = require("crypto");
const key = "Your HMAC Token"; // Copiez-le depuis les paramètres d'Inboxes
const message = "Identifiant utilisateur unique";
const identifier_hash = crypto
.createHmac("sha256", key)
.update(message)
.digest("hex");
// Ajoutez-le à setUser
window.$livedesk.setUserId("Identifiant utilisateur unique", {
...OtherInformation,
identifier_hash: identifier_hash,
});
Définir les attributs personnalisés de la conversation
window.$livedesk.setConversationCustomAttributes({
utm_source: "google", // Exemple : UTM au niveau de la conversation
session_type: "support",
});
Ces attributs personnalisés s'affichent dans LiveDesk > Conversation > Informations sur la conversation.
Définir les attributs personnalisés de l'utilisateur
window.addEventListener("livedesk:ready", function () {
window.$livedesk.setCustomAttributes({
pricing_plan: "premium", // Clé : identifiant unique prédéfini ; valeur : à définir selon le type, par exemple une chaîne
signup_date: new Date(), // Exemple : type date
account_id: 123, // Exemple : type numérique
});
});
Ces attributs personnalisés s'affichent dans LiveDesk > Conversation > Attributs du contact.
Supprimer les attributs utilisateur
Supprimez l'attribut personnalisé spécifié.
window.$livedesk.deleteCustomAttribute("pricing_plan"); // Clé d'attribut de type chaîne
Basculer l'état d'ouverture de la bulle de discussion
Basculez l'état ouvert ou fermé du widget.
window.$livedesk.toggle();
// Basculer le widget en transmettant un état
window.$livedesk.toggle("open"); // Ouvrir le widget de discussion
window.$livedesk.toggle("close"); // Fermer le widget de discussion
Afficher ou masquer la bulle de discussion
window.$livedesk.toggleBubbleVisibility("hide"); // Afficher ou masquer
Mode fenêtre contextuelle
Ouvrez l'interface de discussion dans une fenêtre contextuelle.
window.$livedesk.popoutChatWindow();
Définir la langue
Définissez la langue du widget.
window.$livedesk.setLocale("en"); // Code de langue sous forme de chaîne, par exemple zh-CN
Ajouter ou supprimer des libellés
Ajoutez un libellé à la conversation actuelle avant le début de la conversation. Le libellé sera automatiquement appliqué à la conversation.
window.$livedesk.setLabel("support-ticket"); // Identifiant du libellé sous forme de chaîne
window.$livedesk.removeLabel("support-ticket");
Objet de configuration du widget LiveDesk
Cet objet global est défini lors de l'initialisation, avant le chargement du SDK, afin de personnaliser le comportement du widget. Définissez-le à l'aide de window.livedeskSettings, puis transmettez-le à window.livedeskSDK.run().
Propriétés de l'objet
| Nom de la propriété | Type | Description | Valeur par défaut | Exemple |
|---|---|---|---|---|
hideMessageBubble |
booléen | Masquer la bulle de message. | false |
true |
showUnreadMessagesDialog |
booléen | Afficher la boîte de dialogue des messages non lus. | true |
false |
position |
chaîne | Position du widget. | 'right' |
'left' |
locale |
chaîne | Code de langue par défaut. | Langue du tableau de bord | 'zh-CN' |
useBrowserLanguage |
booléen | Utiliser la langue du navigateur et ignorer locale. |
false |
true |
type |
chaîne | Type de widget. | 'standard' |
'expanded_bubble' |
darkMode |
booléen | Activer le mode sombre. | false |
true |
baseDomain |
chaîne | Domaine de base, facultatif pour plusieurs domaines. | — | 'example.com' |
launcherTitle |
chaîne | Titre du lanceur. | — | 'Support' |
showPopoutButton |
booléen | Afficher le bouton de fenêtre contextuelle. | true |
false |
welcomeTitle |
chaîne | Titre d'accueil. | — | 'Welcome!' |
welcomeDescription |
chaîne | Description d'accueil. | — | 'How can we help you?' |
availableMessage |
chaîne | Message en ligne. | — | 'We are online.' |
unavailableMessage |
chaîne | Message hors ligne. | — | 'We will reply later.' |
enableFileUpload |
booléen | Activer l'envoi de fichiers. | true |
false |
enableEmojiPicker |
booléen | Activer le sélecteur d'émojis. | true |
false |
enableEndConversation |
booléen | Activer le bouton de fin de conversation. | true |
false |
Exemple de code
<script>
// 1. Définir la configuration globale avant de charger sdk.js.
// Elle doit être placée au début du script.
window.livedeskSettings = {
// Position du widget : en bas à gauche (en bas à droite par défaut)
position: "left",
// Forcer le chinois simplifié (le chinois sera affiché même si le navigateur est configuré en anglais)
locale: "zh-CN",
// Détecter automatiquement la langue du navigateur. Si vous souhaitez donner la priorité
// à la langue du navigateur de l'utilisateur, définissez cette valeur sur true et supprimez la propriété locale ci-dessus.
// useBrowserLanguage: true,
// Type de widget : expanded_bubble = grande bulle avec un message d'accueil ;
// standard = petite bulle classique
type: "expanded_bubble",
// Mode sombre (suivre automatiquement le paramètre système ou forcer le mode sombre)
darkMode: "auto", // Valeurs facultatives : true | false | "auto"
// Masquer la petite icône en forme de bulle en bas (adapté à l'utilisation d'un bouton personnalisé)
hideMessageBubble: false,
// Masquer le bouton en forme de flèche de la fenêtre contextuelle dans l'angle inférieur droit
showPopoutButton: false,
// Titre personnalisé du lanceur (affiché en mode expanded_bubble)
launcherTitle: "Online Support",
// Message d'accueil (actif en mode expanded_bubble)
welcomeTitle: "Hello! How can we help you?",
welcomeDescription: "We usually reply within a few minutes.",
// Texte affiché lorsque le service est en ligne ou hors ligne
availableMessage: "We are online and ready to help",
unavailableMessage:
"We are currently offline and will reply as soon as possible during business hours",
// Activation ou désactivation des fonctionnalités
enableFileUpload: true, // Autoriser l'envoi de fichiers
enableEmojiPicker: true, // Autoriser les émojis
enableEndConversation: true, // Permettre aux utilisateurs de mettre fin eux-mêmes à la conversation
// Autres options avancées (à activer selon les besoins)
// showUnreadMessagesDialog: true, // Afficher une boîte de dialogue de rappel en présence de messages non lus (true par défaut)
// baseDomain: "yourcompany.com", // À utiliser pour les déploiements sur plusieurs domaines
};
</script>
<!-- 2. Charger le SDK du widget LiveDesk (remplacez le domaine et le token par les vôtres) -->
<script>
(function (d, t) {
var BASE_URL = "https://www.engagelab.com"; // Remplacez par votre adresse LiveDesk
var g = d.createElement(t);
var s = d.getElementsByTagName(t)[0];
g.src = BASE_URL + "/packs/js/sdk.js";
g.defer = true;
g.async = true;
s.parentNode.insertBefore(g, s);
g.onload = function () {
window.livedeskSDK.run({
websiteToken: "abcdefgh1234567890abcdefgh123456", // Remplacez par votre Website Token
baseUrl: BASE_URL,
});
};
})(document, "script");
</script>
Écouteurs d'événements du widget LiveDesk
| Nom de l'événement | Description | Exemple d'écouteur |
|---|---|---|
livedesk:ready |
Déclenché lorsque le SDK a fini de se charger et que ses méthodes peuvent être appelées en toute sécurité. | window.addEventListener('livedesk:ready', () => { /* Initialisation */ }); |
livedesk:on-message |
Déclenché lorsqu'un nouveau message est reçu. | window.addEventListener('livedesk:on-message', (data) => { console.log(data); }); |
livedesk:error |
Déclenché lorsqu'une erreur du SDK se produit (v2.3.0 et versions ultérieures). | window.addEventListener('livedesk:error', (error) => { console.error(error); }); |










