Personnaliser le clavardage Guide à l'aide des API
Vous pouvez personnaliser l'apparence et le comportement du clavardage mis en œuvre avec Guide en utilisant ces chat-related APIs.
Appels d'API de Comportement du clavardage
Les appels de cette section vous permettent de modifier le comportement de la fenêtre de clavardage Guide.
Définir le code d’autorisation
Définit un code d'autorisation pour le flux OAuth. OAuth est un protocole d'authentification. Il vous permet de laisser une application interagir avec une autre en votre nom sans divulguer vos mots de passe. Il doit être appelé avant l’initialisation du clavardage.
cxone('chat','setAuthorizationCode', 'authorization_code');
Personnaliser le message de contact automatisé initial
Lorsqu'un clavardage démarre dans Guide, un nouveau cas
La conversation complète avec un agent sur un canal. Par exemple, une interaction peut être un appel vocal, un courriel, un clavardage ou une conversation sur les réseaux sociaux. est créé et ajouté à la file d'attente lorsque le premier message de la session de clavardage est envoyé. Un message caché et automatisé est envoyé au nom du visiteur lorsque la session de clavardage commence. Cela permet de réduire le temps d’attente des visiteurs pour un agent. Bien que le message initial soit caché au contact, l’agent peut le voir.
Le message par défaut est le texte du bouton sur lequel le client clique pour démarrer la conversation. Vous pouvez personnaliser le texte du message initial automatisé de trois manières :
-
Remplacez le texte du bouton par défaut.
cxone('chat','sendFirstMessageAutomatically', 'Hello'); -
Modifiez le message initial de manière dynamique.
cxone('chat','setFirstAutomatedMessageContent', 'Hello, I have a question'); -
Modifiez le texte du message sur la page Traductions.
Rendre le message automatisé initial visible pour les contacts
Si vous souhaitez que le visiteur puisse voir le message automatisé initial, ajoutez cet appel à votre script :
cxone('chat','hideFirstSentMessage', false);
Retarder la création de cas
Guide crée un nouveau cas et l'ajoute à la file d'attente lorsque le premier message de la session de clavardage est envoyé. Un message caché et automatisé est envoyé au nom du visiteur lorsque la session de clavardage commence. Cela permet de réduire le temps d’attente des visiteurs pour un agent. Les Sessions de clavardage commencent lorsqu'un visiteur clique sur l'icône de clavardage pour entamer une conversation. Bien que le message initial soit caché au visiteur, l’agent peut le voir.
Vous pouvez configurer Guide pour qu’il attende le premier message du visiteur avant de créer un cas à l’aide de cet appel :
cxone('chat','sendFirstMessageAutomatically', false);
Activer le mode jeu
Permet aux visiteurs de jouer au jeu Snake en attendant un agent.
cxone('chat','allowGameMode');
Sondage de satisfaction automatisé
Un sondage de satisfaction peut être automatiquement détecté et affiché dans une fenêtre contextuelle. Cela permet de le détecter et de l’afficher ou non.
cxone('chat','automatedSatisfactionSurveyModal', false);
Appels d'API d'Informations sur le clavardage
Ces appels vous permettent de personnaliser les informations mises à la disposition des visiteurs lors d’une session de clavardage.
Obtenir l'ID d'identité du Client
Renvoie l’identifiant unique du visiteur dans le clavardage.
cxone('chat','getCustomerIdentityId');
Définir l'ID du Client
Définit un identifiant unique pour le visiteur dans le clavardage.
cxone('chat','setCustomerId', 'customer_id');
Masquer le Compteur de File d’Attente
Le compteur de file d’attente indique à un visiteur combien de temps un agent peut l’aider en fonction du nombre de personnes dans la file d’attente de l’agent. Vous pouvez masquer le compteur de file d’attente une fois que le visiteur a été correctement acheminé vers un agent. Cela permet aux agents de supprimer des cartes client de leur boîte de réception sans que les visiteurs ne s’en aperçoivent.
cxone('chat','hideQueueCounterAfterAssignment');
Définir l'état de l'activité
Modifie le message dans la barre d'activité. Par exemple, vous pourriez l'utiliser pour communiquer votre temps de réponse pour une session de clavardage par Messagerie
Clavardage asynchrone dans lequel les contacts envoient un message clavardage à tout moment et attendent une réponse.. Cela peut être utile, car la messagerie de clavardage est une forme de clavardage asynchrone, de sorte que les visiteurs peuvent devoir attendre d’avoir des nouvelles d’un agent.
cxone('chat','setStatusMessage', 'We typically reply within 3 hours.');
Définir l'image de l'agent
Modifie dynamiquement l'image de l'agent affichée dans la fenêtre de clavardage. Par défaut, Guide utilise l'image dans le profil de l'agent. Lorsque vous incluez cet appel dans votre script, il utilise l'image spécifiée par l'URL dans l'extrait de code (snippet). Remplacez l'exemple d'URL par l'URL de l'image que vous souhaitez que le clavardage utilise.
cxone('chat','setAgentImage', 'http://classics.com/images/agents/elizabeth_bennet.png');
Définir le nom du Client
Le Nom du client est un champ du formulaire de sondage pré-contact, que les visiteurs doivent remplir avant de clavarder avec un agent sur un canal de messagerie de clavardage
Clavardage asynchrone dans lequel les contacts envoient un message clavardage à tout moment et attendent une réponse.. Cet Appel API remplit dynamiquement le champ.
cxone('chat','setCustomerName', 'Elizabeth');
Définir le Format de dates
Définit le format de la date au format absolu (01/01/2022) ou au format relatif (aujourd’hui, lundi).
cxone('chat','setDateFormat', 'date_format');
Définir Paramètres régionaux
Définit les paramètres régionaux pour les traductions dans la fenêtre de clavardage.
cxone('chat','setLocale', 'locale');
Afficher les Informations sur le cas
Uniquement pour les canaux de clavardage par Messagerie
Clavardage asynchrone dans lequel les contacts envoient un message clavardage à tout moment et attendent une réponse.. Affiche les informations du dossier au visiteur.
cxone('chat','showCaseInfo');
Afficher/Masquer le bouton Envoyer la transcription
Si vous rendez visible le bouton Envoyer la transcription, vous devez configurer le canal de clavardage pour permettre aux contacts de s’envoyer la transcription du clavardage. Configurez cette option pour la messagerie de clavardage ou le clavardage en direct.
cxone('chat','showSendTranscript');cxone('chat','hideSendTranscript');
Afficher/Masquer les messages Système
Affiche ou masque les messages système comme l'historique d'affectation des agents.
cxone('chat','showSystemMessages');cxone('chat','hideSystemMessages');
Conditions d'utilisation
Permet de mettre un document de conditions d’utilisation à la disposition des visiteurs à partir de la fenêtre de clavardage. Cette fonction ajoute un bouton à la fenêtre. Vous pouvez personnaliser l’étiquette et le style du bouton, ainsi que ce qui se passe lorsque les visiteurs cliquent dessus. L’action au clic peut afficher les conditions d’utilisation sous la forme d’une fenêtre interne ou d’un lien externe.
Une fenêtre interne :
cxone('chat','showTermsOfUse', 'Show terms of Use', 'modal' , 'Our terms of use are ...');
Un lien externe :
cxone('chat','showTermsOfUse', 'Show terms of Use', 'externalLink' , 'http://yourdomain.com/terms-of-use');
Pour désactiver la fonctionnalité :
cxone('chat','hideTermsOfUse');
Champs personnalisés, Étiquettes et Phrases
Créer et Remplir des Champs personnalisés
Avant d'utiliser les Appels API des champs personnalisés ci-dessous, vous devez d'abord créer le champ personnalisé dans NiCE CXone. Créez le champ personnalisé pour un Customer Card ou un Contact, selon le type de champ personnalisé que vous souhaitez remplir via l'API.
La valeur ident que vous attribuez au champ personnalisé lors de sa création est la même valeur que vous utiliserez en référence dans l'Appel API. Si le champ personnalisé n'existe pas dans la plateforme, l'Appel API n'aura aucun effet.
Pour obtenir des instructions étape par étape sur la création de champs personnalisés, consultez Gérer les Champs personnalisés.
Utilisez l'API JavaScript de clavardage CXone Digital pour capturer les données de votre page Web et les stocker en tant que valeur de champ personnalisé. Cela vous permet de transmettre automatiquement des informations contextuelles, telles que la page sur laquelle se trouve le visiteur, son ID de compte ou toute autre donnée pertinente directement dans NiCE CXone lorsqu'une interaction de clavardage commence.
Il existe deux méthodes API disponibles, selon l'endroit où vous souhaitez que les données du champ personnalisé soient stockées :
-
setContactCustomField — Stocke la valeur du champ personnalisé sur le Contact, qui représente une seule interaction ou conversation. Utilisez cette méthode lorsque les données sont propres à cette session de clavardage particulière. Par exemple, l'url de la page où le clavardage a été initié, un produit sélectionné ou un numéro de référence de formulaire.
Lorsque vous utilisez
setCaseCustomField, il se peut que vous voyiez un avertissement de dépréciation dans la console du navigateur suggérant d'utilisersetContactCustomFieldà la place.
-
setCustomerCustomField — Stocke la valeur du champ personnalisé sur le Customer Card, qui représente le profil du contact dans toutes les interactions. Utilisez cette méthode lorsque les données sont liées au Client lui-même. Par exemple, son ID de compte, son niveau d’adhésion ou sa langue préférée.
Vue d’ensemble de l’implémentation
Le tableau suivant résume les méthodes API disponibles pour définir les valeurs des champs personnalisés. Consultez les exemples de code détaillés sous le tableau pour obtenir des conseils sur l’implémentation.
|
Exemple |
Méthode API |
la description |
|---|---|---|
| Définir un seul champ personnalisé de contact | setContactCustomField |
Pour remplir un champ Cas à la fois. |
| Définir plusieurs champs personnalisés de contact en même temps | setContactCustomFields
|
Mise à jour groupée efficace de plusieurs champs Cas. |
| Définir un seul champ personnalisé Customer Card | setCustomerCustomField
|
Pour les champs de profil Customer Card. |
| Définir plusieurs champs personnalisés Customer Card en même temps | setCustomerCustomFields
|
Mise à jour en bloc de plusieurs champs Customer Card. |
| Exemple de valeur statique | setContactCustomField
|
Valeur codée en dur, par exemple, 'Contact Us Page'. |
| Exemple de valeur dynamique | setContactCustomField
|
Valeur dynamique, par exemple, window.location.href. |
Les valeurs de champ personnalisé peuvent être définies de deux façons :
Statique — La valeur est codée en dur directement dans l'Appel API. Ceci est utile lorsque la valeur est toujours la même pour une Page donnée, par exemple pour indiquer sur quelle Page se trouve le widget de clavardage.
-
Pour définir la valeur d'un seul champ personnalisé de contact
cxone('chat','setContactCustomField', 'pagesource', 'Contact Us Page'); -
Pour définir la valeur de Plus qu'un champ personnalisé de contact
cxone('chat','setContactCustomFields', { customFieldIdent: 'value', secondCustomFieldIdent: 'value' } ); -
Pour définir la valeur d'un seul champ Customer Card
cxone('chat','setCustomerCustomField', 'email', 'leia@starwars.com'); -
Pour définir la valeur de Plus qu'un champ Customer Card
cxone('chat','setCustomerCustomFields', { customFieldIdent: 'value', secondCustomFieldIdent: 'value' } );
-
dynamique — La valeur est extraite de la page Web au moment de l'exécution à l'aide de JavaScript. Ceci est utile lorsque la valeur varie selon le visiteur ou la session, par exemple pour capturer l'url de la page actuelle ou l'id d'un utilisateur connecté.
cxone('chat','setContactCustomField', 'currentPage', window.location.href);
Si vous utilisez un formulaire précontact pour recueillir des informations auprès des visiteurs avant le début du clavardage, vous n'avez pas besoin d'utiliser ces méthodes API pour capturer les mêmes données. Les champs du formulaire précontact sont automatiquement sauvegardés dans le dossier et la Customer Card, tel que configuré.
Pour définir la valeur d'un champ personnalisé Customer Card :
cxone('chat','setCustomerCustomField', 'ident_of_custom_field', 'value_of_custom_field');
Les champs personnalisés sont limités à 1024 caractères.
Ajoutez les Appels API du champ personnalisé au même bloc de script où le widget Guide est intégré sur votre page Web. Placez les Appels API juste au-dessus de la balise de fermeture </script>, après le code d'initialisation du widget. Par exemple :
<script>
// CXone widget initialization code
cxone('guide', 'init');
// Add custom field API calls here
cxone('chat', 'setCaseCustomField', 'pageSource', 'Contact Us Page');
cxone('chat', 'setCustomerCustomField', 'accountTier', 'Premium');
</script>
Pour obtenir des instructions détaillées sur l'intégration du widget et l'emplacement des appels de personnalisation, consultez Personnaliser Guide à l'aide de JavaScript.
Personnaliser les Étiquettes et les phrases
Vous pouvez personnaliser un grand nombre d’étiquettes et de phrases que le clavardage Guide utilise, ainsi que définir les personnalisations. Si vous devez modifier dynamiquement les phrases ou les étiquettes d'écran, utilisez ces appels d'API.
Pour modifier un seul message ou étiquette :
cxone('chat','setTranslation', 'key', 'your translation');
Pour modifier plusieurs messages ou étiquettes :
cxone('chat','setTranslations', {key1: 'your custom label', key2: 'your custom message'});
Les accolades indiquent les variables que le système remplace par des données réelles. Par exemple, {caseNumber} est remplacé par le numéro de dossier de la session de clavardage du contact.
|
|
Étiquette/Message par défaut |
|---|---|
| allAgentsForQueueAreBusy | Tous nos agents dédiés à votre file d'attente sont actuellement occupés. Il {queue, plural, one {y a} other {y a}} <strong>{queue, number}</strong> {queue, plural, one {personne} other {personnes}} devant vous dans la file d'attente. |
|
beginButton |
Commencez à clavarder ! |
| cancel | Annuler |
| caseNumber | Cas #{caseNumber} |
| change | Changer |
| chattedWith | Vous venez de clavarder avec |
| CommonErrorText | Une erreur inattendue s'est produite. Veuillez réessayer ultérieurement. |
| terminé | Terminé |
| dragAndDropDropzone | Faites glisser et abandonnez les fichiers ici pour les envoyer |
| dragAndDropDropzoneRejected | Impossible de téléverser le fichier :( |
| EmailLabel | Courriel |
| endChat | Mettre fin au clavardage |
| endChatTitle | Êtes-vous sûr de vouloir mettre fin à cette conversation ? |
| endGame | Fin du jeu |
| fin | Fin de la clavardage... |
| fileSendingFailed | L'envoi du fichier a échoué |
| getTranscriptDescription | Envoyez la transcription de cette conversation à l'adresse courriel suivante : |
| getTranscriptLink | Obtenir la transcription du clavardage |
| invalidToken | Jeton invalide |
| ipAddressBlocked | L'adresse IP est bloquée |
| Chargement en cours | Chargement ... |
| loadPreviousButton | Charger les conversations précédentes |
| messageLabel | Message |
| networkErrorText | Il y a eu une erreur de réseau. Veuillez réessayer. |
| newCase | Nouveau cas |
| noAgentOnlineForQueue | Aucun agent n'est disponible pour votre file d'attente pour le moment. |
| hors ligne | Hors ligne |
| offlineFormDesc | Nous ne sommes pas disponibles pour le moment |
| offlineFormSuccessMsgHead | Merci! |
| offlineFormSuccessMsgSub | Votre courriel a été envoyé avec succès. Nous vous répondrons bientôt. |
| en ligne | En ligne |
| onlineFormText | Pour démarrer un clavardage, veuillez nous indiquer votre nom. Un de nos agents commencera à vous aider immédiatement. |
| pleaseSelect | Veuillez sélectionner... |
| poweredBy | Alimenté par |
| preparingSession | Séance de préparation... |
| replyBoxPlaceholder | Écrire ici, appuyez sur <entrée> pour envoyer |
| Réessayez | Réessayer |
| sendFileTextSize | Veuillez téléverser des fichiers plus petits que {filesize} |
| sendFileTextSupportedFormat | formats pris en charge. |
| sendFileTextSupportedFormatDesc | Images, vidéos, {fileFormats} |
| sendMessageButton | Envoyer le message |
| sendNewEmail | Envoyer un nouveau courriel |
| sendTranscript | Envoyer la transcription |
| snakeWaiting | Vous êtes {queue} dans la file d'attente. |
| startChatInPopup | Demandez nous! |
| startNewChat | Démarrer un nouveau clavardage |
| statusReconnecting | Essayant de se connecter… |
| surveySuccesfullySent | Merci pour vos commentaires ! |
| systemChattingWith | Vous discutez maintenant avec {name} |
| sujet | Sujet |
| transciptSentFailed | Échec de l'envoi. |
| transciptSuccesfullySent | Transcription envoyée avec succès ! |
| tryAgainButton | Réessayez de nouveau |
| unexpectedError | Erreur inattendue. |
| validationInvalidEmail | L'adresse courriel n'est pas valide |
| validationMandatory | Ce champ est obligatoire |
| validationShorterName | Veuillez utiliser un nom plus court |
| validationShortMessage | Votre message est trop court |
| En attente | En attente... |
| waitingDescription | Un de nos agents vous parlera sous peu. |
| waitingFooter | Appuyez sur <spacebar> pour réduire l'attente. |
| waitingForAgent | En attente de l'agent... |
| waitingInQueue | En attente d'agent. Vous êtes {queue} dans la file d'attente. |
| weAreOffline | Nous sommes actuellement hors ligne. |
| weAreOnline | Nous sommes en ligne |
| yourNameLabel | Votre nom |
Appels API d'apparence de la fenêtre de clavardage
Vous pouvez modifier l’apparence de la fenêtre de clavardage utilisée par Guide.
Masquer l'Agent assigné
cxone('chat','hideAssignedAgent');
Afficher l'avatar du Client
cxone('chat','showCustomerAvatar');
Afficher le bouton Envoyer
cxone('chat','showSendButton');
Définir la limite de caractères pour la boîte de réponse
cxone('chat','setReplyBoxLimit', '280');
CSS personnalisé avec sélecteurs de données
Vous pouvez personnaliser l'apparence des fenêtres de clavardage avec un CSS personnalisé à l'aide de sélecteurs de données dans vos appels d'API. Les sélecteurs de données vous permettent de spécifier la partie de la fenêtre de clavardage à laquelle vous souhaitez appliquer le CSS personnalisé. Définissez le sélecteur de données à l'aide de l'attribut sélecteur de données (data-selector). Définissez-le égal au nom du composant de la fenêtre de clavardage que vous souhaitez modifier.
Pour ajouter du CSS personnalisé avec des sélecteurs de données, utilisez cet appel d'API comme référence :
cxone('chat','setCustomCss', '[data-selector="CUSTOMER_MESSAGE_BUBBLE"] {color: white !important; background: black !important};');
-
ACTIVITY_BAR
-
AGENT_MESSAGE
-
AGENT_MESSAGE_BUBBLE
-
AVATAR
-
CONTENT
-
CUSTOMER_MESSAGE
-
CUSTOMER_MESSAGE_BUBBLE
-
DELIMITER
-
DROPDOWN_MENU
-
HEADER
-
INPUT
-
IS_TYPING
-
MESSENGER
-
POPUP
-
PRECONTACT_SURVEY
-
PRECONTACT_SURVEY_DESCRIPTION
-
PRIMARY_BUTTON
-
REPLY_BOX
-
SECONDARY_BUTTON
-
SEND_BUTTON
-
TEXTAREA
-
TEXT_BUTTON
-
WIDGET
-
WINDOW
Appliquez des composants CSS personnalisés à l'aide de l'attribut sélecteur de données (data-selector) uniquement. Ne l’appliquez pas aux sélecteurs de classe ou à d’autres parties du code JavaScript, comme dans cet exemple :
.Widget__Widget___1qQCf { background: red; }
Intégration avec des Applications tierces
Les appels de cette section vous permettent de recevoir des notifications push lorsque certains événements de chat se produisent.
Reconnaître les discussions actives dans la fenêtre de discussion
cxone('chat','getOngoingThreads');
Reconnaître le contact en cours dans la fenêtre de chat
cxone('chat','getOngoingContact');
Recevoir une notification push pour des Événements de chat spécifiques
Utilisez n'importe laquelle des entrées suivantes pour replace 'événement' in the examples below.
-
CaseToRoutingQueueAssignmentChanged
-
PageViewCreated
-
MessageCreated
-
MessageDeliveredToUser
-
MessageDeliveredToEndUser
-
MessageSeenByUser
-
MessageSeenByEndUser
-
MessageReadChanged
-
MessageAddedIntoCase
-
CaseInboxAssigneeChanged
-
CaseCreated
-
CaseStatusChanged
-
SenderTypingStarted
-
SenderTypingEnded
-
MessageNoteCreated
-
ContactRecipientsChanged
Pour recevoir une notification pour un événement de chat :
cxone('chat','onPushUpdate', 'event', callback);
Pour recevoir une notification pour plusieurs événements de chat :
cxone('chat','onPushUpdate', ['event', 'event', 'event'], callback);
Pour recevoir une notification pour tous les événements de chat :
cxone('chat','onAnyPushUpdate', callback);