Saltar al contenido principal
Para consultar el catálogo exhaustivo derivado del esquema, consulta todos los ejemplos.

Qué es

Gestiona los eventos contact.attributes_changed y contact.note.updated.

Antes de comenzar

  • Crea un endpoint HTTPS público en tu aplicación.
  • Configura un endpoint de Webhook de YCloud para los tipos de evento que necesites.
  • Guarda el secreto de firma del endpoint de forma segura.
  • Haz que el procesamiento de eventos sea idempotente.

Cómo funciona

YCloud envía una solicitud HTTP POST cuando ocurre el evento. Verifica la firma, registra el evento de forma duradera, devuelve una respuesta 2xx y procesa las tareas lentas de forma asíncrona.

Solicitud

Los siguientes escenarios muestran las solicitudes enviadas a la URL de tu Webhook. Trata el id del evento como el identificador de entrega y utiliza type para enrutar el payload.

Respuesta

Devuelve un estado 2xx tras aceptar el evento.
Para la configuración del endpoint, la validación de firmas y el comportamiento de reintentos, consulta Configurar webhooks.
Se produce cuando se modifican los atributos de un contacto. El payload del Webhook contiene información sobre qué atributos cambiaron, incluidos sus valores antiguos y nuevos.

Ejemplo de cambio de etiquetas (añadir etiquetas)

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

Enruta el evento mediante type, desduplícalo con id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.

Ejemplo de cambio de etiquetas (eliminar etiquetas)

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

Enruta el evento mediante type, desduplícalo con id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.

Ejemplo de cambio

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

  • Estructura correcta: El objeto contactAttributesChanged contiene tres campos obligatorios: id, updateTime y changedAttributes.
  • Atributos modificados: El campo changedAttributes es un objeto donde cada clave es el nombre del atributo y el valor es un objeto ContactAttributeChange.
  • Configuración de propiedades del evento: Al habilitar los eventos contact.attributes_changed, debes configurar el campo eventProperties en el endpoint de tu Webhook para especificar qué atributos deben incluirse en el payload del Webhook.
  • Tipos de atributos: Los campos oldValue y newValue pueden contener diferentes tipos de datos:
    • String: valores de texto
    • Number: valores numéricos (enteros o decimales)
    • Boolean: valores booleanos (true/false)
    • Array: arrays de cadenas
    • Object: objetos complejos con propiedades anidadas
    • Null: cuando un atributo se elimina o no está establecido
  • Cambios en etiquetas: Para los atributos de etiquetas, el campo extra proporciona información detallada sobre qué etiquetas se agregaron o eliminaron, incluidos sus identificadores y valores.
  • Valores nulos: Cuando un atributo se elimina o se establece en null, newValue será null. Cuando se añade un atributo nuevo, oldValue puede ser null.
  • Atributos personalizados: Los atributos personalizados se incluyen en el objeto changedAttributes al igual que los atributos estándar, utilizando sus claves personalizadas como nombres de atributo.
  • Detección de cambios: Solo se incluyen en el objeto changedAttributes los atributos que realmente hayan cambiado.
  • Campo adicional: El campo extra es opcional y se utiliza principalmente para cambios relacionados con etiquetas con el fin de proporcionar contexto adicional sobre las acciones específicas realizadas.

Nota de contacto actualizada

Usa contact.note.updated cuando se actualice una nota de contacto.

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

Usa contactNote.id para identificar la nota y contactId para identificar el contacto al que pertenece. username y phoneNumber describen el contacto y pueden ser nulos. El payload contiene la instantánea de la nota visible para el cliente, incluido content, sin identificadores internos del operador.