Tipo de integración
Salida: esta integración envía datos de SalesBot para una herramienta destino especificada en la configuración.
¿Qué hace esta integración?
Esta configuración te permite enviar datos de SalesBot para otras herramientas que cuenten con una URL de entrada de datos. Esta URL debe poder leer y consumir datos enviados en formato JSON.
Observaciones y requisitos
- Tener la URL del otro sistema que recibirá datos en formato JSON;
- En el caso de URLs personalizadas, es importante contar con un desarrollador o entrar en contacto con el soporte de tu otro sistema para comprobar la compatibilidad con la lectura de paquetes de datos que SalesBot envía.
Paso a paso para realizar la integración
- En SalesBot, haz clic en el menu Preferencias;
- En Integración y Desarrolladores. Campo que se deben llenar:
- URL del Webhook: pega la URL de la herramienta que recibirá los datos de SalesBot.
- Al hacer clic en el botón Guardar.
- Si la integración está funcionando correctamente, recibirás una respuesta positiva. De lo contrario, recibirás un mensaje de error indicando qué debes hacer a continuación.
Importante
La notificación de respuesta negativa, indica que la URL de destino no representa un servidor disponible (está incorrecta) o que el servidor de destino no cuenta con un certificado de seguridad, lo cual es necesario para poder ser validado por nuestro webhook. En ambos casos, lo ideal es validar estos puntos con tu desarrollador o soporte de la herramienta que te suministró la URL.
Ejemplo de datos enviados por SalesBot
Los datos se enviarán conforme a la siguiente estructura, que es la de un JSON estándar:
Mensajes:
{
"type": "message",
"data": {
"_id": "S1C8F67A875DD5A35DC94D579D3045F4", // ID Del mensaje
"message_quoted_id": "93B0F2AC50335796A799", // ID del mensaje que se ha citada
"instance_number": "14DEC8FD8714AB3157EEC0A6F7051DDD", // ID de whatsapp en SalesBot
"body": "¡HOLA!", // Contenido
"content": "https://salesbot.es/app/cdn/fichero.jpg", // URL del fichero
"content_metadata": { // Datos del fichero
"size": 1000,
"width": 1000,
"height": 1000,
"pageCount": 2
},
"filename": "nombre_del_fichero.pdf",
"type": "chat", // Tipo del mensaje: image, chat, template, document, vcard, location, audio, call_log, button_response, sticker, ptt, revoked
"fromMe": TRUE or FALSE,
"from": "34900123490", // Ha enviado el mensaje
"to": "349123000456", // Ha recibido el mensaje
"time": 1704295929, // Timestamp en segundos
"timeFormatted": "2024-01-01 10:23:00", // Fecha y hora
"chatId": "34912000456", // Número del el cliente.
"chatName": "Nombre", // Nombre del cliente
"chatImage": "https://whatsapp.xxx", // URL de la imágen del cliente
"isGroup": TRUE o FALSE, // Indica se es un mensaje de un grupo
"isLoading": false, // Si el mensaje ya existe y es un reenvío
"status_sent": 1, // Si se ha enviado
"status_sent_time": 1704295929, // Hora del status
"status_delivered": 0, // Si se ha entregado
"status_delivered_time": 1704295929, // Hora del status
"status_viewed": 0, // Si se ha visualizado
"status_viewed_time": 1704295929 // Hora del status
},
"time": 1704295929,
"instance": "14DEC8FD8714AB3157EEC0A6F7051DDD",
"user": "correo_de_asesor_asignado@site.com",
"product": "whatsapp"
}
Estado de los mensajes:
– Indica el estado del mensaje de salida:
«status_sent»: 1 – Si se ha enviado el mensaje
«status_delivered»: 1 – Si se ha entregado el mensaje
«status_viewed»: 1 – Si se ha visualizado el mensaje
{
"type": "ack",
"data": {
"_id": "DSHH1S9123MSJJ123", // ID Del mensaje
"message_id": "DSHH1S9123MSJJ123@", // ID completo Del mensaje
"message_quoted_id": null, // ID del mensaje que se ha citada
"instance_number": 123456789, // ID de whatsapp en SalesBot
"fromMe": TRUE or FALSE,
"from": "34900123490", // Ha enviado el mensaje
"to": "349123000456", // Ha recibido el mensaje
"time": 1704295929, // Timestamp en segundos
"timeFormatted": "2024-01-01 10:23:00", // Fecha y hora
"chatId": "349123000456", // Número del el cliente.
"status_sent": 1, // Si se ha enviado
"status_sent_time": 1704295929, // Hora del status
"status_delivered": 1, // Si se ha entregado
"status_delivered_time": 1704295929, // Hora del status
"status_viewed": 1, // Si se ha visualizado
"status_viewed_time": 1704295929 // Hora del status
},
"time": 1704295929,
"instance": 123456789
}
Cierre de conversaciones:
{
"type": "closedChat",
"data": {
"whatsapp": "34600123456",
"time": 1705484415,
"timeFormatted": "2024-01-01 10:23:00" // Fecha y hora
},
"time": 1704885319,
"instance": 123456789
}
Transferencia de conversación entre asesores:
{
"type": "transferChat",
"data": {
"whatsapp": "34600123456",
"time": 1705484415,
"timeFormatted": "2024-01-01 10:23:00" // Fecha y hora
"from_user" => "email_del_asesor_anterior@site.com",
"to_user" => "email_del_nuevo_asesor@site.com"
},
"time": 1704885319,
"instance": 123456789
}
Aquí podrás observar un ejemplo completo de JSON que enviamos. Tu desarrollador también puede contemplar ejemplos de paquetes de datos para pruebas directas. Para esto, puedes utilizar algún servicio generador de URLs temporales y que reciban datos, como por ejemplo: Beeceptor.
Estos servicios pueden generar URLs temporales que podrás utilizar en tu Webhook en lugar de la URL final, esto con el fin de que ejecutes la prueba y luego observes el resultado en la página web del servicio generador de URL.
Informaciones adicionales
Atención: hay un límite de 1 Webhooks por cuenta de SalesBot.
El JSON estándar enviado es único e inmutable, siempre enviará toda la información disponible (que se pueden comprobar en la versión completa) incluyendo todos los campos personalizados que se llenaron.
Actualizaciones:
16/01/2024 – Añadido el campo: data->timeFormatted – Fecha y hora formateada.
17/01/2024 – Añadido el campo: user – Correo del asesor asignado a la conversación, ‘null’ para BOT o sin asignar.
17/01/2024 – Añadido el campo: product – Identificador del canal del mensaje: whatsapp, instagram, webchat, messenger, telegram.