ctx, donde puedes inspeccionarlo y transformarlo, actualizar el lead, llamar a cualquier API HTTP externa y devolver un resultado para el historial de ejecuciones.
Usa una Cloud Function cuando una integración necesite lógica personalizada, no solo una copia de un evento. Por ejemplo, puedes adaptar un lead calificado al formato de tu CRM, avisar a un equipo solo sobre conversiones de alto valor o enviar datos de reuniones a tu propio backend sin alojar un procesador de eventos aparte.
Las Cloud Functions están en Avanzado → Cloud Functions. Cada función escucha un trigger, y ese trigger determina la forma de
ctx.Cómo funciona
- Ocurre un evento en Nexor, como un cambio de estado de un lead.
- Nexor invoca las Cloud Functions activas asociadas a ese trigger.
- La función recibe el objeto específico del evento como
ctxy se ejecuta en un entorno JavaScript aislado. - Nexor guarda la salida de consola, las solicitudes HTTP, el valor devuelto, los cambios del lead, el estado y la duración en el historial de ejecuciones.
ctx y termina la ejecución cuando no coincidan. Nexor ejecuta como máximo 25 funciones activas coincidentes por evento; si hay más, las funciones excedentes se omiten.
Las Cloud Functions están diseñadas para procesadores de eventos breves. Cada ejecución tiene un timeout de 8 segundos.
Crear una función
Solo los administradores de la organización pueden crear, editar, ejecutar manualmente, pausar o eliminar Cloud Functions. Los demás usuarios pueden ver las funciones, el historial de ejecuciones y los nombres de las variables de entorno.
1
Nombra la función y elige un trigger
Ve a Avanzado → Cloud Functions, haz clic en Nueva función, ingresa un nombre descriptivo y selecciona el evento que debe ejecutar tu código.
2
Revisa el payload
Abre la pestaña Payload del editor. Allí verás un
ctx de ejemplo para el trigger seleccionado. Haz clic en un campo para insertarlo en el código y contempla que algunos campos pueden ser null o no estar presentes en un evento real.3
Escribe la lógica de integración
Usa los datos del evento, los helpers integrados para leads y
axios o fetch para implementar la acción. Agrega API keys, tokens y URLs de endpoints como variables de entorno en vez de colocar secretos en el código.4
Guarda y prueba
Guarda para desplegar la función y luego haz clic en Ejecutar para correr la versión desplegada con un
ctx de ejemplo editable. Revisa la salida, las llamadas de red, el valor devuelto y los cambios propuestos para el lead.5
Activa y monitorea
Mantén Activa habilitado para ejecutar la función automáticamente. Abre Registros para revisar ejecuciones posteriores o pausa la función sin eliminar su código.
El trigger no se puede cambiar después de crear la función porque define la suscripción al evento y el payload. Crea otra función si necesitas reaccionar a un evento diferente.
Triggers disponibles
Cada función se asocia a uno de los siguientes 23 eventos.Leads
Información
Conversaciones
Conversiones
Reuniones
Tareas y ejecuciones del agente
Trabajar con el objeto del evento
La forma dectx depende del trigger. Puede incluir identificadores y campos de primer nivel, además de objetos anidados como lead, estados, cambios, metadatos, participantes o el payload de una tarea. Entre los campos comunes están lead_id, client_id, workflow_id y los timestamps, pero algunos pueden ser null o no estar presentes según cómo haya ocurrido el evento.
Usa la pestaña Payload para explorar el objeto de ejemplo y luego revisa Entrada · ctx en la salida o los registros para ver el payload recibido por una ejecución específica. Protege los campos opcionales en el código de producción en vez de asumir que todos los campos del ejemplo estarán presentes.
La función puede usar los siguientes valores, helpers y características del lenguaje. Los elementos integrados del entorno no requieren imports.
updateLead y updateMetadata cambian la copia de lead dentro del entorno aislado y guardan los efectos correspondientes. Nexor los aplica solo después de una ejecución automática exitosa. No se aplican si la función genera un error, alcanza el timeout o se ejecuta manualmente desde el editor.
Enviar un evento fuera de Nexor
Este ejemplo asocialead.status_changed con un endpoint de un CRM. Filtra por el estado qualified, crea el payload externo a partir de ctx, lo envía con un token secreto y registra la sincronización exitosa en el lead de Nexor.
Variables de entorno
Los administradores gestionan las variables de la organización desde la sección Variables de entorno de la página de Cloud Functions. Los demás usuarios pueden ver los nombres, pero no los valores. Lee una variable en el código comoenv.NAME, por ejemplo env.CRM_API_TOKEN.
Los valores de las variables de entorno son de solo escritura en el dashboard: una función puede leerlos durante la ejecución, pero la interfaz no puede mostrarlos después de guardarlos. Crear, reemplazar o eliminar una variable vuelve a desplegar todas las Cloud Functions guardadas de la organización.
Una organización puede guardar hasta 128 variables. Los nombres deben comenzar con una letra mayúscula y contener solo letras mayúsculas, números o guiones bajos, con un máximo de 64 caracteres. Cada valor no vacío puede contener hasta 5 KiB.
Revisar ejecuciones
La salida del editor y la página Registros te permiten seguir cada ejecución. Una ejecución incluye:- su origen y trigger;
- el estado de éxito, error o timeout;
- la duración y el timestamp;
- el
ctxde entrada; - la salida de consola y los errores no controlados;
- vistas previas redactadas de solicitudes y respuestas HTTP, con bodies limitados a 16 KiB;
- el resultado devuelto; y
- los efectos sobre el lead y sus metadatos producidos por la función.
¿Cloud Functions o webhooks?
Usa una Cloud Function cuando el evento necesite código: filtros, transformaciones, bifurcaciones, llamadas a varios sistemas o una escritura en el lead de Nexor. Usa un webhook cuando solo necesites que Nexor entregue un evento firmado a un endpoint que ya administras. Las Cloud Functions y los webhooks usan nombres de eventos y contratos de payload diferentes. Por ejemplo, el trigger de Cloud Functions eslead.status_changed, mientras que el evento de webhook relacionado es workflow_run.status_changed. No proceses ctx como si fuera el envelope de un webhook.