Ajouter l'automatisation avec Dialogflow

Dialogflow est un outil de compréhension du langage naturel (NLU) qui traite les entrées utilisateur, les mappe aux intents connus et répond avec les réponses appropriées. Il existe deux éditions de Dialogflow. En intégrant votre agent Business Messages à Dialogflow ES, vous pouvez facilement créer une automatisation simple pour démarrer le développement de votre agent. En intégrant Dialogflow CX, vous pouvez créer une automatisation avancée pour des conversations plus complexes.

Les agents Business Messages sont compatibles avec les intégrations directes avec

Pour intégrer un agent Business Messages à d'autres fonctionnalités de Dialogflow ES ou Dialogflow CX, consultez la documentation de chaque produit.

Lorsqu'un utilisateur envoie un message à un agent intégrant Dialogflow, Business Messages le transmet à Dialogflow et envoie la réponse de Dialogflow à l'agent dans l'objet dialogflowResponse du message. Vous pouvez configurer des agents pour qu'ils envoient automatiquement la réponse de Dialogflow à l'utilisateur, sans aucune action de votre part. Pour en savoir plus, consultez la section Réponses automatiques.

Intégration de Dialogflow

Avant de pouvoir exploiter l'automatisation basée sur Dialogflow via Business Messages, vous devez activer l'intégration Dialogflow.

Conditions préalables

Pour commencer, vous devez

  • Agent Business Messages
  • Agent Dialogflow de la région Global dont la langue racine est l'anglais (en)

Si vous n'avez pas d'agent Dialogflow, créez-en un.

Dialogflow ES

Avant d'activer une intégration Dialogflow ES, vous avez besoin de l'ID de projet de votre agent Dialogflow. Pour trouver l'ID du projet,

  1. Accédez à la console Dialogflow.
  2. Sélectionnez l'agent Dialogflow que vous souhaitez connecter à Business Messages, puis cliquez sur l'icône en forme de roue dentée à côté du nom de l'agent.
  3. Sous Google Project (Projet Google), notez la valeur de Project ID (ID du projet).

Dialogflow CX

Avant d'activer une intégration Dialogflow CX, vous avez besoin de l'ID de projet et de l'agent de votre agent Dialogflow. Pour trouver ces ID,

  1. Accédez à la console Dialogflow CX.
  2. Sélectionnez votre projet Dialogflow.
  3. Dans le sélecteur d'agent, cliquez sur le menu à développer à côté de votre agent Dialogflow.
  4. Cliquez sur Copier le nom. Cette commande copie le nom complet de votre agent au format suivant : projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID.
  5. Notez l'ID du projet et l'ID de l'agent.

Activer l'intégration

  1. Dans la console développeur de Business Communications, accédez à Intégrations.
  2. Dans Dialogflow, cliquez sur Enable integration (Activer l'intégration).
  3. Cliquez sur Connecter un modèle existant.
  4. Pour l'édition Dialogflow, sélectionnez l'édition à activer.
  5. Saisissez l'ID de projet de votre agent Dialogflow.
  6. Pour activer Dialogflow CX, saisissez également l'ID de l'agent Dialogflow.
  7. Si vous souhaitez que Business Messages réponde automatiquement aux utilisateurs avec des réponses Dialogflow, sélectionnez Activer la réponse automatique.
  8. Cliquez sur Suivant.
  9. Copiez l'adresse e-mail du compte de service. Ce compte connecte vos agents Business Messages et Dialogflow.
  10. Dans Google Cloud Console, sélectionnez votre projet Dialogflow.
  11. Accédez aux autorisations IAM.
  12. Cliquez sur Ajouter, puis saisissez l'adresse e-mail du compte de service pour Nouveaux comptes principaux.
  13. Dans Select a role (Sélectionner un rôle), sélectionnez Dialogflow Console Agent Editor (Éditeur d'agent de la console Dialogflow).
  14. Cliquez sur Ajouter un autre rôle et sélectionnez Client de l'API Dialogflow.
  15. Cliquez sur Enregistrer.
  16. Dans la Business Communications Developer Console, cliquez sur Suivant.
  17. Cliquez sur Démarrer l'intégration.

La connexion de Business Messages à Dialogflow prend environ deux minutes.

Mettre à jour l'intégration

  1. Dans la console développeur de Business Communications, accédez à Intégrations.
  2. Cliquez sur l'icône en forme de roue dentée à côté de Dialogflow.
  3. Activez ou désactivez l'option Activer la réponse automatique, selon que vous souhaitez ou non que Business Messages réponde automatiquement aux utilisateurs avec des réponses Dialogflow.

Changer d'édition Dialogflow

Un agent Business Messages ne peut accepter qu'une intégration Dialogflow à la fois. Pour passer d'une édition Dialogflow à une autre, vous devez désactiver l'intégration actuelle avant d'activer la nouvelle.

Désactiver l'intégration

  1. Dans la console développeur de Business Communications, accédez à Intégrations.
  2. Cliquez sur l'icône en forme de roue dentée à côté de Dialogflow.
  3. Cliquez sur Désactiver l'intégration.
  4. Cliquez sur Désactiver.

La désactivation d'une intégration Dialogflow existante prend environ une minute.

Activez une nouvelle intégration Dialogflow en suivant ces étapes.

Correspondance d'intent

Une fois l'intégration Dialogflow activée pour un agent Business Messages, celui-ci peut utiliser les intents configurés de votre projet Dialogflow pour comprendre les questions des utilisateurs et y répondre sans avoir à écrire de code. Pour en savoir plus sur les intents, consultez la documentation sur Dialogflow ES et Dialogflow CX.

Configurez vos intents Dialogflow pour chaque option de conversation que vous souhaitez proposer via l'automatisation. Les agents Business Messages s'appuient sur Dialogflow pour comprendre les messages des utilisateurs.

Lorsque vous appelez les API Dialogflow, Business Messages transmet la charge utile des messages de l'utilisateur à vos intents et à votre webhook de fulfillment. Lorsqu'un message utilisateur est mis en correspondance avec un intent, vous pouvez accéder à cette charge utile au format Struct dans le champ business_messages_payload dans QueryParameters.

La charge utile contient tous les champs du message utilisateur, à l'exception de DialogflowResponse.

Pour Dialogflow CX, Business Messages transmet également à vos intents un paramètre de session nommé channel, avec la valeur google_business_messages. Vous pouvez le référencer dans votre agent au format suivant : $session.params.channel.

Ce paramètre permet d'ajouter des conditions à vos fulfillments Dialogflow afin d'accepter plusieurs canaux dans le même agent Dialogflow.

Pour en savoir plus sur les paramètres de requête, consultez les documentations de référence Dialogflow ES et Dialogflow CX.

Conditions préalables

Lorsque vous créez des modèles de NLU dans Dialogflow, vous pouvez configurer différents types de réponses pour un intent. Business Messages est compatible avec la réponse par défaut, qui peut inclure les éléments suivants:

  • Texte
  • Charge utile personnalisée
  • Transfert de l'agent en direct (Dialogflow CX uniquement)

Une charge utile personnalisée doit correspondre à un objet de réponse de message JSON Business Messages valide. Lorsque vous configurez des réponses de charge utile personnalisée pour un intent, Business Messages ignore les champs suivants:

  • name
  • messageId
  • representative

Consultez les exemples de réponses suivants.

Texte avec suggestions

{
  "text": "Hello World!",
  "fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
  "suggestions": [
    {
      "reply": {
        "text": "Hello",
        "postbackData": "hello-formal"
      }
    },
    {
      "reply": {
        "text": "Hi!",
        "postbackData": "hello-informal"
      }
    }
  ]
}

Carte enrichie

{
  "fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
  "richCard": {
    "standaloneCard": {
      "cardContent": {
        "title": "Hello, world!",
        "description": "Sent with Business Messages.",
        "media": {
          "height": "TALL",
          "contentInfo":{
            "altText": "Google logo",
            "fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
            "forceRefresh": "false"
          }
        },
        "suggestions": [
          {
            "reply": {
              "text": "Suggestion #1",
              "postbackData": "suggestion_1"
            }
          },
          {
            "reply": {
              "text": "Suggestion #2",
              "postbackData": "suggestion_2"
            }
          }
        ]
      }
    }
  }
}
{
  "fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
  "richCard": {
    "carouselCard": {
      "cardWidth": "MEDIUM",
      "cardContents": [
        {
          "title": "Card #1",
          "description": "The description for card #1",
          "suggestions": [
            {
              "reply": {
                "text": "Card #1",
                "postbackData": "card_1"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/cute-dog.jpg",
              "forceRefresh": false
            }
          }
        },
        {
          "title": "Card #2",
          "description": "The description for card #2",
          "suggestions": [
            {
              "reply": {
                "text": "Card #2",
                "postbackData": "card_2"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/elephant.jpg",
              "forceRefresh": false
            }
          }
        }
      ]
    }
  }
}

Transfert à un agent humain

{
  "metadata": {}
}

Questions fréquentes sur les bots

Après avoir activé une intégration Dialogflow ES pour un agent Business Messages, vous pouvez créer un bot de questions fréquentes. Lorsque vous fournissez des questions et des réponses sous forme de document de connaissances compatible, Business Messages et Dialogflow créent l'infrastructure nécessaire pour comprendre les questions des utilisateurs et y répondre sans avoir à écrire de code.

Pour voir un bot de questions fréquentes en action, discutez avec le bot de la FAQ Business Messages.

Conditions préalables

Avant de créer un bot de questions fréquentes, vous devez disposer de vos questions et réponses sous forme de document de connaissances (maximum 50 Mo): un fichier HTML accessible au public ou un fichier CSV.

Généralement, les documents de base de connaissances

  • Peut inclure un balisage Markdown limité dans les réponses, comme spécifié dans le texte enrichi.
  • Leur taille ne doit pas dépasser 50 Mo.
  • Ne doit pas dépasser 2 000 paires de questions/réponses.
  • N'acceptez pas les questions en double avec des réponses différentes.

Pour les fichiers HTML,

  • Les fichiers provenant d'URL publiques doivent avoir été explorés par le plug-in d'indexation de recherche Google, de sorte qu'ils existent dans l'index de recherche. Vous pouvez vérifier cela à l'aide de la Google Search Console. Notez que l'indexeur ne maintient pas votre contenu à jour. Vous devez explicitement mettre à jour votre document lorsque le contenu source est modifié.
  • Dialogflow supprime les balises HTML du contenu lors de la création des réponses. De ce fait, il est préférable d'éviter les balises HTML et d'utiliser du texte brut dans la mesure du possible.
  • Les fichiers comportant une seule paire question/réponse ne sont pas acceptés.

Pour les fichiers CSV,

  • Les fichiers doivent comporter des questions dans la première colonne et des réponses dans la seconde, sans en-tête.
  • Les fichiers doivent utiliser des virgules comme délimiteurs.

Créer un bot de questions fréquentes

  1. Dans la console développeur de Business Communications, accédez à Intégrations.
  2. Sous Base de connaissances (questions fréquentes), cliquez sur Créer une base de connaissances.
  3. Saisissez un nom pour la base de connaissances, puis cliquez sur Suivant.
  4. Sélectionnez un type MIME.
  5. Ajoutez un document de base de connaissances.
    • Si vous avez choisi HTML pour Type MIME, saisissez l'URL accessible au public de votre FAQ dans le champ URL.
    • Si vous avez choisi CSV pour Type MIME, cliquez sur Importer et sélectionnez votre fichier CSV.
  6. Cliquez sur Ajouter et terminer.

Pour ajouter des documents supplémentaires à un bot de questions fréquentes, cliquez sur le bouton Ajouter des documents.

Une fois que vous avez suivi ces étapes, Business Messages inclut l'objet dialogflowResponse dans les messages utilisateur qu'il envoie à votre agent. Si vous activez la réponse automatique, Business Messages répond à l'utilisateur avec la paire question/réponse ayant le score matchConfidence le plus élevé par rapport au message de l'utilisateur.

Réponses automatiques

Si vous activez la réponse automatique lors de l'intégration de Dialogflow, Business Messages répond automatiquement à l'utilisateur via Dialogflow. Votre agent Business Messages répond avec le niveau de confiance le plus élevé. Avec une intégration Dialogflow ES, s'il existe des correspondances à la fois avec une réponse aux questions fréquentes et un intent personnalisé, Business Messages répond avec la correspondance dont le niveau de confiance est le plus élevé.

Business Messages marque tous les messages auxquels une réponse automatique a été envoyée comme provenant de BOT représentants. Si votre agent est compatible avec les agents en direct, Business Messages suspend les réponses automatiques après REPRESENTATIVE_JOINED événements et les réactive après REPRESENTATIVE_LEFT événements. Consultez la page Passer d'un bot à un agent en direct.

Répondre automatiquement avec une réponse aux questions fréquentes

Avec une intégration Dialogflow ES, si une réponse aux questions fréquentes présente le niveau de confiance le plus élevé, Business Messages associe la réponse à un SMS. Si une réponse associée, mais différente, est disponible, le message affiche une suggestion "Afficher une autre réponse". Si ce n'est pas le cas, le message inclut une question et une suggestion de réponse demandant si le message répond à la demande de l'utilisateur.

Répondre automatiquement avec une réponse d'intent

Les réponses d'intent peuvent inclure une ou plusieurs des réponses suivantes.

Si une réponse d'intent présente le niveau de confiance le plus élevé, les éléments suivants s'appliquent.

  • Si la réponse contient au moins une valeur Text, Business Messages la met en correspondance avec un SMS.
  • Si la réponse comporte au moins une charge utile personnalisée avec une structure d'objets JSON Business Messages valide, Business Messages crée un message à l'aide de l'objet JSON fourni.
  • Si la réponse contient au moins une réponse de transfert en direct, consultez la section Répondre automatiquement avec une requête d'agent en direct.

Étant donné que Dialogflow peut inclure plusieurs réponses dans une même correspondance d'intent, Business Messages envoie chaque réponse textuelle, charge utile personnalisée ou transfert d'agent en direct sous la forme d'un message distinct. Si l'intent contient plusieurs messages, mais que certains d'entre eux sont incorrects, Business Messages n'envoie que les messages valides en tant que réponses automatiques.

Répondre automatiquement avec une requête d'agent en direct

Dialogflow CX accepte la réponse de transfert d'agent en direct. Il indique que la conversation doit être transférée à un représentant humain et vous permet de transmettre des métadonnées personnalisées pour votre procédure de transfert. Si une réponse d'intent a le niveau de confiance le plus élevé et qu'elle inclut un transfert d'agent en direct, Business Messages envoie un événement demandé par l'agent en direct à votre webhook. Pour gérer cet événement, consultez la page Passer d'un bot à un agent en direct.

Répondre automatiquement avec un message de remplacement

Si Dialogflow n'obtient pas de correspondance de niveau de confiance élevé, Business Messages envoie une réponse de remplacement. Les remplacements sont gérés différemment dans Dialogflow ES et Dialogflow CX.

Dialogflow ES

S'il n'y a pas de réponse à la FAQ, Business Messages envoie un message de remplacement indiquant qu'il n'a pas trouvé de réponse.

Pour les intents configurés, en l'absence de correspondance avec une réponse d'intent, Business Messages envoie une réponse d'intent de remplacement. Vous pouvez utiliser le texte de remplacement fourni par Dialogflow, ou configurer la création de remplacement avec du texte supplémentaire et des charges utiles personnalisées.

Voici un exemple de réponse d'intent de remplacement que votre webhook peut recevoir:

{
  "intentResponses": [
    {
      "intentName": "projects/df-integration/agent/intents/12345",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "1.0",
      "fulfillmentMessages": [
        {
          "text": "One more time?"
        }
      ]
    }
  ]
}

Dialogflow préremplit intent_name et intent_display_name.

Dialogflow CX

Dialogflow CX gère les réponses d'intent de remplacement comme des événements intégrés. En l'absence de correspondance à une réponse d'intent, Business Messages envoie un message de remplacement à partir de l'événement par défaut "Aucune correspondance" dans Dialogflow. Vous pouvez utiliser le texte de remplacement fourni par Dialogflow, ou le configurer avec du texte supplémentaire, des charges utiles personnalisées et des options de transfert d'agent en direct.

Voici un exemple de réponse d'intent de remplacement que votre webhook peut recevoir:

{
  "intentResponses": [
    {
      "intentName": "sys.no-match-default",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "0.3",
      "fulfillmentMessages": [
        {
          "text": "I missed that, say that again?"
        }
      ]
    }
  ]
}

Les messages Business Codes intent_name et intent_display_name sont codés en dur.

Champs spécifiques à Dialogflow

Une fois l'intégration Dialogflow activée, les messages utilisateur que l'agent reçoit incluent l'objet dialogflowResponse. Votre webhook reçoit des charges utiles pour tous les messages utilisateur, que Business Messages réponde automatiquement ou non au message en votre nom. Pour rechercher une réponse automatique, consultez la valeur du champ autoResponded et déterminez si vous devez répondre à l'utilisateur.

Dialogflow ES

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
    }],
  "faqResponse": {
    "userQuestion": "USER_QUESTION",
    "answers": [{
      "faqQuestion": "FAQ_QUESTION",
      "faqAnswer": "FAQ_ANSWER",
      "matchConfidenceLevel": "CONFIDENCE_LEVEL",
      "matchConfidence": "CONFIDENCE_NUMERIC",
    }],
  },
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Champ Description
queryText Texte de requête de conversation d'origine. Si la correction automatique de l'orthographe est activée pour le modèle Dialogflow, queryText contient l'entrée utilisateur corrigée.
intentName Identifiant unique de l'intent correspondant.
intentDisplayName Nom de l'intent correspondant.
intentDetectionConfidence Indice de confiance numérique dans la correspondance entre queryText et intentName.
text Réponse textuelle.
jsonPayload Réponse de charge utile personnalisée. Cette chaîne correspond à la charge utile personnalisée définie dans Dialogflow. Si la charge utile ne comporte pas d'objet JSON Business Messages valide, error décrit le problème.
error Description d'une erreur avec un message de traitement d'intent.
userQuestion Question posée par l'utilisateur, telle qu'elle est analysée par Dialogflow.
faqQuestion Une question de Dialogflow correspond à la question de l'utilisateur.
faqAnswer Réponse de Dialogflow correspondant à la question de l'utilisateur.
matchConfidenceLevel Niveau de confiance de la correspondance entre userQuestion et faqQuestion.
matchConfidence Indice de confiance numérique dans la correspondance entre userQuestion et faqQuestion.
autoResponded Indique si Business Messages a automatiquement répondu à l'utilisateur avec une réponse de Dialogflow.
message Charge utile de la réponse automatique.
responseSource Source de la réponse automatique. Consultez ResponseSource.

Dialogflow CX

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
      "liveAgentHandoff": {
        "metadata": {}
      }
    }],
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
Champ Description
queryText Texte de requête de conversation d'origine. Si la correction automatique de l'orthographe est activée pour le modèle Dialogflow, queryText contient l'entrée utilisateur corrigée.
intentName Identifiant unique de l'intent correspondant.
intentDisplayName Nom de l'intent correspondant.
intentDetectionConfidence Indice de confiance numérique dans la correspondance entre queryText et intentName.
text Réponse textuelle.
jsonPayload Réponse de charge utile personnalisée. Cette chaîne correspond à la charge utile personnalisée définie dans Dialogflow. Si la charge utile ne comporte pas d'objet JSON Business Messages valide, error décrit le problème.
error Description d'une erreur avec un message de traitement d'intent.
liveAgentHandoff Métadonnées personnalisées pour la procédure de transfert de votre agent en direct.
autoResponded Indique si Business Messages a automatiquement répondu à l'utilisateur avec une réponse de Dialogflow.
message Charge utile de la réponse automatique.
responseSource Source de la réponse automatique. Consultez ResponseSource.