La documentación más actualizada de las APIs de Cloud Humans está en docs.cloudhumans.com/api-reference. En caso de divergencia entre este artículo y la referencia, prevalece lo que está allí.
Payload enviado por el Webhook de CloudChat
Cuando una automatización dispara un webhook, realiza un POST HTTP a la URL configurada, enviando un JSON con la siguiente información principal:
Estructura del payload (JSON)
CampoDescripcióneventEl tipo de evento que disparó el webhook (ej.: message_created, conversation_created, etc.)contentEl contenido del mensajemessage_typeTipo de mensaje (incoming, outgoing, etc.)conversationObjeto con datos de la conversación, incluyendo id, status, etc.senderObjeto con datos del remitente (contacto), incluyendo id, name, email, phone_number, etc.accountObjeto con datos de la cuenta, incluyendo idinboxObjeto con datos de la inbox/canalcontactDatos del contacto asociado
Ejemplo práctico (basado en el código)
Como se ve en el ejemplo de integración con Rasa:
chatwoot / implementation-examples / rasa-agent-bot-demo / rasa_flask_router.py
@app.route('/rasa', methods=['POST'])
def rasa():
data = request.get_json()
message_type = data['message_type']
message = data['content']
conversation = data['conversation']['id']
Eventos compatibles con webhooks
Según lo definido en el modelo:
chatwoot / chatwoot / app / models / webhook.rb
ALLOWED_WEBHOOK_EVENTS = %w[conversation_status_changed conversation_updated conversation_created contact_created contact_updated
message_created message_updated webwidget_triggered inbox_created inbox_updated
conversation_typing_on conversation_typing_off].freeze
Resumen del JSON típico que llega a tu endpoint:
webhook_payload_example.json
{
"event": "message_created",
"message_type": "incoming",
"content": "Olá, preciso de ajuda!",
"id": 12345,
"conversation": {
En resumen:
El webhook envía un POST con JSON que contiene los datos del evento, de la conversación, del contacto/remitente, de la cuenta y de la inbox, junto con el contenido del mensaje y el tipo de mensaje. Esto permite que el sistema externo (el que recibe el webhook) sepa exactamente qué ocurrió y tome la acción adecuada.