Notions de base relatives au canal
Qu'est-ce qu'un canal ?
Pour exposer vos assistants numériques et vos briques autonomes aux utilisateurs, vous devez configurer des canaux dans Digital Assistant. Les canaux transmettent la discussion entre les utilisateurs sur différentes plates-formes de messagerie et l'assistant numérique et ses différentes briques. Il existe également des canaux pour l'escalade et le test des agents utilisateur.
Types de canal
Vous pouvez créer et gérer les types de canal suivants à partir de la page Canaux, à laquelle vous accédez en cliquant sur Canaux dans le menu de gauche. Il existe un onglet pour chaque type.
Type de canal | Utilisations |
---|---|
Utilisateurs |
|
Intégrations d'agent |
|
Assistant numérique en tant qu'agent |
|
Applications |
|
Système |
|
Acheminement du canal utilisateur
Vous pouvez acheminer chaque canal côté utilisateur vers une version unique d'un assistant numérique ou d'une brique.

Description de l'illustration routing-menu.png
Une seule version d'une brique ou d'un assistant numérique peut être exécutée sur un canal à un moment donné. Lorsque vous créez une version de la brique, vous pouvez arrêter le routage vers l'ancienne version, puis l'affecter à la version mise à jour.
Vous pouvez prendre en charge l'exécution de deux versions d'une brique ou d'un assistant numérique simultanément en créant des canaux distincts pour chacune d'entre elles. Par exemple, les testeurs bêta peuvent accéder à la brique via un canal tandis que les clients continuent de discuter via un canal distinct sans interruption.
Acheminement (ou réacheminement) d'un canal
-
Cliquez sur
pour ouvrir le menu latéral, puis sélectionnez Développement > Canaux > Utilisateurs.
- Cliquez sur l'onglet Utilisateurs et sélectionnez le canal.
- Dans le canal, en regard du champ Acheminer vers, sélectionnez
, puis sélectionnez l'assistant numérique ou la brique vers lequel vous voulez acheminer le canal.
Fonctionnement de l'acheminement du canal utilisateur de l'assistant numérique
Lorsque vous inscrivez une brique auprès d'un assistant numérique, les messages envoyés et reçus sont relayés via les canaux utilisateur de l'assistant numérique. L'acheminement de l'assistant numérique prend le relais, même si la brique dispose d'autres canaux acheminés vers elle.
Par exemple, supposons qu'il existe deux briques, chacune d'entre elles ayant son propre canal Web et enregistrée dans un assistant numérique qui, à son tour, achemine les éléments vers son propre canal Web et vers un canal Facebook. Lorsque les utilisateurs envoient un message à l'assistant numérique via le canal Web de l'assistant numérique, il détermine l'intention et envoie le message à la brique appropriée. Lorsque la brique répond, son message est renvoyé à l'utilisateur via le canal Web de l'assistant numérique, et non via le canal Web de la brique. De même, lorsque l'assistant numérique intercepte un message à partir d'un abonné Facebook, la réponse de la brique à l'utilisateur est renvoyée sur le canal Facebook de l'assistant numérique au lieu du canal Web propre à la brique.
Test de l'affichage pour un canal
Pour voir comment une conversation sera affichée avec un assistant numérique ou une brique individuelle dans un canal utilisateur donné, vous pouvez utiliser le testeur.
-
Ouvrez l'assistant numérique ou la brique que vous voulez tester.
-
En bas du menu de navigation de gauche de l'assistant numérique ou de la brique, cliquez sur
.
-
Dans la liste déroulante Canal, sélectionnez le canal sur lequel vous prévoyez de déployer l'assistant numérique ou la brique.
-
Dans le champ de texte au bas du testeur, entrez un texte de test.
Lorsque vous testez le canal, vous pouvez voir son affichage dans le canal. En outre, en présence de limitations pour ce type de canal qui imposent un affichage de conversation différent de l'affichage habituel, ces limitations sont décrites dans l'onglet Conversations.
Mises à jour de canal sans temps d'inactivité
Vous pouvez réacheminer votre canal d'une brique ou d'un assistant numérique à un autre sans entraîner de temps d'inactivité pour l'utilisateur.
Voici comment configurer cette fonctionnalité :
- Pour un canal acheminé vers un assistant numérique, réalisez les actions suivantes :
- Créez une nouvelle version de l'assistant numérique.
- Dans la nouvelle version de l'assistant numérique, apportez les modifications nécessaires, y compris l'ajout de nouvelles versions de briques existantes.
- Réacheminez le canal vers la nouvelle version de l'assistant numérique.
- Pour un canal acheminé vers une brique individuelle, réalisez les actions suivantes :
- Créez une version de la brique, effectuez les mises à jour souhaitées et publiez la brique.
- Réacheminez le canal vers la nouvelle version de la brique.
Le comportement adopté après le réacheminement du canal est le suivant :
- Si l'utilisateur n'a pas de session ouverte, il obtient le nouvel assistant numérique ou la nouvelle brique lors de son prochain accès au canal.
- Si l'utilisateur a ouvert une session avec l'assistant numérique ou la brique mais qu'il n'est pas au milieu d'un flux dans une brique, la session est actualisée avec l'assistant numérique ou la brique mis à jour.
- Si l'utilisateur est au milieu d'un flux dans une brique lors du réacheminement du canal, il continuera de voir la version précédente de la brique ou de l'assistant numérique. Une fois qu'il a terminé son flux (ce qui se produit quand la transition
return
est appelée dans le flux), la session est mise à jour avec l'assistant numérique ou la brique mis à jour.
Attention :
Si vous mettez à jour un assistant numérique existant (au lieu de créer une nouvelle version de l'assistant numérique, puis d'effectuer le réacheminement vers la nouvelle version), la fonctionnalité sans temps d'inactivité ne s'appliquera pas. Par exemple, si une nouvelle version d'une brique a été ajoutée à l'assistant numérique et qu'un utilisateur est au milieu d'une session avec l'ancienne version de la brique, la session est interrompue et la brique cesse de fonctionner.Formatage en texte enrichi dans les canaux
Vous pouvez utiliser des balises HTML pour formater les messages de brique, même pour les canaux avec un balisage ou un balisage propre à un canal. Lorsque le message est transmis au canal, les balises HTML que vous incluez sont remplacées par le balisage ou le balisage approprié pour ce canal particulier. Cela vous permet d'écrire des messages en un seul endroit pour plusieurs canaux.
Si une balise n'a pas d'équivalent direct dans un canal, l'équivalent le plus proche est utilisé. Par exemple, si le message comporte des balises <h1>Title 1</h1>
et <h2>Title 2</h2>
, celles-ci sont converties en balises *Title 1*
et *Title 2*
lorsqu'elles sont envoyées à un canal Slack.
S'il n'y a pas d'équivalent approximatif pour la balise dans le canal, les balises sont simplement supprimées du message lorsqu'elles sont envoyées au canal.
Style | Balises et attributs HTML |
---|---|
gras |
<strong> ; <b> |
italique | <em> ; <i> |
en-têtes | <h1> ; <h2> ; <h3> |
listes non triées (y compris l'imbrication) | <ul> ; <li> |
listes ordonnées (y compris l'imbrication) | <ol> ; <li> |
texte préformaté | <pre> |
blockquote | <blockquote> |
retour à la ligne | <newline> |
lien hypertexte | <a href=""> Remarque : si votre lien inclut une esperluette ( |
lien d'image | <img> |
tableau | <table> ; <th> ; <tr> ; <td> |
Taille de police | font-size (par exemple, <p style="font-size:large;">Large Font</p> )
|
couleur de police | color (par exemple, <p style="color:red;">Red Font</p> )
|
vidéo | <video controls="" src="link_to_video_source_file"> Remarque : cette balise ne fonctionne que si vous créez un lien direct vers le fichier vidéo, par exemple |
Expiration de session
Pour chaque canal configuré, vous utilisez le champ Expiration de la session pour définir le délai d'expiration des sessions utilisateur inactives. Pour la plupart des types de canal, la valeur par défaut est d'un jour (1 440 minutes). Lorsque la session est arrivée à expiration, la conversation prend fin et un message est envoyé pour en informer l'utilisateur.
De plus, toutes les variables qui ont été définies dans le flux de dialogue d'une brique sont détruites, sauf si la variable a été déclarée en tant que variable de niveau utilisateur. Reportez-vous à Variables de niveau utilisateur dans les flux de dialogue YAML.
Modification de l'invite d'expiration de session
Lorsqu'une session expire, l'utilisateur reçoit une invite contenant un message défini dans la propriété Invite d'erreur de session expirée pour l'assistant numérique ou la brique vers lequel le canal est acheminé. Par défaut, ce message est "Votre session a expiré. Réessayez."
Afin de modifier ce message pour un assistant numérique, procédez comme suit :
-
Cliquez sur
pour ouvrir le menu latéral, sélectionnez Développement > Assistants numériques, puis ouvrez l'assistant numérique.
-
Dans la barre de navigation de gauche de l'assistant numérique, cliquez sur
et sélectionnez l'onglet Configurations.
- Faites défiler la page jusqu'à la section Autres paramètres et mettez à jour la propriété Invite d'erreur de session expirée.
Afin de modifier ce message pour une brique autonome, procédez comme suit :
-
Cliquez sur
pour ouvrir le menu latéral, sélectionnez Développement > Briques, puis ouvrez la brique.
-
Dans la barre de navigation de gauche de la brique, cliquez sur
et sélectionnez l'onglet Configuration.
- Mettez à jour la propriété Invite d'erreur de session expirée.
Réinitialisation des sessions de canal utilisateur
Si nécessaire, vous pouvez interrompre les conversations en cours dans un canal utilisateur en cliquant sur le bouton Réinitialiser les sessions associé.
Attention :
Ce bouton est principalement prévu pour les cas où vous développez la brique ou l'assistant numérique. Si vous l'utilisez pour un canal en cours de production, vous interromprez toutes les conversations utilisateur en cours.Pour accéder au bouton Réinitialiser les sessions, procédez comme suit :
- Cliquez sur
pour ouvrir le menu latéral, sélectionnez Développement > Canaux, puis sélectionnez le canal utilisateur.
Activation ou désactivation de canaux
De temps à autre, vous devrez peut-être désactiver un canal pour effectuer des opérations de maintenance ou de mise à jour de la configuration, puis réactiver le canal.
Pour ce faire, vous pouvez utiliser les commutateurs suivants :
- Canal activé
- Interaction activée (pour les intégrations d'agent).
- Application activée (pour les applications).
La désactivation du canal système, qui prend en charge le testeur de briques, alerte les développeurs que le canal n'est pas disponible.
Pour accéder à ces options, procédez comme suit :
- Cliquez sur
pour ouvrir le menu latéral, sélectionnez Développement > Canaux, puis sélectionnez le canal.
Extensions propres à un canal
En plus des éléments génériques que vous pouvez utiliser dans les flux de dialogue pour qu'ils s'affichent sur plusieurs canaux, vous pouvez également tirer parti des fonctionnalités propres à un type de canal. Vous pouvez le faire via l'élément de métadonnées channelCustomProperties
du composant de réponse commune, qui prend la forme suivante :
...
channelCustomProperties:
- channel: "CHANNEL_NAME" // can be facebook, slack, cortana, twilio, androidsdk, iossdk, websdk, test
properties:
PROPERTY_NAME: "PROPERTY_VALUE"
...
Vous pouvez appliquer la fonction channelCustomProperties
dans les métadonnées du composant au niveau de globalActions
, de responseItems
et des éléments de responseItems
, selon la propriété donnée.
Voici un exemple des propriétés personnalisées définies au niveau de l'élément de réponse et au niveau de la carte :
responseItems:
- type: "cards"
cardLayout: "vertical"
cards:
- title: "${pizzas.name}"
description: "${pizzas.description}"
imageUrl: "${pizzas.image}"
url: "${pizzas.moreInfo}"
iteratorVariable: "pizzas"
channelCustomProperties:
- channel: "facebook"
properties:
webview_height_ratio: "compact"
fallback_url: "https://www.example.com"
channelCustomProperties:
- channel: "facebook"
properties:
top_element_style: "large"
..
L'élément channelCustomProperties
prend un tableau dans lequel chaque entrée spécifie les propriétés d'un canal spécifique. Certaines propriétés personnalisées sont uniquement applicables à un élément de composant de réponse commune spécifique, ou même à un type d'élément de réponse spécifique, comme dans l'exemple ci-dessus, où top_element_style
s'applique uniquement aux éléments de réponse de type cards
.
Vous pouvez également utiliser des expressions FreeMarker pour indiquer la valeur d'une propriété personnalisée de canal.
Voici un exemple dans lequel un sélecteur de date dans Slack est affiché uniquement lorsque le système invite l'utilisateur à sélectionner une date lors de la résolution des dépenses de l'entité de conteneur composite :
responseItems:
- type: "text"
text: "${system.entityToResolve.value.prompt}"
channelCustomProperties:
- channel: "slack"
properties:
showDatePicker: "${system.entityToResolve.value.name=='Date'}"
...
Les propriétés disponibles varient en fonction du canal. Reportez-vous aux rubriques suivantes pour obtenir la liste des propriétés personnalisées disponibles pour chaque canal :
Comparaison des capacités des canaux
Voici une comparaison non exhaustive des canaux et des fonctionnalités qu'ils prennent en charge.
Fonctionnalité | Facebook Messenger | Slack | Microsoft Teams | Cortana | Twilio | Web, iOS et Android |
---|---|---|---|---|---|---|
Texte | Oui | Oui | Oui | Oui | Oui | Oui |
Images | Oui | Oui | Oui | Oui pour l'envoi. Non pour la réception | Prise en charge partielle | Oui |
Fichiers | Oui | Prise en charge partielle pour l'envoi. Oui pour la réception | Oui | Oui pour l'envoi. Non pour la réception | Prise en charge partielle | Oui |
Emojis | Oui | Prise en charge partielle pour l'envoi. Oui pour la réception | Oui | Oui pour l'envoi. Non pour la réception | Prise en charge partielle | Oui |
Localisation | Oui, mais en phase d'abandon | Non | Non | Non | Non | Oui |
Liens | Oui | Oui | Oui | Oui | Oui | Oui |
Postbacks | Oui | Oui | Oui | Non | Prise en charge partielle | Oui |
Demandes de localisation | Oui | Non | Non | Non | Non | Oui |
Extensions | Non | Non | Non | Non | Non | Non |
Propriétés personnalisées | Oui | Oui | Oui | Oui | Prise en charge partielle | Oui |
Carrousel | Oui | Prise en charge partielle | Oui | Oui | Prise en charge partielle | Oui |
Liste | Oui | Oui | Oui | Oui | Prise en charge partielle | Oui |
Tables et formulaires | Non | Oui | Oui (la soumission automatique n'est pas prise en charge) | Non | Non | Oui |
Pour afficher un emoji à partir de votre flux de dialogue, commencez par sa représentation Unicode, remplacez
+
par 000
et ajoutez le préfixe \
au code. Par exemple, pour U+1F600
, saisissez \U0001F600
dans le flux de dialogue. Reportez-vous à https://unicode.org/emoji/charts/full-emoji-list.html pour obtenir la liste des codes Unicode de chaque emoji.
Comparaison des contraintes de message de canal
Voici une comparaison des contraintes sur les messages et les boutons d'action, par canal.
Contraintes de message texte
Contrainte de message texte | Facebook Messenger | Slack | Microsoft Teams et Cortana | Twilio | Web, iOS et Android |
---|---|---|---|---|---|
Longueur maximale du message texte | 640 caractères. Si la longueur est supérieure à 640, le texte est divisé en plusieurs messages. | 3 000 caractères. Si la longueur est supérieure à 3 000, le texte est divisé en plusieurs messages. | Aucune limite. | 1 600 caractères. Si la longueur est supérieure à 1 600, le texte est divisé en plusieurs messages. | Aucune limite. |
Longueur maximale du libellé d'action de texte | 20 caractères | 30 caractères | 1 ligne (environ 50 caractères) | N/A | 128 caractères |
Types d'action de texte autorisés | Postback, appel, URL | Postback, URL | Postback, appel, URL | Postback, appel, URL. Ces types d'action sont convertis en texte. Pour les actions de postback, le libellé sert de mot-clé pouvant être utilisé pour déclencher le postback. | Postback, URL, demande de localisation, appel (si l'appareil est doté de fonctions d'appel) et partage (si la plate-forme le prend en charge) |
Nombre maximal d'actions de texte | S'il existe davantage d'actions de texte, le message est converti en plusieurs cartes horizontales, le même texte étant utilisé en tant que titre sur chacune d'elles. Chaque carte contient jusqu'à 3 actions. | Aucune limite. | Aucune limite. | N/A | S'il existe davantage d'actions de texte, le message est converti en plusieurs cartes horizontales, le même texte étant utilisé en tant que titre sur chacune d'elles. Chaque carte contient jusqu'à 6 actions. |
Messages de carte horizontale
Contrainte de message de carte horizontale | Facebook Messenger | Slack | Microsoft Teams et Cortana | Twilio | Web, iOS et Android |
---|---|---|---|---|---|
Pris en charge ? | Oui | Non. La disposition de la carte est convertie en mode vertical. | Oui | Non, mais des fonctionnalités quasiment équivalentes sont assurées en convertissant certains types d'action en texte. | Oui |
Longueur maximale du titre | 80 caractères | 3 000 caractères | 2 lignes (environ 80 caractères) | N/A | 30 caractères |
Longueur maximale de la description | 80 caractères | 3 000 caractères | 25 000 caractères | N/A | 128 caractères |
Longueur maximale du libellé d'action de carte | 20 caractères | 30 caractères | 1 ligne (environ 50 caractères) | N/A | 25 caractères |
Nombre maximal de cartes | 10 | N/A | 10 | N/A | 10 |
Nombre maximal d'actions de carte | 3. Si le nombre d'actions de carte dépasse 3, la carte est dupliquée pour afficher les actions de carte restantes. | N/A | 6. Si le nombre d'actions de carte dépasse 6, la carte est dupliquée pour afficher les actions de carte restantes. | N/A | 3. Si le nombre d'actions de carte dépasse 3, la carte est dupliquée pour afficher les actions de carte restantes. |
Nombre minimal d'actions de carte | 0 | N/A | 0 | N/A | 1 |
Nombre maximal d'actions de liste de cartes | 0 | N/A | 6 | N/A | -- |
Au moins une description, image ou action requise ? | Oui | N/A | Non | N/A | Non |
Types d'action de carte autorisés | Postback, appel, URL, partage | Postback, URL | Postback, appel, URL | Postback, appel, URL. Ces types d'action sont convertis en texte. Pour les actions de postback, le libellé sert de mot-clé pouvant être utilisé pour déclencher le postback. | Postback, URL |
Types d'action de liste de cartes autorisés | N/A | Postback, URL | Postback, appel, URL | Postback, appel, URL. Ces types d'action sont convertis en texte. Pour les actions de postback, le libellé sert de mot-clé pouvant être utilisé pour déclencher le postback. | Postback, URL |
Messages de carte verticale
Contrainte de message de carte verticale | Facebook Messenger | Slack | Microsoft Teams et Cortana | Twilio | Web, iOS et Android |
---|---|---|---|---|---|
Pris en charge ? | Non | Oui | Oui | Non, mais des fonctionnalités quasiment équivalentes sont assurées en convertissant certains types d'action en texte. | Oui.
Remarque
Pour la version 19.4.1, cette fonctionnalité n'est pas prise en charge. |
Longueur maximale du titre | N/A | 3 000 caractères | 2 lignes (environ 80 caractères) | N/A | 30 caractères |
Longueur maximale de la description | N/A | 3 000 caractères | 25 000 caractères | N/A | 128 caractères |
Longueur maximale du libellé d'action de carte | N/A | 30 caractères | 1 ligne (environ 50 caractères) | N/A | 25 caractères |
Nombre maximal de cartes | N/A | 100 | 10 | N/A | N/A |
Nombre maximal d'actions de carte | N/A | -- | 3 | N/A | N/A |
Nombre minimal d'actions de carte | 0 | 0 | 0 | N/A | N/A |
Nombre maximal d'actions de liste de cartes | 1 | -- | 6 | N/A | N/A |
Au moins une description, image ou action requise ? | Oui | N/A | Non | N/A | Non |
Types d'action de carte autorisés | Postback, appel, URL, partage | Postback, URL | Postback, appel, URL | Postback, appel, URL. Ces types d'action sont convertis en texte. Pour les actions de postback, le libellé sert de mot-clé pouvant être utilisé pour déclencher le postback. | N/A |
Types d'action de liste de cartes autorisés | Postback, appel, URL | Postback, URL | Postback, appel, URL | Postback, appel, URL. Ces types d'action sont convertis en texte. Pour les actions de postback, le libellé sert de mot-clé pouvant être utilisé pour déclencher le postback. | N/A |
Messages de pièce jointe
Contrainte de message de pièce jointe | Facebook Messenger | Slack | Microsoft Teams et Cortana | Twilio | Web, iOS et Android |
---|---|---|---|---|---|
Pris en charge ? | Oui | Oui | Oui | Oui, si MMS est activé | Oui |
Nombre maximal d'actions de pièce jointe | 0 | -- | -- | N/A | -- |
Types d'action autorisés | N/A | Postback, URL | Postback, appel, URL. | Postback, appel, URL. Ces types d'action sont convertis en texte. Pour les actions de postback, le libellé sert de mot-clé pouvant être utilisé pour déclencher le postback. | Postback, URL |
Boutons d'action
Contrainte de bouton d'action | Facebook Messenger | Slack | Microsoft Teams et Cortana | Twilio | Web, iOS et Android |
---|---|---|---|---|---|
Pris en charge ? | Oui | Oui | Oui | Non, mais des fonctionnalités quasiment équivalentes sont assurées en convertissant certains types d'action en texte. | Oui |
Longueur maximale du libellé d'action globale | 20 caractères | 30 caractères | 1 ligne (environ 50 caractères) | N/A | 128 caractères |
Nombre maximal d'actions globales | 11 | -- | 6 | N/A | -- |
Types d'action globale autorisés | Postback, emplacement | Postback, URL | Postback, appel, URL | Postback, appel, URL. Ces types d'action sont convertis en texte. Pour les actions de postback, le libellé sert de mot-clé pouvant être utilisé pour déclencher le postback. | Postback, emplacement |