¿Qué es ctx.memory?
ctx.memory es un cliente HTTP al Memory API de Jelou. Habla con el mismo almacenamiento key-value del usuario ($memory en el builder). Lo que escribas desde una Function es visible en placeholders {{$memory.key}} del workflow y viceversa — es una sola memoria por usuario, no una copia paralela.
Disponible automáticamente cuando la petición viene de una conversación activa y la empresa tiene una API key de workflow configurada.
Casos de uso típicos:
- Flujos multi-paso — recordar en qué paso está el usuario
- Carritos de compras — acumular productos durante la conversación
- Contadores — limitar intentos de login, tracking de reintentos
- Preferencias del usuario — idioma, formato, filtros que persisten entre conversaciones
Inicio rápido
index.ts
Verificar disponibilidad
Primitivos vs JSON
Usaset()/get() para valores simples y setJson()/getJson() para objetos:
get() coincide con el tipo del valor por defecto:
TTL (tiempo de vida)
Hay dos capas de expiración en Memory:- TTL por variable (el que pasas al
set) — controla cuándo caduca esa variable individual. - hashTTL de 30 días (gestionado por la plataforma) — controla cuándo caduca la memoria completa del usuario. Cuando expira, se borra todo su Memory.
Límites
Valores de
set() que excedan 255 caracteres lanzan un Error. Para datos más grandes, usa setJson().
Patrones comunes
- Flujo multi-paso
- Carrito de compras
- Límite de intentos
Manejo de errores
¿Cuándo usar ctx.memory vs una base de datos?
Acceder a memoria de otro usuario
Desde triggers cron o event, puedes acceder a la memoria de un usuario específico conctx.memory.for(userId):