Definición de respuestas mediante el editor JSON
En algunas situaciones, puede que necesite definir las respuestas de su asistente utilizando el editor JSON. Para más información, consulte Añadir respuestas del asistente.
Para editar una respuesta utilizando el editor JSON, haga clic en el icono Cambiar al editor JSON '
en el campo Asistente dice. El editor JSON muestra cómo se define la respuesta de modo subyacente y se envía al canal.
Formato JSON genérico
Si abre el editor JSON en una nueva respuesta vacía, verá la estructura básica siguiente:
{
"generic": []
}
La propiedad ' generic ' define un array de respuestas que se envían al canal cuando se ejecuta el paso. El término genérico se refiere al hecho de que estas respuestas se definen utilizando un formato JSON genérico que no es específico de ningún canal. Este formato puede dar cabida a varios tipos de respuesta soportados por varias integraciones y también puede ser implementado por una aplicación cliente personalizada que utilice la API REST.
La matriz generic de un paso puede contener varias respuestas y cada respuesta tiene un tipo de respuesta. Un paso básico que envía una respuesta de texto simple suele incluir una única respuesta con el tipo de respuesta text. Sin embargo, hay muchos otros tipos de respuesta disponibles, que admiten contenidos multimedia e interactivos, además del control sobre el comportamiento de algunas integraciones de canales.
Aunque el formato " generic " puede enviarse a cualquier integración de canales, no todos los canales admiten todos los tipos de respuesta, por lo que una respuesta concreta podría ser ignorada o tratada de forma diferente por algunos canales. Para obtener más información, consulte Compatibilidad de la integración de canales con los tipos de respuesta.
En tiempo de ejecución, la salida con varias respuestas podría dividirse en varias cargas útiles de mensajes. La integración del canal envía estos mensajes al canal en secuencia, pero es responsabilidad del canal entregar estos mensajes al usuario; esto puede verse afectado por problemas de la red o del servidor.
Adición de respuestas
Para especificar una respuesta en el editor JSON, inserte los objetos JSON adecuados en el campo generic de la respuesta del paso. El siguiente ejemplo muestra la salida con dos respuestas de distinto tipo (texto y una imagen):
{
"generic":[
{
"response_type": "text",
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "This is a text response."
}
]
}
}
]
},
{
"response_type": "image",
"source": "https://example.com/image.jpg",
"title": "Example image",
"description": "This is an image response."
}
]
}
Para más información, consulte Tipos de respuesta.
Definición de destino de integraciones específicas
Si tiene previsto desplegar el asistente en varios canales, es posible que desee enviar diferentes respuestas a distintas integraciones en función de las prestaciones de cada canal. La propiedad channels del objeto de respuesta genérico proporciona una forma de hacerlo.
Este mecanismo es útil si su flujo de conversación no cambia en función de la integración en uso, y si no puede saber de antemano a qué integración se envía la respuesta en tiempo de ejecución. Utilizando channels, puede definir un único paso que dé soporte a todas las integraciones, sin dejar de personalizar la salida de cada canal. Por ejemplo, es posible que quiera personalizar el formato de texto, o incluso enviar distintos tipos de respuesta, en función de las compatibilidades del canal.
El uso de " channels " es útil junto con el tipo de respuesta " channel_transfer ". Dado que la salida del mensaje es procesada tanto por el canal que inicia el ' transfer como por el canal de destino, puedes utilizar ' channels ' para definir respuestas que sean procesadas por uno u otro.
Para especificar las integraciones a las que se orienta una respuesta, incluya la matriz channels opcional como parte del objeto de respuesta. Todos los tipos de respuestas admiten la matriz channels. Este array contiene uno o más objetos utilizando la siguiente sintaxis:
{
"channel": "<channel_name>"
}
El valor de <channel_name> puede ser cualquiera de las series siguientes:
chat: conversación webvoice_telephony: teléfonotext_messaging: SMSslack: Slackfacebook: Facebook Messengerwhatsapp: WhatsApp
En el ejemplo siguiente se muestra una salida de paso que contiene dos respuestas: una destinada a la integración de conversación web y otra destinada a las integraciones de Slack y Facebook.
{
"generic": [
{
"response_type": "text",
"channels": [
{
"channel": "chat"
}
],
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "This output is intended for the <strong>web chat</strong>."
}
]
}
}
]
},
{
"response_type": "text",
"channels": [
{
"channel": "slack"
},
{
"channel": "facebook"
}
],
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "This output is intended for either Slack or Facebook."
}
]
}
}
]
}
]
}
Si aparece la matriz channels, esta debe contener, al menos, un objeto de canal. Las integraciones no recogidas en la lista ignoran la respuesta. Si la matriz channels no aparece, todas las integraciones manejan la respuesta.
Tipos de respuesta
Puede configurar diferentes tipos de respuestas utilizando JSON. Para obtener más información sobre los tipos de respuesta y las integraciones admitidas para los tipos de respuesta JSON, consulte Referencia de tipos de respuesta.