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
  • Configurez l'utilisateur Oracle B2C Service ou Oracle Fusion Service. La brique communique avec le service par le biais de cet utilisateur. La section Création d'un canal d'intégration d'agent fournit des détails de configuration pour les composants de service et d'agent dans le flux de dialogue.

  • Activez ou désactivez l'intégration d'agent.

Assistant numérique en tant qu'agent
  • Intégrez un assistant numérique avec Oracle B2C Service ou Oracle Fusion Service, où ce dernier agit en tant qu'agent automatisé intégré à l'instance de service.

Applications
  • Configurez le canal d'application via lequel une application externe envoie des notifications à une brique, afin de pouvoir déclencher une conversation. La section Implémentation de conversations lancées par l'application décrit le processus de configuration de la brique pour répondre aux notifications.

  • Activez ou désactivez l'envoi de cette notification (et, par conséquent, empêchez la conversation lancée par la brique) pour l'application.

Système
  • Activez ou désactivez la discussion dans le testeur de briques pour tous les développeurs de briques.

  • Réinitialisez les sessions de discussion pour tous les développeurs de briques.

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'image routing-menu.png
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

  1. Cliquez sur icône permettant d'ouvrir le menu latéral pour ouvrir le menu latéral, puis sélectionnez Développement > Canaux > Utilisateurs.

  2. Cliquez sur l'onglet Utilisateurs et sélectionnez le canal.
  3. Dans le canal, en regard du champ Acheminer vers, sélectionnez icône de la liste déroulante Acheminer vers..., 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.

  1. Ouvrez l'assistant numérique ou la brique que vous voulez tester.

  2. En bas du menu de navigation de gauche de l'assistant numérique ou de la brique, cliquez sur icône du testeur.

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

  4. 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 :
    1. Créez une nouvelle version de l'assistant numérique.
    2. Dans la nouvelle version de l'assistant numérique, apportez les modifications nécessaires, y compris l'ajout de nouvelles versions de briques existantes.
    3. 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 :
    1. Créez une version de la brique, effectuez les mises à jour souhaitées et publiez la brique.
    2. 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 (&), veillez à l'encoder à l'aide de &amp; pour vous assurer que les balises sont analysées correctement.

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 .mp4. Cela ne fonctionne pas pour les liens YouTube.

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 :

  1. Cliquez sur icône permettant d'ouvrir le menu latéral pour ouvrir le menu latéral, sélectionnez Développement > Assistants numériques, puis ouvrez l'assistant numérique.

  2. Dans la barre de navigation de gauche de l'assistant numérique, cliquez sur icône Paramètres et sélectionnez l'onglet Configurations.

  3. 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 :

  1. Cliquez sur icône permettant d'ouvrir le menu latéral pour ouvrir le menu latéral, sélectionnez Développement > Briques, puis ouvrez la brique.

  2. Dans la barre de navigation de gauche de la brique, cliquez sur icône Paramètres et sélectionnez l'onglet Configuration.

  3. 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 icône permettant d'ouvrir le menu latéral 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 icône permettant d'ouvrir le menu latéral 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
Remarque

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