Solicitud Externa te permite integrar tu bot con cualquier sistema que tenga una API. Puede utilizar solicitudes externas para obtener datos de cualquier otro sistema y mostrar los datos al usuario dentro de su Chatbot.
¿Cómo utilizar la solicitud externa?
En el generador de flujo, agregue Comportamiento >Solicitud de API externa.
¿Cómo guardar datos en un campo personalizado?
Puedes usar Mapeo de respuesta para guardar datos de API en un Campo personalizado Si la API devuelve datos en formato JSON. Muchas veces es posible que desee obtener datos de una API y mostrarlos al usuario.
Por ejemplo, usaremos una API de cambio de moneda para mostrar cómo se pueden guardar los datos devueltos por una API en un campo personalizado. A continuación se muestra la respuesta de la API.
{
«éxito»: cierto,
«marca de tiempo»: 1519296206,
«base»: «EUR»,
«fecha»: «2021-03-17»,
«tarifas»: {
«AUD»: 1,566015,
«CAD»: 1,560132,
«CHF»: 1,154727,
«CNY»: 7,827874,
«GBP»: 0,882047,
«JPY»: 132,360679,
«USD»: 1,23396
}
}
Si queremos mostrar el valor en USD, deberá utilizar tarifas USD, le recomendamos que pruebe su Solicitud, copie la respuesta y utilice esta servicio para obtener el JSONPath correcto. Además, puede utilizar este servicio para comprobar si su JSONPath es correcto. No es necesario iniciar su JSONPathX.
Hay dos formas de mostrar los datos devueltos por una API al usuario dentro de su bot. Puede guardar los datos en un campo personalizado usando el mapeo de respuesta y usar el campo personalizado en su flujo para mostrar los datos al usuario. Además, su API podría devolver mensajes listos para mostrarse al usuario final dentro de su bot (Contenidos dinámicos). Los contenidos dinámicos se explican a continuación en este artículo.
¿Cómo obtener el código de estado HTTP o el cuerpo completo de la respuesta?
En el mapeo de respuesta, use http código estado para obtener el código de respuesta y utilizar http respuesta cuerpo para obtener todo el cuerpo de respuesta. Una vez que guarde el código de estado HTTP en un campo personalizado, puede usar condiciones para realizar la lógica que desee. Para descargar un archivo, utilice http download EXTENSION Por ejemplo, para descargar audio, puedes usar http descargar mp3.
Contenido dinámico
Los contenidos dinámicos le permiten generar contenido desde su servidor y mostrarlo al usuario dentro de su Chatbot. El contenido dinámico es compatible con todos los canales. Utiliza un formato único que funciona en todos los canales. Nuestra plataforma convierte automáticamente su mensaje en tiempo real y lo entrega al usuario.
No puede utilizar la función Contenido dinámico si no posee la API de la que está obteniendo datos. En este caso, puede guardar datos de la API en un campo personalizado usando Mapeo de respuesta y muestre los datos utilizando el campo personalizado en el generador de flujo.
El formato de respuesta se encuentra a continuación.
{
«mensajes»: [],
«acciones»: []
}
Mensajes: contiene mensajes que se envían a los contactos. Puedes enviar cualquier mensaje compatible con Messenger Bots. Este artículo muestra algunos ejemplos de formato, pero puedes leer documentación de facebook si necesita más capacidades.
Botky envía un encabezado ‘X-ID DE USUARIO’ en cada Solicitud.
respuestas rápidas siempre es opcional.
Enviar un mensaje de texto.
{
«mensajes»: [
{
«mensaje»: {
«texto»: «Hola mundo»,
«respuestas rápidas»:[]
}
}
]
}
Enviar más de un solo mensaje
{
«mensajes»: [
{
«mensaje»: {
«texto»: «Hola mundo»
}
},
{
«mensaje»: {
«text»: «Este es el segundo Mensaje»,
«respuestas rápidas»:[]
}
}
]
}
Envío de un mensaje de texto con botones.
El mensaje de texto puede contener hasta 3 botones. El título de cada botón puede contener hasta 20 caracteres. Para enviar un flujo cuando un usuario hace clic en un botón, utilice un ID de flujo como carga útil del botón.
{
«mensajes»: [
{
«mensaje»: {
«adjunto»: {
«carga útil»: {
«botones»: [
{
«title»: «Abrir sitio web»,
«tipo»: «web_url»,
«url»: «tu_URL»
},
{
«title»: «Enviar flujo»,
«carga útil»: «FLOW_OR_STEP_ID»,
«tipo»: «devolución de datos»
},
{
«título»: «Número de llamada»,
«tipo»: «número telefónico»,
«carga útil»: «<tu número de teléfono con código de condado>»
}
],
«template_type»: «botón»,
«texto»: «Hola mundo»
},
«tipo»: «plantilla»
},
«respuestas rápidas»:[]
}
}
]
}
Carga útil: puedes usar cualquiera ID de flujo/paso como carga útil. Por ejemplo, si desea redirigir a un flujo una vez que el usuario hace clic en el botón, puede usar el ID del flujo como carga útil. En este artículo, mostramos cómo utilizar comportamiento como cargas útiles también.
Enviar un mensaje con respuestas rápidas
Se pueden agregar respuestas rápidas a cualquier tipo de mensaje (texto, archivo, galería, archivo,…). Facebook te permite adjuntar un máximo de 11 respuestas rápidas a un mensaje. La carga útil de las respuestas rápidas es la misma que la de los botones.
{
«mensajes»: [
{
«mensaje»: {
«texto»: «Hola mundo»,
«respuestas rápidas»:[
{
«tipo _contenido»: «texto»,
«title»: «Respuesta rápida 1»,
«carga útil»: «FLOW_OR_STEP_ID»
},
{
«tipo _contenido»: «texto»,
«title»: «Cualquier texto aquí»,
«carga útil»: «FLOW_OR_STEP_ID»
}
]
}
}
]
}
Las cargas útiles de respuestas rápidas y botones tienen la misma estructura.
Enviar una imagen, vídeo, audio, archivo.
Puede utilizar la misma estructura a continuación para enviar una imagen, video, audio y archivo. Simplemente cambie media type a video, audio o archivo. «URL» será el enlace a su imagen, audio, video o archivo.
{
«mensajes»: [
{
«mensaje»: {
«adjunto»: {
«tipo»: «imagen»,
«carga útil»: {
«url»: «<ASSET_URL>»
}
},
«respuestas rápidas»:[]
}
}
]
}
Enviar una sola tarjeta
El título y subtítulo de la tarjeta puede tener hasta 80 caracteres.
{
«mensajes»: [
{
«mensaje»: {
«adjunto»: {
«carga útil»: {
«elementos»: [
{
«title»: «Título de la tarjeta»,
«subtitle»: «Subtítulo de la tarjeta»,
«image url»: «imagen url»
}
],
«template_type»: «genérico»
},
«tipo»: «plantilla»
},
«respuestas rápidas»:[]
}
}
]
}
Enviar una sola Tarjeta con botones
Una tarjeta puede contener hasta 3 botones.
{
«mensajes»: [
{
«mensaje»: {
«adjunto»: {
«carga útil»: {
«elementos»: [
{
«title»: «Título de la tarjeta»,
«subtitle»: «Subtítulo de la tarjeta»,
«image_url»: «image_url»,
«botones»: [
{
«title»: «Etiqueta del botón»,
«tipo»: «web_url»,
«url»: «tu_URL»
},
{
«title»: «Etiqueta del botón»,
«carga útil»: «FLOW_OR_STEP_ID»,
«tipo»: «devolución de datos»
},
{
«title»: «Etiqueta del botón»,
«tipo»: «número telefónico»,
«carga útil»: «+tu número de teléfono»
}
]
}
],
«template_type»: «genérico»
},
«tipo»: «plantilla»
},
«respuestas rápidas»:[]
}
}
]
}
Enviar una galería
Básicamente, una galería es un juego de cartas. Una galería puede contener hasta 10 tarjetas. El siguiente código muestra una galería con 2 tarjetas. También puedes agregar un botón a cada tarjeta.
{
«mensajes»: [
{
«mensaje»: {
«adjunto»: {
«carga útil»: {
«elementos»: [
{
«title»: «Título de la tarjeta 1»,
«subtitle»: «Tarjeta Subtítulo 1»,
«image_url»: «image_url 1»,
«botones»: []
},
{
«title»: «Título de la tarjeta 2»,
«subtitle»: «Tarjeta Subtítulo 2»,
«image_url»: «image_url 2»,
«botones»: []
}
],
«template_type»: «genérico»
},
«tipo»: «plantilla»
},
«respuestas rápidas»:[]
}
}
]
}
Enviar mensajes soportados sólo por WhatsApp
WhatsApp admite muchos tipos de mensajes que no son compatibles con los robots de Messenger, como mensajes de listas, contactos, ubicaciones o catálogos Botky te permite enviar cualquier mensaje soportado por WhatsApp. Sólo necesita proporcionar la misma estructura de mensaje descrita en el documentación whatsapp.Botky configurará automáticamente el “A”parámetro.
{
«mensajes»:[
{
«messaging_product»: «whatsapp»,
«recipient_type»: «individual»,
«a»: nulo,
«tipo»: «interactivo»,
«interactivo»: {
«tipo»: «botón»,
«cuerpo»: {
«texto»: «CUALQUIER TEXTO»
},
«acción»: {
«botones»: [
{
«tipo»: «respuesta»,
«responder»: {
«id»: «FLOW_OR_STEP_ID»,
«título»: «BUTTON TITLE_1»
}
},
{
«tipo»: «respuesta»,
«responder»: {
«id»: «FLOW_OR_STEP_ID»,
«título»: «BUTTON TITLE 2»
}
}
]
}
}
}
]
}
Comportamiento: es opcional incluir este campo. Puede utilizar acciones para agregar/eliminar etiquetas, configurar/desconfigurar campos personalizados y enviar un flujo…
Añadir etiqueta
{
«mensajes»: [],
«acciones»: [
{
«acción»: «add tag»,
«nombre etiqueta»: «…»
}
]
}
Remover etiqueta
{
«mensajes»: [],
«acciones»: [
{
«acción»: «eliminar etiqueta»,
«nombre_etiqueta»: «…»
}
]
}
Establecer campo personalizado
Además de aceptar cualquier nombre de campo personalizado, esta acción también le permite cambiar campos del sistema como teléfono,correo electrónico, nombre completo, nombre, apellido
{
«mensajes»: [],
«acciones»: [
{
«acción»: «set field_value»,
«nombre del campo»: «…»,
«valor»: «»
}
]
}
Desarmar campo personalizado
{
«mensajes»: [],
«acciones»: [
{
«acción»: «unset_field_value»,
«nombre del campo»: «…»
}
]
}
Enviar flujo
Para obtener el ID del flujo, debe ir a la lista de flujos, hacer clic en los 3 puntos y hacer clic enlace. El ID de flujo es el número incluido en su enlace. El ID de flujo es siempre numérico. Puedes combinar un número ilimitado de acciones.
{
«mensajes»: [],
«acciones»: [
{
«acción»: «enviar flujo»,
«flujo _id»: «…»
}
]
}
Transferir conversación a humano/bot
{
«mensajes»: [],
«acciones»: [
{
«acción»: «transferir conversación a»,
«valor»: «humano»
}
]
}
Combina múltiples acciones
Puede combinar varias acciones en una sola solicitud para permitirle ejecutar varias simultáneamente. Por ejemplo, es posible que desee configurar un campo personalizado y enviar un flujo en una sola solicitud.
{
«mensajes»: [],
«acciones»: [
{
«acción»: «set field_value»,
«nombre del campo»: «…»,
«valor»: «»
},
{
«acción»: «enviar flujo»,
«flujo _id»: «…»
}
]
}
Utilice acciones como una carga útil de botones y respuestas rápidas
A continuación se muestra el formato para utilizar una acción como carga útil en los botones. Pero como una carga útil es una cadena, debes convertir tu objeto de acciones en una cadena JSON. Si está utilizando PHP, utilice json encode para obtener una representación de cadena de su objeto.
{
«acciones»: [
{
«acción»: «enviar flujo»,
«flujo _id»: «…»
}
]
}
A continuación, la acción anterior se utiliza como carga útil del botón.
{
«mensajes»: [
{
«mensaje»: {
«adjunto»: {
«carga útil»: {
«botones»: [
{
«título»: «Haga clic aquí»,
«payload»: «{\»actions\»:[{\»action\»:\»send_flow\»,\»flow_id\»:\»FLOW_OR_STEP_ID\» } ]}»,
«tipo»: «devolución de datos»
}
],
«template_type»: «botón»,
«texto»: «Hola mundo»
},
«tipo»: «plantilla»
},
«respuestas rápidas»:[]
}
}
]
}