Versiones y compatibilidad
Lo que integras con Calligence es un contrato: los webhooks de eventos, los resultados que te envía la conexión Webhook, lo que escribimos en tu CRM y las peticiones con las que nos envías leads. Esta página dice qué puede cambiar sin avisarte, qué cambio rompería tu integración y cómo lo publicaríamos si alguna vez hiciera falta.
Las reglas, para todo
#Lo publicado solo crece. Añadir es compatible: lo hacemos sin cambiar de versión y sin avisar antes. Por eso tu integración debe ignorar lo que no conozca — campos, tipos de evento y valores nuevos — y tratar cada lista cerrada de valores con un caso por defecto.
Quitar o renombrar algo, cambiar su tipo o su significado, o empezar a exigir algo que hoy es opcional sería un cambio incompatible. Nunca lo hacemos sobre lo que ya está publicado:
- publicamos una versión nueva junto a la actual;
- mantenemos las dos durante al menos 6 meses;
- lo anunciamos en Cambios y por email a los administradores de las organizaciones afectadas, con la fecha en que la versión anterior dejará de funcionar.
Cada cambio, compatible o no, queda en Cambios, marcado como «Compatible» o «Incompatible». Puedes seguirlo con su feed Atom.
Webhooks de eventos
#Qué lleva versión
#Cada entrega de un webhook de eventos lleva tres marcas de versión, independientes entre sí:
specversion: la versión del formato CloudEvents del cuerpo. Siempre1.0.v1,al principio de cada firma dewebhook-signature: la versión del esquema de firma. Ver la firma.typeydataschema: la versión de los datos.call.endedes la versión 1 de ese tipo, y sudataschemaeshttps://calligence.ai/docs/webhooks/schemas/call.ended/v1.json. Una versión 2 se llamaríacall.ended.v2y su esquema acabaría en/v2.json.
Los esquemas son JSON Schema (2020-12) y describen data: sirven para validar lo que recibes o para generar tipos en tu lenguaje. Son abiertos: aceptan campos y valores que todavía no listan, así que validar con ellos no falla cuando el contrato crece. Cada tipo del catálogo enlaza el suyo.
Cambios compatibles
#Una versión publicada solo crece. Sin cambiar de versión y sin avisar antes, podemos:
- añadir campos a
datao a sus objetos; - añadir valores a un vocabulario cerrado;
- añadir tipos al catálogo (solo los recibes si te suscribes a ellos);
- añadir atributos al cuerpo del evento.
Cada tipo nuevo queda en Cambios; los campos y valores nuevos aparecen en el catálogo y en el esquema de su versión, que se actualiza en la misma URL.
Cambios incompatibles
#Quitar o renombrar un campo, cambiar su tipo o su significado, o quitar un valor de un vocabulario rompería a quien ya recibe ese tipo. Nunca lo hacemos sobre una versión publicada: publicamos un tipo nuevo, <tipo>.v2, con su propio esquema.
- Durante al menos 6 meses enviamos los dos: cada webhook sigue recibiendo los tipos a los que está suscrito.
- Lo anunciamos en Cambios y por email a los administradores de las organizaciones con algún webhook suscrito al tipo antiguo, con la fecha en que dejará de enviarse.
- Para migrar, suscribe tu webhook también al tipo nuevo, adapta tu receptor y quita el antiguo.
Conexión Webhook
#Los resultados que la conexión Webhook envía a tu endpoint llevan su versión en la clave version: hoy, 1. La firma lleva la suya: el v1 de la cabecera X-Calligence-Signature.
Compatible, sin avisar: añadir claves al objeto (como todas, siempre presentes y con null cuando no apliquen), añadir valores de event o de status y etiquetas nuevas. Si tu endpoint recibe un event que no conoce, que conteste 2xx y lo ignore.
Incompatible: quitar o renombrar una clave, cambiar su tipo o su significado, o cambiar la firma. Llegaría como version: 2, que eliges para cada conexión cuando estés listo: hasta entonces te seguimos enviando la versión 1, durante al menos 6 meses desde el anuncio.
Lo que escribimos en tu CRM
#En GoHighLevel y Zoho CRM escribimos textos fijos de los que pueden depender tus workflows: la cabecera de la nota (Calligence — resumen de la llamada:), la etiqueta con el resultado final (Calligence: …, por ejemplo Calligence: Éxito) y el título de la cita (Cita Calligence — {nombre}, o solo Cita Calligence si no sabemos el nombre). Cada guía los describe: GoHighLevel y Zoho CRM.
Compatible, sin avisar: etiquetas nuevas para resultados nuevos y notas con más información.
Incompatible: cambiar el texto de una etiqueta, de la cabecera de la nota o del título de la cita que ya escribimos. Si alguna vez hiciera falta, te avisaríamos con al menos 6 meses de antelación y, mientras tanto, seguiríamos escribiendo el texto actual.
Entrada de leads
#Las peticiones con las que nos envías leads — a la URL de tu campaña, desde la conexión Webhook o desde los workflows de GoHighLevel y Zoho — no llevan número de versión: crecen sin romper lo que ya funciona.
Compatible, sin avisar: aceptar claves o formatos que hoy no reconocemos, y añadir claves a nuestras respuestas.
Incompatible: exigir un campo que hoy es opcional, rechazar una petición que hoy aceptamos, cambiar el significado de un campo o el código con el que respondemos a una misma petición. Si alguna vez hiciera falta, publicaríamos la forma nueva junto a la actual — por ejemplo, en otra URL — y aceptaríamos las dos durante al menos 6 meses.
Cómo te enteras
#- Cambios lista cada cambio, el más reciente primero, con su fecha, a qué afecta y si es compatible.
- Su feed Atom te lo lleva a tu lector de feeds.
- Antes de un cambio incompatible, escribimos a los administradores de cada organización afectada, con la fecha en que la versión anterior dejará de funcionar.