n8n: subworkflows, Redis e loops sem explodir custo
Modularize fluxos gigantes com sub-workflows, use Redis como memória/flag e bloqueie o bot quando o humano assume no WhatsApp.
Ideia central
n8n: sub-workflows, Redis e human-in-the-loop: a lição do material de origem só paga se você transformar o insight em sistema — dono, métrica e ritual — em vez de acumular abas e intenção.
O que o material de origem realmente diz
Então, esse payload aqui vai ser configurado De uma maneira que você já vai ver Pra passar aqui o WhatsApp Vou mostrar pra você agora Antes até de conectar nele pra não ter problema Vou clicar em save Vou voltar pra cá E já vou chamar aqui um subworkflow Sub, execute, subworkflow Cliquei, cliquei Aqui a gente vai escolher da lista mesmo User info, maravilhoso Payload, olha só Eu preciso passar uma expression Aqui é mão, que eu gosto de colocar na mão E aí Sinal de igual, já passou para a expression, coloco então as duas chaves, dou um enter, gosto de dar um enterzinho aqui, e aqui é um objeto, vendo?
Passei só aquela informação, saiu o dado que eu preciso Acabou, daqui pra frente posso trabalhar tranquilo O fluxo, já tenho Essa fase de User Info Agora a gente vai voltar aqui num desenho Que a gente tinha feito antes, que era pra entender O que a gente tava fazendo, a gente tava aqui no Webhook Fizemos o User Info, agora a gente vai fazer O Human In Loop Beleza?
Por que isso importa na operação
Então é um Redis que vai pegar agora a informação, é um Redis do tipo get. O Redis então, ele guarda em memória, é sempre um key value também. Uma chave, uma chave lá dentro do Redis, que vai receber um valor. Mas, eu vou criar um novo nozinho aqui, disso aqui sozinho, do Redis. Pra ele ficar esse tempo bloqueadinho ali e tudo bem, depois disso ele expira sozinho, ele joga fora essa chave sozinha e aí a IA pode continuar falando, então vamos lá, fluxo 1 eu mandei a mensagem, bloqueou, fluxo 2 João mandando a mensagem, então não sou eu Então esse from me, ele vai vir como falso agora, porque não sou eu, é o João que está respondendo ali.
Eu sou o dono do WhatsApp, por exemplo, eu puxei para começar a falar com a pessoa, então eu preciso que a inteligência artificial fique bloqueada. Mas como o nó anterior é esse geralzão, Payload, que está recebendo o dado Payload WhatsApp, está aqui, Payload WhatsApp, simples de tudo. Então, no human in loop eu preciso verificar o seguinte, se o owner, então, quem é que está enviando o dado?
Na prática
Regra: se não há output auditável ligado a «n8n subworkflows redis loop», ainda é consumo — não sistema.
Como estruturar o método
Coloco aqui o valor, o WhatsApp, a propriedade que eu quero, e o valor é esse cara daqui. Expirer aqui, ele fala qual o tempo de vida disso aqui, se eu não colocar o tempo de vida ele vai ficar bloqueado pra sempre, eu gosto de colocar aqui 300, isso em milissegundos isso aqui em segundos, deixa eu ver aqui se ele fala pra mim o TTL, número de segundos então 300 segundos, ?
Esse objeto vai passar uma única informação, o WhatsApp, eu quero chamá-lo assim. Então aqui eu já tenho esse WhatsApp que eu salvei em algum momento. Se eu, dono do WhatsApp, estou mandando mensagem, isso aqui será true, beleza? Pá, Aí eu peguei o WhatsApp e comecei a falar com o João. Qual o dado que eu vou precisar aqui no human in loop?
Erros que drenam o resultado
Isso aqui vai acontecer por um período de tempo que a gente vai definir ali depois na ferramenta, e aí, sei lá, vou definir que por 15 minutos, sempre que eu começar a falar ali, ele vai passar por aqui, vai setar esse horáriozinho de 15 minutos. Não sei se é uma coisa da comunidade ou das pessoas que usam, mas eu não sei porque as pessoas não usam muito mais esse poder, o poder de chamar sub-workflows, ou seja, modularizar o meu fluxo de trabalho.
Então eu vou desconectar esse nó, eu vou pegar essas informações aqui, vou fazer um comand C, vou abrir um novo workflow, vou até deixar esse aqui aberto pra cá assim, bem? Info, vai ser muito importante pra mim daqui a pouco E vou dar um Execute Workflow Olha só o que vai sair agora do dado Saiu o dado que eu preciso, bem?
Aplicação em uma semana
Se o user for encontrado, ele vai me retornar um JSON, mas isso daqui, quem retorna para mim é o base row, então não preciso me preocupar, e ele sai esse dado. E é um objeto JavaScript, então é assim que eu escrevo o objeto JavaScript, chaves, coloca chaves pra poder abrir o objeto, e aí eu venho na chave valor, , key value.
Se é outra pessoa mandando mensagem, nesse caso foi outra pessoa que mandou mensagem para esse número, bom, se é outra pessoa mandando mensagem, então esse dado aqui é falso, beleza? Só que, quando não, quando aquilo, quando não estiver bloqueado, ele vai vir aqui pro falso, eu vou ter que pegar e verificar se de fato ele bloqueado ou não.
Atenção
Não otimize ferramenta antes de ter hipótese e métrica. Stack nova sem critério só acelera o erro.
Sinais de que está funcionando
O que eu recebi aqui de importante, qual que é o valor importante que eu preciso aqui para seguir o meu fluxo, ou para ter todos os dados aqui? Já vou clicar no save aqui, vou vir pra cá, não vi nada, só que eu posso vir em executions, aqui eu vou ver a execução dele, vendo? Então vai estar bloqueado, eu não posso passar essa mensagem do João para frente no meu fluxo, senão vai chegar lá na IA e não adiantou nada esse bloqueio.
Passou-se os 300 segundos, na hora que voltar aqui, provavelmente essa chave já vai ter expirado, aí o S-Blocked fica NULL, como você já viu que ele estava NULL.
Perguntas frequentes
No material de n8n: subworkflows, Redis e loops sem explodir custo, o que «Por que isso importa na operação» resolve de verdade?
Resposta direta do corpo: Então é um Redis que vai pegar agora a informação, é um Redis do tipo get. O Redis então, ele guarda em memória, é sempre um key value também. Uma chave, uma chave lá dentro do Redis, que vai receber um valor. Mas, eu vou criar um novo nozinho aqui, disso aqui.
Como transformar «Como estruturar o método» em critério de done — recorte `n8n-subworkflows-redis-loop`?
Extraia só o mecanismo de «Como estruturar o método»: Coloco aqui o valor, o WhatsApp, a propriedade que eu quero, e o valor é esse cara daqui. Expirer aqui, ele fala qual o tempo de vida disso aqui, se eu não colocar o tempo de vida ele vai ficar bloqueado pra sempre, eu gosto de colocar aqui 300, isso em.
Qual evidência mínima confirma «Erros que drenam o resultado» — recorte `n8n-subworkflows-redis-loop`?
Operação curta: Isso aqui vai acontecer por um período de tempo que a gente vai definir ali depois na ferramenta, e aí, sei lá, vou definir que por 15 minutos, sempre que eu começar a falar ali, ele vai passar por aqui, vai setar esse horáriozinho de 15 minutos. Não sei se é. Revise com evidência, não com feeling.
O que o texto alerta sobre timing de «Aplicação em uma semana» — recorte `n8n-subworkflows-redis-loop`?
Do texto: Se o user for encontrado, ele vai me retornar um JSON, mas isso daqui, quem retorna para mim é o base row, então não preciso me preocupar, e ele sai esse dado. E é um objeto JavaScript, então é assim que eu escrevo o objeto JavaScript, chaves, coloca chaves.