ctx es el segundo parámetro de todo handler. Contiene información de la empresa, canal, usuario, tipo de trigger, y da acceso a secrets, mensajería, memoria y logging.
Referencia
Identidad
x-bot-id, x-user-id).
Trigger
Tres tipos de trigger determinan cómo se invocó tu función:- HTTP
- Cron
- Event
Request
Environment (secrets)
Las variables internas con prefijo
__FN_ están bloqueadas — ctx.env.get("__FN_COMPANY_ID") retorna undefined.Mensajería (ctx.jelou)
Envía mensajes de WhatsApp directamente desde tu función:
Guía de mensajería
14 tipos de mensaje, templates HSM, validación de plantillas y manejo de errores.
Ejecuciones diferidas (ctx.jelou.schedule)
Agenda una ejecución futura de tu propia función:
Guía de ejecuciones diferidas
Agendar, consultar, cancelar y verificar antes de actuar.
Verificaciones (ctx.guard)
Encadena condiciones y ejecuta la acción solo si todas se cumplen. Útil cuando la realidad pudo cambiar desde que agendaste algo:
{ skipped: "<nombre>" } sin ejecutar la acción.
Webhooks (ctx.verify*)
Verifica la firma de un webhook antes de procesarlo:
Guía de webhooks
Stripe, Shopify, Meta y firmas HMAC genéricas.
Memoria (ctx.memory)
Persiste datos por sesión (key-value con TTL):
Guía de memoria
Primitivos, JSON, TTL, límites y patrones comunes.
Brain Studio (skillId, executionId)
Cuando tu función es invocada desde Brain Studio como herramienta MCP:
null para peticiones HTTP directas y triggers cron.
Logging
ctx.log() escribe JSON estructurado con metadatos automáticos:
jelou functions logs mi-funcion.
Ejemplo completo
index.ts
Mensajería
Enviar WhatsApp con ctx.jelou.
Memoria
Persistir datos con ctx.memory.
Secrets
Variables de entorno cifradas.
Autenticación
Runtime tokens y funciones públicas.