Question
Je veux modifier le comportement natif du Web Widget (Classique) en utilisant les API Javascript. J'ai parcouru le Centre d'aide et j'ai trouvé de nombreuses implémentations différentes. Comment combiner ces différents workflows API du Web Widget (Classique) ?
Réponse
La chose la plus importante à savoir est quand vous voulez appliquer les paramètres de votre widget. Certains workflows doivent être exécutés chaque fois qu'un service est mis à jour, d'autres lors de la première connexion ou reconnexion du widget. Cela est illustré par cet exemple simplifié de configuration du service CRM :
<script id="ze-snippet"
src="https://static.zdassets.com/ekr/snippet.js?key=ACCOUNT_KEY"> </script>
<script>
// first hide the widget on page load
zE('webWidget', 'hide');
// whenever an unread message appears unhide and open the widget
zE('webWidget:on', 'chat:unreadMessages', function(number) {
zE('webWidget', 'show');
zE('webWidget', 'open');
});
// this callback runs whenever chat first connects (or reconnects)
zE('webWidget:on', 'chat:connected', function() {
// put any code you only want run once here
});
// this callback runs whenever a department status changes
zE('webWidget:on', 'chat:departmentStatus', function(dept) {
// only set the widget online for chat if this department was online
if (dept.name === 'CRM' && dept.status === 'online') {
// apply the chat widget settings
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
departments: {
enabled: [''],
select: 'CRM'
},
suppress: false
}
}
});
} else if (dept.name === 'CRM' && dept.status !== 'online') {
// or suppress chat (optional: apply contact form settings here)
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
suppress: true
}
}
});
}
});
</script>
Il y a un certain nombre de choses dans le script ci-dessus qui méritent d'être discutées. Tout d'abord, les étapes initiales consistant à masquer le widget puis à l'afficher à la réception d'un message non lu peuvent être omises sans modifier le reste des fonctionnalités du script. Comme ils sont utilisés dès le chargement du widget, ils ont été placés en haut du script. Ce n'est pas strictement nécessaire.
Ensuite, il est intéressant de noter que si certains workflows personnalisés placent un bloc API updateSettings dans un rappel chat:connected , vous pouvez également le placer dans un chat:departmentStatus, et il sera également appliqué quand le widget se connecte (ou se reconnecte) pour la première fois après une session interrompue). Pour cette raison, utilisez le chat:connected
API spécifiquement pour les commandes que vous ne souhaitez exécuter qu'une seule fois, et l'API chat:departmentStatus
API pour les commandes que vous souhaitez exécuter chaque fois que le service spécifié change après le chargement de la page.
Pour en savoir plus sur les différents workflows de l'API du Web Widget (Classique) , consultez ces articles :
- Puis-je configurer le Web Widget (Classique) pour présenter Chat sur ma page Web uniquement quand un service spécifique est en ligne ?
- Puis-je réappliquer le service après la reconnexion d'un visiteur de chat ayant expiré ?
- Comment m'assurer que le formulaire pré-chat est présenté au visiteur s'il expire mais se reconnecte ?
Traduction - exonération : cet article a été traduit par un logiciel de traduction automatisée pour permettre une compréhension élémentaire de son contenu. Des efforts raisonnables ont été faits pour fournir une traduction correcte, mais Zendesk ne garantit pas l’exactitude de la traduction.
Si vous avez des questions quant à l’exactitude des informations contenues dans l’article traduit, consultez la version anglaise de l’article, qui représente la version officielle.
0 commentaire