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" />
              
              <iframe
  class="livedesk-widget-iframe"
  src="https://livedesk-stg.engagelab.com/console/livedesk/widget/?website_token=iTMtGDnzR1tccf3fiikLjL71&action=autoStart"
  title="LiveDesk"
  allow="camera;microphone"
/>

            
Afficher ce bloc de code dans la fenêtre flottante

website_token spé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' }, }), '*', ), );
              
              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' },
        }),
      '*',
    ),
  );

            
Afficher ce bloc de code dans la fenêtre flottante

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" />
              
              <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"
/>

            
Afficher ce bloc de code dans la fenêtre flottante

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 () {
  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
  });
});

            
Afficher ce bloc de code dans la fenêtre flottante
Remarque : si l'identifiant utilisateur est défini par une action déclenchée par l'utilisateur final dans la configuration, vous pouvez supprimer l'écouteur d'événements 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, });
              
              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,
});

            
Afficher ce bloc de code dans la fenêtre flottante

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", });
              
              window.$livedesk.setConversationCustomAttributes({
  utm_source: "google", // Exemple : UTM au niveau de la conversation
  session_type: "support",
});

            
Afficher ce bloc de code dans la fenêtre flottante

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 }); });
              
              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
  });
});

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              window.$livedesk.deleteCustomAttribute("pricing_plan"); // Clé d'attribut de type chaîne

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              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 ce bloc de code dans la fenêtre flottante

Afficher ou masquer la bulle de discussion

window.$livedesk.toggleBubbleVisibility("hide"); // Afficher ou masquer
              
              window.$livedesk.toggleBubbleVisibility("hide"); // Afficher ou masquer

            
Afficher ce bloc de code dans la fenêtre flottante

Mode fenêtre contextuelle

Ouvrez l'interface de discussion dans une fenêtre contextuelle.

window.$livedesk.popoutChatWindow();
              
              window.$livedesk.popoutChatWindow();

            
Afficher ce bloc de code dans la fenêtre flottante

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
              
              window.$livedesk.setLocale("en"); // Code de langue sous forme de chaîne, par exemple zh-CN

            
Afficher ce bloc de code dans la fenêtre flottante

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");
              
              window.$livedesk.setLabel("support-ticket"); // Identifiant du libellé sous forme de chaîne
window.$livedesk.removeLabel("support-ticket");

            
Afficher ce bloc de code dans la fenêtre flottante

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>
              
              <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>

            
Afficher ce bloc de code dans la fenêtre flottante

É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); });
Icon Solid Transparent White Qiyu
Contactez-nous