ctx es el segundo parámetro de todo handler. Contiene información de la empresa, bot, usuario, tipo de trigger, y da acceso a secrets, mensajería, memoria y logging.
Referencia
| Propiedad | Tipo | Descripción |
|---|---|---|
ctx.functionSlug | string | Slug de la función |
ctx.company | { id, name } | Empresa del request |
ctx.bot | { id, name, channel } | Bot que originó el request |
ctx.user | { id, names?, roomId? } | Usuario de la conversación |
ctx.conversation | { id?, ... } | Datos de la conversación |
ctx.operator | { id?, ... } | Operador asignado |
ctx.trigger | TriggerInfo | Tipo de trigger (http, cron, event) |
ctx.env | EnvAccessor | Acceso a secrets |
ctx.params | Record<string, string> | Parámetros de ruta |
ctx.query | Record<string, string> | Query string params |
ctx.jelou | JelouSDK | Cliente de mensajería WhatsApp |
ctx.memory | MemorySDK | Memoria de sesión key-value |
ctx.method | string | Método HTTP (GET, POST, etc.) |
ctx.path | string | Path del request |
ctx.requestId | string | UUID único del request |
ctx.isCron | boolean | true si es trigger cron |
ctx.isEvent | boolean | true si es trigger event |
ctx.isHttp | boolean | true si es request HTTP |
ctx.skillId | string | null | ID del flujo de Brain Studio |
ctx.executionId | string | null | ID de ejecución de Brain Studio |
ctx.log() | (...args) => void | Logger estructurado |
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 y manejo de errores.
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.