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.
Si el mismo código debe ejecutarse con una programación cron sobre una cohorte de leads seleccionada, usa una Función programada.
Las Cloud Functions están en Integraciones → Desarrolladores → 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 acotados. Cada ejecución puede durar hasta cinco minutos y hacer hasta 20 solicitudes salientes.
Crear una función
En el dashboard, los roles Owner, Admin y Partner de la organización pueden crear, editar, probar, publicar, pausar o eliminar Cloud Functions.
1
Nombra la función y elige un trigger
Ve a Integraciones → Desarrolladores → 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
Una función nueva empieza en pausa, y su primer guardado es la versión 1. Desde ahí, Guardar (⌘S) deja los cambios de código en un borrador. Elige Probar (⌘↵) para ejecutar el borrador con un
ctx de ejemplo editable y revisa la salida, las solicitudes, el valor devuelto y los cambios en el lead previsualizados.5
Publica, activa y monitorea
Elige Publicar cambios cuando el borrador esté listo, enciende Activa y guarda para ejecutar la versión publicada en cada evento que coincida. Abre Registros para revisar ejecuciones posteriores o pausa la función sin eliminar su código.
El dashboard no permite cambiar el trigger después de crear la función porque define la suscripción al evento y el payload de
ctx. Si trabajas solo en el dashboard, crea una función nueva para otro evento. La API pública puede actualizar trigger_event; vuelve a validar las suposiciones sobre el payload y el código antes de activar ese cambio.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 como prueba.
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 Integraciones → Desarrolladores → Variables de entorno. La lista del dashboard muestra los nombres, no los valores; esta pantalla no vuelve a mostrar un valor guardado. Cloud Functions y Funciones programadas comparten este registro. Lee una variable en el código comoenv.NAME, por ejemplo env.CRM_API_TOKEN.
Una función puede leer los valores guardados durante la ejecución. Crear, reemplazar o eliminar una variable vuelve a desplegar cada Cloud Function y Función programada activa de la organización. Una función en pausa toma el cambio cuando se activa.
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.
Guarda un borrador
Guardar código en el editor guarda un borrador. Los eventos que coinciden siguen ejecutando la versión publicada hasta que publicas el borrador.- El editor muestra Cambios sin publicar con la hora en que se guardó el borrador, y la lista de funciones muestra el badge Cambios sin publicar.
- Cada función tiene un borrador, compartido por todas las personas que la editan, la API y Nexor AI. El último guardado lo reemplaza.
- Solo el código queda en borrador. El nombre, la descripción y Activa se guardan de inmediato cuando eliges Guardar.
- Guardar un código idéntico a la versión publicada no deja borrador.
- Para eliminar el borrador, abre ⋯ y elige Descartar borrador. La versión publicada sigue activa.

Prueba sin efectos reales
Elige Probar (⌘↵), o Probar ahora en Registros. Los cambios sin guardar se guardan primero en el borrador. Si no hay borrador, Probar ejecuta la versión publicada. En el diálogo Prueba tu borrador, edita elctx de ejemplo o carga un lead real, y luego elige Ejecutar prueba.
La prueba corre en una copia de prueba de la función:
Una prueba tiene los mismos límites que una ejecución real: hasta cinco minutos y 20 solicitudes salientes. Aparece en Registros con el origen Prueba, pero no cambia el conteo de ejecuciones ni la última ejecución. La prueba de un código nuevo puede tardar unos segundos más porque primero se prepara la copia de prueba.

Publica los cambios
Elige Publicar cambios cuando el borrador esté listo. El diálogo indica qué versión será y muestra la última prueba de este borrador. Avisa si el borrador no se probó o si su última prueba falló, pero no impide publicar.- El próximo evento que coincida usa la versión nueva. Las ejecuciones que ya están en curso terminan con la anterior.
- Publicar una función en pausa no la activa.
- Si alguien guardó el borrador después de que abriste el diálogo, te pide revisarlo y publicar de nuevo.
- Si la versión nueva no se puede desplegar, no se publica nada y tu borrador se conserva. Inténtalo de nuevo en un momento.

Restaura una versión anterior
Cada publicación crea una versión numerada. Abre Historial de versiones en el editor para ver cada versión, quién la publicó y cuándo. Publicada marca la versión activa. API pública marca las versiones publicadas con una clave de API o con Nexor AI, y Antes de las versiones marca el código que tenía la función cuando empezó el historial. Elige Ver para leer el código de una versión y luego Restaurar al borrador para copiarlo en el borrador. Restaurar nunca cambia producción: prueba el borrador y publícalo para volver atrás. Si hay un borrador abierto, Nexor pregunta antes de reemplazarlo. Restaurar la versión activa borra el borrador.
Activa una función
Cuando Guardar activa una función que tiene un borrador, Nexor pregunta primero: la función ejecuta la versión publicada, y tus cambios sin publicar no se incluyen hasta que los publiques. Si la versión publicada no se pudo desplegar, la función muestra Sin desplegar en la lista y un aviso en el editor. Cada ejecución intenta desplegarla otra vez antes de correr y se detiene si vuelve a fallar.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.
Usa Nexor AI, el MCP o la API
Nexor AI y los clientes MCP siguen el mismo flujo.update_cloud_function guarda los cambios de código como borrador y devuelve su draft_hash. test_cloud_function ejecuta el borrador y lista las llamadas que se enviarían; run_cloud_function ahora hace lo mismo. publish_cloud_function requiere confirm: true después de que apruebas, y el draft_hash que se probó. discard_cloud_function_draft, list_cloud_function_versions, get_cloud_function_version y restore_cloud_function_version gestionan el borrador y el historial.
Con la API pública, las claves MCP necesitan workflows:read para lecturas y versiones, y workflows:write para todas las demás llamadas. Enviar code al endpoint de actualización sigue publicándolo de inmediato y registra una versión. POST /cloud-functions/{id}/run mantiene su comportamiento: ejecuta la versión publicada sin aplicar efectos, y sus solicitudes HTTP son reales.
Guardar un borrador
Cambia el código sin cambiar lo que ejecuta producción.
Probar una Cloud Function
Ejecuta el borrador con lecturas enviadas, escrituras retenidas y efectos previsualizados.
Publicar un borrador
Convierte el borrador probado en la versión publicada.
Listar versiones
Lee las versiones publicadas y restaura una en el borrador.
¿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. Usa una Función programada cuando el código deba ejecutarse con una programación cron y recibir una cohorte de leads, Agentes de IA activos o hosts humanos elegidos mediante una consulta. 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.