Artículos sobre: Integraciones
Este artículo también está disponible en:

Integración por Webhooks

Integración por Webhook: WhatsApp → CRM y sus otros sistemas



Comparta éste artículo con su desarrollador o use Zapier para integrar su sistema con WhatsApp

Configuración



TimelinesAI permite notificar a un sistema externo, cuando se recibe o envía un nuevo mensaje a cualquier cuenta de WhatsApp conectada en un espacio de trabajo. Esto incluye los mensajes de WhatsApp enviados a través de la aplicación móvil de WhatsApp y/o desde TimelinesAI.

Suele ocurrir que dicha integración se utiliza a través de algún servicio intermediario como Zapier, donde cada activación de un webhook cuenta para la utilización de la cuota de tareas.

Para hacer que el uso de la cuota de tareas sea más eficiente, TimelinesAI brinda la posibilidad de agregar múltiples mensajes enviados o recibidos, en un chat específico, durante el período de tiempo seleccionado. Los mensajes son enviados a través del webhook como un solo «paquete». Para su conveniencia, dicho «paquete» contiene un campo con el agregado de mensajes con formato previo (y un enlace a la sección en conversaciones en TimelinesAI), pero puede implementar su propio formato, utilizando los datos proporcionados con el webhook.

Paquete de Mensajes Enviados a través de un Webhook

Para Configurar la Integración Mediante Outbound Webhooks:


Navegue a la sección «Integrations» dentro de su espacio de trabajo en TimelinesAI
Seleccione la pestaña «Webhooks»



Se le presentarán los siguientes ajustes:

Aggregation Granularity: Los mensajes se agregarán y enviarán mediante el webhook según la selección (cada 1, 6, 12, 24 horas) o se enviarán tan pronto como aparezcan en TimelinesAI («Don't aggregate»)
Webhook URL: Aquí debe ingresar la URL que debe notificarse.
Webhook enabled: Puede deshabilitar el webhook aquí, si desea detener la integración.

Una vez que se habilita un Webhook y se envían algunos mensajes, se mostrará un registro de actividad (hasta 10 acciones más recientes).

Nota: De momento, solo se admiten mensajes de texto y emojis. Se omitirán los mensajes que contengan archivos adjuntos.

Errores y Solución de Problemas



Para garantizar el correcto funcionamiento de la integración, si se encuentran más de 10 errores consecutivos del extremo receptor (cualquier error; desde una URL no válida hasta un código de respuesta que no es 200), el sistema deshabilitará automáticamente la integración. En tal caso, el dueño del espacio de trabajo recibirá una notificación por correo electrónico.

En caso de que necesite solucionar un error, puede descargar un registro detallado (el enlace estará disponible en la parte inferior de la página), donde se mostrarán hasta 100 solicitudes más recientes, con todos los detalles de los datos enviados y la respuesta que se recibió.

Formato de Datos



Los datos se enviarán a la URL de un Webhook mediante solicitud HTTP POST, en formato JSON. Los datos se proporcionan en 2 formatos diferentes, según la configuración de granularidad de agregación («Aggregation Granularity»), como se describe a continuación.

Agregado Cada X Horas


Los mensajes se agregarán en un «paquete». Estarán disponibles los siguientes datos:

“whatsapp account”: Los detalles de la cuenta de WhatsApp (y el miembro del equipo del espacio de trabajo que conectó la cuenta), a través de la cual se recibió o envió el mensaje
"phone": El número de teléfono de la cuenta de WhatsApp
"full_name": El nombre completo del propietario de la cuenta de WhatsApp, tal como está registrado en TimelinesAI
"email": El correo electrónico del propietario de la cuenta de WhatsApp, tal como se registró en TimelinesAI
“chat”: Los detalles del chat (directo o grupal), en el que se envió o recibió el mensaje
"full_name": El nombre del chat (como aparece en TimelinesAI)
“responsible_name”: El nombre de un miembro del equipo, asignado como responsable de este chat
“responsible_email”: El correo electrónico de un miembro del equipo, asignado como responsable de este chat
“chat_url”: La URL en la que se puede acceder al chat en la interfaz de TimelinesAI
"chat_id": La ID del chat en la interfaz de TimelinesAI (se puede usar para construir la URL del chat o con la API Pública)
"is_new_chat": Verdadero; si este chat se acaba de crear. De lo contrario; Falso
"is_group": Verdadero; si este chat es un chat directo. De lo contrario; Falso
“phone”: Número de teléfono del chat (vacío para chat grupal)
"messages": Una lista de mensajes, donde cada objeto de mensaje contiene los siguientes campos:
“direction”: Puede ser «recibido» o «enviado»
"timestamp": Marca de tiempo de un mensaje, en la zona horaria UTC
“message_id”: ID único interno del mensaje
"sender": Detalles de un remitente (participante del chat) de un mensaje
→ “full_name”: Título de un chat o nombre de un miembro del equipo en TimelinesAI (si se envía desde dentro de TimelinesAI)
→ “phone”: Número de teléfono del remitente (o vacío para chat grupal)
"recipient": Detalles de un remitente (participante del chat) de un mensaje
→ "full_name": Título de un chat o nombre de un miembro del equipo en TimelinesAI
→ “phone”: Número de teléfono del destinatario (o vacío para chat grupal)
“text”: Texto del mensaje (texto sin formato)
“first_message_timestamp”: Marca de tiempo del primer mensaje del paquete, en la zona horaria UTC
“last_message_timestamp”: Marca de tiempo del mensaje más reciente en el paquete, en la zona horaria UTC
"aggregation": Texto agregado del mensaje, en formato HTML, adecuado para usar con CRM o sistemas similares, como contenido para notas, incluyendo el enlace directo al primer mensaje en TimelinesAI.

Ejemplo


{

    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97254000000"
    },
    "messages" :
    [
        {
            "direction": "sent", 
            "timestamp": "2021-02-24T16:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum"
        },
        {
            "direction": "received", 
            "timestamp": "2021-02-24T16:30:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum"
        }
    ],
    "first_message_timestamp" : "2021-02-24T16:25:29+0000",
    "last_message_timestamp" : "2021-02-24T16:30:29+0000",
    "aggregation":
        "from John Doe on 2021-02-24 16:25: Hi! How are you?<br/>from Jane Smith on 2021-02-24 16:30: I am fine, how are you?<br/>Click <a href='https://app.timelines.ai/permalink/77a28d55-5345-5435-8c72-3a7bcad8ded9/'>here</h> to open the conversation in TimelinesAI"
}


No Agregar


Cada mensaje se envía individualmente, tan pronto como esté disponible. No se lleva a cabo ningún «empaquetado». Estarán disponibles los siguientes datos:

“whatsapp account”: Los detalles de la cuenta de WhatsApp (y el miembro del equipo del espacio de trabajo que conectó la cuenta), a través de la cual se recibió o envió el mensaje
"phone": El número de teléfono de la cuenta de WhatsApp
"full_name": El nombre completo del propietario de la cuenta de WhatsApp, tal como está registrado en TimelinesAI
"email": El correo electrónico del propietario de la cuenta de WhatsApp, tal como se registró en TimelinesAI
“chat”: Los detalles del chat (directo o grupal), en el que se envió o recibió el mensaje
"full_name": El nombre del chat (como aparece en TimelinesAI)
“responsible_name”: El nombre de un miembro del equipo, asignado como responsable de este chat
“responsible_email”: El correo electrónico de un miembro del equipo, asignado como responsable de este chat
“chat_url”: La URL en la que se puede acceder al chat en la interfaz de Timelines
"chat_id": La ID del chat en la interfaz de TimelinesAI (se puede usar para construir la URL del chat o con inbound webhooks)
"is_new_chat": Verdadero; si este chat se acaba de crear. De lo contrario; Falso
"is_group": Verdadero; si este chat es un chat directo. De lo contrario; Falso
“phone”: Número de teléfono del chat (vacío para chat grupal)
"message": Los detalles del mensaje
“direction”: Puede ser «recibido» o «enviado»
"timestamp": Marca de tiempo de un mensaje, en la zona horaria UTC
“message_id”: ID único interno del mensaje
"sender": Detalles de un remitente (participante del chat) de un mensaje
→ “full_name”: Título de un chat o nombre de un miembro del equipo en TimelinesAI (si se envía desde dentro de TimelinesAI)
→ “phone”: Número de teléfono del remitente (o vacío para chat grupal)
"recipient": Detalles de un remitente (participante del chat) de un mensaje
→ "full_name": Título de un chat o nombre de un miembro del equipo en TimelinesAI
→ “phone”: Número de teléfono del destinatario (o vacío para chat grupal)
“text”: Texto del mensaje (texto sin formato)

Ejemplo


{
    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97251111111"
    },
    "message" :
       {
            "direction": "sent", 
            "timestamp": "2021-02-24T06:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },           
            "text": "lorem ipsum"
       } 
}

Actualizado el: 06/05/2024

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!