Personnaliser Guide Chat avec les API
Vous pouvez personnaliser l'apparence et le comportement du chat implémenté avec Guide en utilisant ces API liées au chat.
Appels d'API de Comportement de conversation
Les appels de cette section vous permettent de contrôler le comportement des fenêtres de chat Guide.
Définir le code d'autorisation
Définit un code d'autorisation pour le flux OAuth. OAuth est un protocole d'authentification. Il permet de laisser une application interagir avec une autre à votre place, sans révéler vos mots DE passe. Doit être appelé avant l'initialisation du chat.
cxone('chat','setAuthorizationCode', 'authorization_code');
Personnaliser le message de contact automatisé initial
Lorsqu’un chat 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 masqué et automatisé est envoyé au nom du visiteur lorsque la session de chat démarre. Cela réduit 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 de 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);
Délai de 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 chat est envoyé. Un message masqué et automatisé est envoyé au nom du visiteur lorsque la session de chat démarre. Cela réduit le temps d'attente des visiteurs pour un agent. Les sessions de chat démarrent lorsqu'un visiteur clique sur l'icône de chat pour commencer une conversation. Bien que le message initial soit caché au visiteur, l'agent peut le voir.
Vous pouvez configurer Guide pour attendre le premier message réel du visiteur avant de créer une requête à 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é
Une enquête de satisfaction peut être automatiquement détectée et affichée dans une fenêtre contextuelle. Cela permet de contrôler l'automatisation des enquêtes de satisfaction.
cxone('chat','automatedSatisfactionSurveyModal', false);
Appels d'API d'Informations sur le chat
Ces appels vous permettent de personnaliser les informations disponibles pour les visiteurs lors d'une session de chat.
Obtenir l'ID d'identité du Client
Renvoie l'identificateur unique du visiteur dans le chat.
cxone('chat','getCustomerIdentityId');
Définir l'Id client
Définit un identificateur unique pour le visiteur participant au chat.
cxone('chat','setCustomerId', 'customer_id');
Masquer Nombre de contacts en attente
Le nombre de contacts en attente permet à un visiteur de savoir dans combien de temps un agent pourra l'aider, en fonction de sa position dans la file d'attente de l'agent. Vous pouvez masquer le compteur de file d'attente dès que le visiteur a été transféré à un agent. Cela permet aux agents de supprimer des cartes clients de leur boîte de réception sans que les visiteurs 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 pouvez l'utiliser pour communiquer votre temps de réponse pour une session de chat messaging
Clavardage asynchrone dans lequel les contacts envoient un message clavardage à tout moment et attendent une réponse.. Cela peut être utile car la messagerie instantanée est une forme de discussion 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 discussion. 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. Remplacez l'exemple d'URL par l'URL de l'image que vous souhaitez que le chat utilise.
cxone('chat','setAgentImage', 'http://classics.com/images/agents/elizabeth_bennet.png');
Définir le Nom du client
Nom du client est un champ du formulaire de sondage préalable au contact, que les visiteurs sont tenus de remplir avant de dialoguer avec un agent sur un canal de messagerie de chat
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 date
Définit le format de date sur absolu (01/01/2022) ou relatif (aujourd'hui, Lundi).
cxone('chat','setDateFormat', 'date_format');
Définir les paramètres régionaux
Définit les paramètres régionaux pour les traductions dans la fenêtre de chat.
cxone('chat','setLocale', 'locale');
Afficher les Informations sur le cas
Uniquement pour les canaux de messagerie chat
Clavardage asynchrone dans lequel les contacts envoient un message clavardage à tout moment et attendent une réponse.. Affiche les informations sur le cas au contact.
cxone('chat','showCaseInfo');
Afficher/Masquer le bouton Envoyer la transcription
Si vous rendez le bouton Envoyer transcription visible, vous devez configurer le canal de chat pour permettre aux visiteurs de s'envoyer la transcription du chat à eux-mêmes. Configurez cette option pour messagerie de chat ou chat en direct.
cxone('chat','showSendTranscript');cxone('chat','hideSendTranscript');
Afficher/Masquer les messages Système
Affiche ou masque les messages système, tels que l'historique d'affectation d'un agent.
cxone('chat','showSystemMessages');cxone('chat','hideSystemMessages');
Conditions d'utilisation
Vous pouvez mettre un document de conditions générales à la disposition des visiteurs depuis la fenêtre de discussion. 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 d'API de champ personnalisé ci-dessous, vous devez d'abord créer le champ personnalisé dans NiCE CXone. Créez le champ personnalisé pour un(e) 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 référencerez 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 Chat CXone Digital pour capturer des données de votre page web et les enregistrer 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 chat débute.
Il existe deux méthodes API disponibles, selon l'endroit où vous souhaitez stocker les données du champ personnalisé :
-
setContactCustomField — Stocke la valeur du champ personnalisé sur le Contact, qui représente une interaction ou une conversation unique. Utilisez cette option lorsque les données sont spécifiques à 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, vous pouvez voir apparaître 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 Customer Card, qui représente le profil du contact dans toutes les interactions. Utilisez cette option 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écapitule les méthodes API disponibles pour définir les valeurs des champs personnalisés. Reportez-vous aux exemples de code détaillés sous le tableau pour obtenir des conseils relatifs à l'implémentation.
|
example |
Méthode API |
description |
|---|---|---|
| Définir un champ personnalisé contact unique | setContactCustomField |
Pour renseigner un champ Cas à la fois. |
| Définir plusieurs champs personnalisés de contact à la fois | ```
setContactCustomFields
```
|
Mise à jour groupée efficace de plusieurs champs de cas. |
| Définir un seul champ personnalisé Customer Card | setCustomerCustomField
|
Pour les champs de profil Customer Card. |
| Définir Multiple champs personnalisés Customer Card à la fois | 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 des champs personnalisés peuvent être définies de deux façons :
Statistique — La valeur est codée en dur directement dans l'Appel API. Cela 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 chat.
-
Pour définir la valeur du champ personnalisé contact unique
cxone('chat','setContactCustomField', 'pagesource', 'Contact Us Page'); -
To définir la valeur de plusieurs champs personnalisés de contact
cxone('chat','setContactCustomFields', { customFieldIdent: 'value', secondCustomFieldIdent: 'value' } ); -
Pour définir la valeur du champ unique Customer Card
cxone('chat','setCustomerCustomField', 'email', 'leia@starwars.com'); -
Pour définir la valeur de plus que 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 de pré-contact pour recueillir des informations auprès des visiteurs avant le début du chat, vous n'avez pas besoin d'utiliser ces méthodes API pour capturer les mêmes données. Les champs du formulaire de pré-contact sont automatiquement sauvegardés dans le dossier et dans la fiche client comme 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.
Add the custom field API calls to the same script block where the Guide widget is embedded on your webpage. Place the API calls just above the closing </script> tag, after the widget initialization code. For example:
<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 sur l'emplacement des appels de personnalisation, consultez Personnaliser Guide à l'aide de JavaScript.
Personnaliser les Étiquettes et les Phrases
Vous pouvez personnaliser de nombreuses étiquettes et phrases que le chat Guide utilise, ainsi que définir les personnalisations à appliquer. Si vous devez modifier dynamiquement les phrases ou les libellés d'écran, utilisez ces appels d'API.
Pour modifier un seul message ou libellé :
cxone('chat','setTranslation', 'key', 'your translation');
Pour modifier plusieurs messages ou libellés :
cxone('chat','setTranslations', {key1: 'your custom label', key2: 'your custom message'});
Les accolades entourent des 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 discussion du contact.
|
|
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. |
|
commencerBouton |
Commencez le chat ! |
| Annuler | Annuler |
| numéro de dossier | Cas #{caseNumber} |
| Monnaie | Modifier |
| bavardé avec | Vous venez de discuter avec |
| CommonErrorText | Une erreur inattendue s'est produite. Veuillez réessayer ultérieurement. |
| Terminé | Terminé |
| dragAndDropDropzone | Faire glisser et déposer les fichiers ici pour les envoyer |
| dragAndDropDropzoneRejeté | Impossible de télécharger le fichier :( |
| E-mailLibellé | Courriel |
| finChat | Quitter la conversation |
| finChatTitre | Êtes-vous sûr de vouloir mettre fin à cette conversation ? |
| fin du jeu | Fin du jeu |
| fin | Fin de la discussion... |
| Échec de l'envoi du fichier | L'envoi du fichier a échoué |
| getTranscriptDescription | Envoyez la transcription de cette conversation à l'adresse e-mail suivante : |
| getTranscriptLink | Obtenir la transcription du clavardage |
| jeton invalide | Jeton invalide |
| ipAdresseBloqué | L'adresse IP est bloquée |
| Chargement en cours | Chargement en cours... |
| loadPrécédentBouton | Charger les conversations précédentes |
| messageLibellé | Message |
| networkErrorText | Une erreur réseau s'est produite. réessayez. |
| nouveau cas | 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 e-mail a été envoyé avec succès. Nous vous recontacterons bientôt. |
| En ligne | En ligne |
| en ligneFormulaireTexte | Pour démarrer une discussion, veuillez nous indiquer votre nom. Un de nos agents commencera à vous aider immédiatement. |
| Veuillez sélectionner | Veuillez sélectionner... |
| Alimenté par | Alimenté par |
| préparationSession | Séance de préparation... |
| replyBoxPlaceholder | Écrivez ici, appuyez sur <enter> pour envoyer |
| Réessayez | Nouvelle tentative |
| envoyerTailleTexteFichier | Veuillez télécharger des fichiers plus petits que {filesize} |
| sendFileTextFormat pris en charge | formats pris en charge. |
| sendFileTextSupportedFormatDesc | Images, vidéos, {fileFormats} |
| sendMessageButton | Envoyer le message |
| envoyerNouveauEmail | Envoyer un nouvel e-mail |
| envoyer la transcription | Envoyer la transcription |
| serpentEn attente | Vous êtes {queue} en file d’attente. |
| startChatInPopup | Demandez nous! |
| startNewChat | Démarrer une nouvelle conversation |
| statutReconnexion | Essayant de se connecter... |
| sondageEnvoyé avec succès | Merci pour vos commentaires ! |
| systèmeDiscuterAvec | Vous discutez maintenant avec {name} |
| Sujet | Sujet |
| TransciperEnvoyéÉchec | Echec de l'envoi. |
| transciperEnvoyé avec succès | Transcription envoyée avec succès ! |
| TryAgainBouton | Réessayez |
| Erreur inattendue | Erreur inattendue. |
| validationInvalidEmail | L'adresse courriel n'est pas valide. |
| validationObligatoire | Ce champ est obligatoire |
| validationNom plus court | Veuillez utiliser un nom plus court |
| validationShortMessage | Votre message est trop court |
| En attente | En attente... |
| en attenteDescription | Un de nos agents vous parlera sous peu. |
| en attentePied de page | Appuyez sur <spacebar> pour réduire l'attente. |
| En attente de l'agent | En attente de l'agent... |
| En attente dans la file d'attente | En attente de l'agent. Vous êtes {queue} en file d’attente. |
| nous sommes hors ligne | Nous sommes actuellement hors ligne. |
| nous sommes en ligne | Nous sommes en ligne |
| votreÉtiquetteNom | Votre nom |
Appels API relatifs à l'apparence de la fenêtre de Conversation
Vous pouvez modifier l'apparence de la fenêtre de discussion 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 discussion 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 discussion à laquelle vous souhaitez appliquer le CSS personnalisé. Définissez le sélecteur de données à l'aide de l'attribut data-selector. Définissez-le avec le nom du composant de fenêtre de chat que vous souhaitez modifier.
Pour ajouter du CSS personnalisé avec des sélecteurs de données, utilisez cet Appel 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 en utilisant uniquement le data-selector attribut. Ne l'appliquez pas aux sélecteurs de classe ou autres éléments 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 l'une des entrées suivantes pour remplacer « événement » dans les exemples ci-dessous.
-
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 plus qu'un événement de chat :
cxone('chat','onPushUpdate', ['event', 'event', 'event'], callback);
Pour recevoir une notification pour tous les événements de chat :
cxone('chat','onAnyPushUpdate', callback);