O que é ctx.memory?
ctx.memory é um cliente HTTP para a Memory API da Jelou. Ele fala com o mesmo armazenamento chave-valor do usuário ($memory no builder). Tudo que você escrever a partir de uma Function é visível em placeholders {{$memory.key}} do workflow e vice-versa — é uma única memória por usuário, não uma cópia paralela.
Disponível automaticamente quando a requisição vem de uma conversa ativa e a empresa tem uma chave de API de workflow configurada.
Casos de uso típicos:
- Fluxos multi-etapa — lembrar em qual etapa o usuário está
- Carrinhos de compra — acumular produtos durante a conversa
- Contadores — limitar tentativas de login, rastreamento de retentativas
- Preferências do usuário — idioma, formato, filtros que persistem entre conversas
Quick start
index.ts
Verificar disponibilidade
Primitivos vs JSON
Useset()/get() para valores simples e setJson()/getJson() para objetos:
get() corresponde ao tipo do valor padrão:
TTL (time to live)
Existem duas camadas de expiração na Memory:- TTL por variável (o que você passa ao
set) — controla quando essa variável individual expira. - hashTTL de 30 dias (gerenciado pela plataforma) — controla quando a memória completa do usuário expira. Quando expira, toda a sua Memory é apagada.
Limites
Valores de
set() que excedem 255 caracteres lançam um Error. Para dados maiores, use setJson().
Padrões comuns
- Fluxo multi-etapa
- Carrinho de compras
- Limite de tentativas
Tratamento de erros
Quando usar ctx.memory vs um banco de dados?
Acessar memória de outro usuário
A partir de triggers cron ou event, você pode acessar a memória de um usuário específico comctx.memory.for(userId):