Webhooks en Waclis
Los webhooks son devoluciones de llamada HTTP que te permiten recibir notificaciones en tiempo real cada vez que ocurre un evento en tu cuenta de Waclis. Puedes configurar múltiples webhooks para escuchar eventos específicos, como la creación de mensajes, cambios en las conversaciones o actualizaciones de estado. Estos webhooks son ideales para integraciones avanzadas, como sincronizar datos con tus sistemas internos.
En este tutorial aprenderás cómo agregar, configurar y usar webhooks en Waclis.
Cómo agregar un webhook
1. Accede a la configuración de Webhooks
-
Ve a Ajustes > Integraciones > Webhooks.
-
Haz clic en el botón Configurar.
2. Crear un nuevo webhook
-
Haz clic en el botón Agregar nuevo webhook.
-
En la ventana emergente:
-
Ingresa la URL del endpoint donde deseas recibir las notificaciones.
-
Selecciona los eventos a los que deseas suscribirte, asegurándote de elegir solo los relevantes para tu caso de uso.
-
-
Haz clic en Crear para guardar la configuración.
Ejemplo de carga útil de un webhook
Cuando un evento seleccionado ocurre, Waclis enviará una solicitud POST a la URL configurada con una carga útil que incluye detalles sobre el evento. Aquí tienes un ejemplo básico:
{
"event": "message_created",
"id": "1",
"content": "Hi",
"created_at": "2020-03-03 13:05:57 UTC",
"message_type": "incoming",
"content_type": "text",
"content_attributes": {},
"source_id": "",
"sender": {
"id": "1",
"name": "Agent",
"email": "agent@example.com"
},
"contact": {
"id": "1",
"name": "contact-name"
},
"conversation": {
"display_id": "1",
"additional_attributes": {
"browser": {
"device_name": "Macbook",
"browser_name": "Chrome",
"platform_name": "Macintosh",
"browser_version": "80.0.3987.122",
"platform_version": "10.15.2"
},
"referer": "http://www.waclis.com",
"initiated_at": "Tue Mar 03 2020 18:37:38 GMT-0700"
}
},
"account": {
"id": "1",
"name": "Waclis"
}
}
Eventos de webhook admitidos en Waclis
Waclis admite varios eventos para webhooks. A continuación se listan los más comunes:
1. conversación_creada
-
Se activa cuando se crea una nueva conversación en tu cuenta.
-
Ejemplo de carga útil:
jsonCopiar código{ "event": "conversation_created", // <...Conversation Attributes> }
2. conversación_actualizada
-
Se activa cuando se modifica cualquier atributo de una conversación.
-
Ejemplo de carga útil:
jsonCopiar código{ "event": "conversation_updated", "changed_attributes": { "status": { "current_value": "resolved", "previous_value": "open" } }, // <...Conversation Attributes> }
3. estado de la conversación cambiado
- Se activa cuando el estado de una conversación cambia (por ejemplo, de "pendiente" a "resuelta").
4. mensaje_creado
-
Se activa cuando se crea un nuevo mensaje en una conversación.
-
Ejemplo de carga útil:
jsonCopiar código{ "event": "message_created", // <...Message Attributes> }
5. mensaje_actualizado
- Se activa cuando se actualiza un mensaje existente.
6. webwidget_activado
-
Se activa cuando un usuario final abre el widget de chat en vivo.
-
Ejemplo de carga útil:
jsonCopiar código{ "event": "webwidget_triggered", "source_id": "string", "event_info": { "initiated_at": { "timestamp": "date-string" }, "referer": "string", "browser": { "browser_name": "Chrome", "device_name": "Macbook" } } }
Objetos en la carga útil
La carga útil del webhook puede incluir los siguientes objetos:
-
Cuenta:
jsonCopiar código{ "id": "1", "name": "Waclis" }
-
Bandeja de entrada:
jsonCopiar código{ "id": "1", "name": "Support Inbox" }
-
Contacto:
jsonCopiar código{ "id": "1", "name": "John Doe", "email": "john@example.com" }
-
Usuario:
jsonCopiar código{ "id": "1", "name": "Agent Name", "email": "agent@example.com" }
-
Conversación:
jsonCopiar código{ "id": "1", "status": "open", "unread_count": 2, "messages": ["Array of message objects"] }
-
Mensaje:
jsonCopiar código{ "id": "1", "content": "Hello", "message_type": "incoming" }
Consideraciones adicionales
-
Pruebas de webhooks: Se recomienda usar herramientas como Postman o Webhook.site para probar las configuraciones.
-
Filtros de eventos: Selecciona solo los eventos relevantes para evitar sobrecarga de datos.
-
Seguridad: Asegúrate de que tus endpoints estén protegidos y validados para evitar accesos no autorizados.