Variables d'intégration

En écrivant des expressions, vous pouvez accéder aux variables d'intégration, qui sont des variables de contexte spécifiques aux intégrations (telles que les intégrations de chat en ligne et de téléphone). Toutes les variables d'intégration sont contenues dans l'objet JSON " system_integrations, auquel vous pouvez accéder à l'aide de l'expression suivante :

${system_integrations}

L'objet " system_integrations a la structure suivante :

{
  "channel": {
    "name": "{channel_name}",
    "private": {
      "user": {
        "id": "{user_id}",
        "phone_number": "{phone_number}",
        "name": "{name}"
      }
    }
  },
  "chat": {...},
  "voice_telephony": {...},
  "text_messaging": {...},
  "whatsapp": {...},
  "slack": {...},
  "facebook": {...},
  "teams": {...}
}

channel

Toujours inclus. Cet objet contient des informations générales sur le canal utilisé pour communiquer avec l 'assistant IA.

Propriétés

Les propriétés contenues dans l'objet " private sont traitées comme des variables privées, qui ne sont pas incluses dans les journaux.

Tableau 1. Propriétés de l'objet canal

Nom

Type

Description

channel.name

Chaîne

Le nom du canal en cours d'utilisation. L'une des valeurs suivantes : \n - Web chat \n - Phone \n - WhatsappSMS \n - Slack \n - \n - Facebook Messenger \n - teams

channel.private.user.id

Chaîne

L'identifiant de l'utilisateur qui interagit avec l 'assistant IA via ce canal. Cet identifiant est propre au canal et peut différer de l'identifiant utilisateur utilisé par l'assistant IA à des fins de facturation. Pour plus d'informations, consultez la section « Identifiants d'utilisateur des chaînes ».

channel.private.user.phone_number

Chaîne

Le numéro de téléphone associé à l'utilisateur. Défini par les intégrations téléphone, SMS et WhatsApp

channel.private.user.name

Chaîne

Le nom de l'utilisateur qui interagit avec l 'assistant IA via ce canal. Définie par l'intégration « Microsoft Teams ».

channel.private.user.aadObjectId

Chaîne

L'identifiant d'objet AAD ( Azure ) Active Directory de l'utilisateur qui interagit avec l 'assistant IA via le canal. Définie par l'intégration « Microsoft Teams ».

Exemple de JSON

"channel": {
  {
    "name": "Web chat",
    "private": {
      "user": {
        "id": "anonymous_IBMuid-727c0302-6fd7-4abb-b7ee-f06b4bf30e99"
      }
    }
  }
}

Identifiant de l'utilisateur du canal

La propriété " channel.private.user.id, qui est définie par l'intégration du canal, spécifie un identifiant d'utilisateur pour le client qui est spécifique au canal. La source de cet identifiant dépend du canal :

Tableau 2. Sources de l'identifiant d'utilisateur du canal

Canal

ID de l'utilisateur du canal

Discussion Web

L'identifiant de l'utilisateur défini par l'instance de chat en ligne. Pour plus d'informations, voir Gestion des informations d'identité de l'utilisateur dans le chat Web.

Slack

L'identifiant du membre de Slack (par exemple, " U2147483697).

<

L'identifiant de l'expéditeur Facebook (par exemple, " 4310101122439797).

WhatsApp

Le numéro de téléphone du client.

Téléphone

Le numéro de téléphone du client.

SMS avec Twilio

Le numéro de téléphone du client.

Equipes

L'ID de l'utilisateur Teams (par exemple, " 29:1CV2T75j3QUY-mQCQcIk2...) et fournir le " aadObjectId de l'utilisateur Teams.

chat

Inclus uniquement si l'intégration du chat en ligne est utilisée.

Propriétés

Tableau 3. Propriétés de l'objet « chat »

Nom

Type

Description

browser_info.browser_name

Chaîne

Le nom du navigateur, tel que " chrome, " edge ou " firefox.

browser_info.browser_version

Chaîne

La version du navigateur, par exemple " 109.0.0.

browser_info.browser_OS

Chaîne

Le système d'exploitation de l'ordinateur du client, tel que " Mac OS.

browser_info.language

Chaîne

Code local par défaut du navigateur, tel que " en-US.

browser_info.page_url

Chaîne

Le site URL de la page web dans laquelle le chat web est intégré, à l'exclusion de tout paramètre de requête ou de hachage.

browser_info.screen_resolution

Chaîne

La hauteur et la largeur de la fenêtre du navigateur, par exemple " width: 1440, height: 900.

browser_info.user_agent

Chaîne

Le contenu de l'en-tête de la requête HTTP User-Agent .

browser_info.client_ip_address

Chaîne

L'adresse IP de l'ordinateur du client.

browser_info.ip_address_list

Tableau

Tableau d'annulations des adresses IP spécifiées par les en-têtes de requête HTTP X-Forwarded-For .

Exemple de JSON

"chat": {
  "browser_info": {
    "browser_name": "chrome",
    "browser_version": "109.0.0",
    "browser_OS": "Mac OS",
    "language": "en-US",
    "page_url": "https://us-south.assistant.watson.cloud.ibm.com/crn%3Av1%3Abluemix%3Apublic%3Aconversation%3Aus-south%3Aa%2Fc41400d63d91741a749091dc63574c2c%3Ab696c1e5-7316-4fb0-a61c-664438397e91%3A%3A/assistants/e344fcfe-506c-449f-a182-ebdefe4356ad/actions/actions/custom/edit/action_28584",
    "screen_resolution": "width: 1920, height: 1080",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "client_ip_address": "65.191.135.254",
    "ip_address_list": [
      "65.191.135.254",
      " 104.99.56.143",
      "10.185.27.136",
      "172.30.226.64"
    ]
  }
},
"channel": {
  "name": "Web chat",
  "private": {
    "user": {
      "id": "anonymous_IBMuid-727c0302-6fd7-4abb-b7ee-f06b4bf30e99"
    }
  }
}

Exemples d'expressions

  • Cette expression permet de vérifier si le client utilise le navigateur Chrome :

    ${system_integrations}.chat.browser_info.browser_name.equals("chrome")

Vous pouvez spécifier cette expression comme valeur d'une variable de session booléenne, que vous pouvez ensuite utiliser dans une condition d'étape. Par exemple, si votre site Web ne prend en charge que Chrome, vous pourriez avoir une étape conditionnée par la variable " false et produire le résultat suivant : I see you aren't using the Chrome browser. Some features of our website work only on Chrome.

  • Cette expression vérifie si la page actuelle URL contient la chaîne payment.html:

    ${system_integrations}.chat.browser_info.page_url.contains("payment.html")

Vous pouvez utiliser cette expression dans une condition d'étape afin d'éviter de demander aux clients de naviguer vers une page qu'ils sont déjà en train de consulter. Par exemple, dans une action de paiement d'une facture, vous pourriez avoir une étape conditionnée par la variable " false et avoir la sortie suivante : First, click **Pay bill** to navigate to the bill payment page.

voice_telephony

Inclus uniquement si l'intégration téléphonique est en cours d'utilisation.

L'objet " voice_telephony contient des propriétés de réponse et de demande. Les propriétés de requête sont des valeurs définies par l'intégration téléphonique et fournissent des informations sur l'appel. Les propriétés de réponse sont des valeurs d'entrée que vous pouvez modifier dans vos actions pour envoyer des données d'enregistrement ou pour changer les options de configuration de l'appel.

Propriétés de la requête (définies par l'intégration téléphonique)

Les propriétés contenues dans l'objet " private sont traitées comme des variables privées, qui ne sont pas incluses dans les journaux.

Tableau 4. Demander les propriétés de l'objet voice_telephony

Nom

Type

Description

sip_call_id

Chaîne

L'ID de l'appel SIP associé à l'appel téléphonique.

assistant_phone_number

Chaîne

Le numéro de téléphone associé à l 'assistant IA à la fin de l'appel.

sip_custom_invite_headers

Objet

Tableau défini par l'utilisateur de paires clé/valeur contenant les en-têtes SIP de la requête SIP " INVITE.

private.user_phone_number

Chaîne

Le numéro de téléphone d'où provient l'appel du client.

private.sip_request_uri

Chaîne

L'URI de la requête SIP entrante qui a initié l'appel téléphonique.

private.sip_from_uri

Chaîne

L'URI de l'en-tête " From de la requête SIP.

private.sip_to_uri

Chaîne

L'URI de l'en-tête " To de la requête SIP.

final_utterance_timeout_occurred

Booléen

Réglé sur " true lorsque le délai d'expiration de l'énoncé final a été atteint. Ce délai peut être configuré en envoyant la propriété " final_utterance_timeout_count

post_response_timeout_occurred

Booléen

Réglé sur " true lorsque le délai d'expiration de l'énoncé final a été atteint. Ce délai peut être configuré en envoyant la propriété " post_response_timeout_count

Exemple de requête JSON

"voice_telephony": {
  "private":{
    "user_phone_number":"+18595553456",
    "sip_request_uri":"sips:+18885557777@public.voip.us-east.assistant.watson.cloud.ibm.com",
    "sip_from_uri":"sips:+18565558576@twilio.com",
    "sip_to_uri":"sips:+18885557777@public.voip.us-east.assistant.watson.cloud.ibm.com"
  },
  "sip_call_id": "Aob2-2743-5678-1234",
  "assistant_phone_number":"+18885556789",
  "sip_custom_invite_headers": {
    "custom-header1": "123",
    "custom-header2": "456"
  }
}

Propriétés de réponse (définies par l 'assistant IA)

Tableau 5. Propriétés de réponse de l'objet voice_telephony

Nom

Type

Description

final_utterance_timeout_count

Entier

Le délai (en millisecondes) à respecter avant de recevoir la réponse finale du service Speech to Text. Si aucune réponse finale n'est reçue avant l'expiration du délai, l'intégration téléphonique envoie un message à l 'assistant IA avec la final_utterance_timeout_occurred propriété définie sur true.

post_response_timeout_count

Entier

Le temps (en millisecondes) d'attente d'un nouvel énoncé après la lecture de la dernière réponse. Si aucune réponse n'est reçue avant l'expiration du délai, l'intégration téléphonique envoie un message à l 'assistant IA contenant la post_response_timeout_occurred propriété définie sur true.

cdr_custom_data

Objet

Un objet JSON contenant des paires clé/valeur à stocker dans l'enregistrement CDR pour l'appel. Chaque fois que cet objet est envoyé, son contenu est fusionné avec les données envoyées précédemment au cours de l'appel.

turn_settings.timeout_count

Entier

Le temps (en millisecondes) à respecter pour laisser l'assistant IA terminer le traitement de chaque tour de conversation.

Exemple de réponse JSON

"voice_telephony" : {
  "post_response_timeout_count":10000,
  "final_utterance_timeout_count":30000,
  "turn_settings": {
    "timeout_count": 5000
  },
  "cdr_custom_data" : {
    "custom_data_1": "data 1",
    "custom_data_2": "data 2"
  }
}

text_messaging

Inclus uniquement si l'intégration SMS avec Twilio est utilisée.

Propriétés

Les propriétés contenues dans l'objet " private sont traitées comme des variables privées, qui ne sont pas incluses dans les journaux.

Tableau 6. Propriétés de l'objet text_messaging

Nom

Type

Description

assistant_phone_number

Chaîne

Le numéro de téléphone associé à l 'assistant IA à la fin de la conversation.

private.user_phone_number

Chaîne

Le numéro de téléphone d'où provient le message SMS du client.

Exemple de JSON

"text_messaging": {
  "private":{
    "user_phone_number":"+18595553456"
  },
  "assistant_phone_number":"+18885556789"
}

whatsapp

Inclus uniquement si l'intégration WhatsApp est utilisée.

Propriétés

Les propriétés contenues dans l'objet " private sont traitées comme des variables privées, qui ne sont pas incluses dans les journaux.

Tableau 7. Propriétés de l'objet WhatsApp

Nom

Type

Description

assistant_phone_number

Chaîne

Le numéro de téléphone associé à l 'assistant IA à la fin de la conversation.

private.user_phone_number

Chaîne

Le numéro de téléphone d'où provient le message WhatsApp du client.

Exemple de JSON

"whatsapp": {
  "private":{
    "user_phone_number":"+18595553456"
  },
  "assistant_phone_number":"+18885556789"
}

slack

Inclus uniquement si l'intégration Slack est utilisée.

Propriétés

Tableau 8. Propriétés de l'objet « slack »

Nom

Type

Description

team_id

Chaîne

L'identifiant unique de l'équipe Slack.

channel_id

Chaîne

L'identifiant unique du canal Slack.

Exemple de JSON

"slack": {
  "team_id":"T02F3KE542J",
  "channel_id":"C4K3KTTRD"
}

facebook

Inclus uniquement si l'intégration Facebook est utilisée.

Propriétés

Pas de propriétés supplémentaires.

Exemple de JSON

"facebook": {}

teams

Inclus uniquement si l'intégration d' Microsoft Teams s est activée.

Propriétés

Tableau 9. Propriétés de l'objet « équipes »

Nom

Type

Description

conversation_id

Chaîne

L'identifiant unique de la conversation « Microsoft Teams ».

Exemple de JSON

"teams":{
  "conversation_id":"a:1ATy08jyGkPGy2QdKIrGZL5u_o6fIUVDRKeIZtkIUAkQDC23FC9S97f18i-UNl-eISAfDWqoQeTbregvSE8jK0LNy6h9VssNcN3CsGG9guMiUB0EeSqxnnEFpAVzbkayR"
}