Pular para o conteúdo principal

Variaveis e Contexto

Variaveis bem modeladas reduzem incidentes e retrabalho. Grande parte das falhas em producao vem de caminho incorreto de contexto.

Escopos comuns

  • Entrada do trigger
  • Resultado do node anterior
  • Variaveis definidas por Set Variable
  • Metadados do contato (ViewBag)

Modelo mental rapido

Pense no contexto como um objeto que cresce a cada etapa do flow. Se um node precisa de um dado, ele deve ler um caminho valido nesse objeto.

Cenario real: mensagem de WhatsApp

Exemplo simplificado de entrada no trigger:

{
"trigger": {
"channel": "whatsapp",
"contact": {
"id": "wa_123",
"name": "Joao",
"phone": "5511999999999"
},
"message": {
"text": "Quero segunda via"
}
}
}

Com essa estrutura, caminhos estaveis seriam:

  • trigger.contact.id
  • trigger.contact.phone
  • trigger.message.text

Preview no FlowBuilder

Este exemplo abre direto no FlowBuilder embedado. A visualizacao em Fluxo/JSON, simulacao e operacoes do flow ficam dentro do proprio editor.

Nao foi possivel carregar o preview embedado automaticamente.

Exemplo: errado vs correto

Errado

{"var": "userId"}

Sem escopo, o engine pode nao encontrar o valor.

Correto

{"var": "trigger.contact.id"}

Agora o caminho aponta para um local especifico do contexto.

Recomendacoes

  • Use nomes previsiveis (intent, userId, payload).
  • Defina defaults para campos opcionais.
  • Normalize tipos antes de avaliar regras.

Integracao externa: mapeamento seguro

Antes de chamar API externa, padronize campos em um node de transformacao.

Exemplo de objeto pronto para integracao:

{
"customerId": "{{trigger.contact.id}}",
"customerPhone": "{{trigger.contact.phone}}",
"intent": "{{variaveis.intent}}",
"messageText": "{{trigger.message.text}}"
}

Se variaveis.intent estiver vazio, defina fallback para "atendimento_humano" antes do roteamento.

Checklist antes de publicar

  • Todos os caminhos usados em regra existem no payload real.
  • Valores opcionais possuem fallback.
  • Campos numericos foram normalizados para numero.
  • Campos booleanos nao estao como texto ("true", "false").
  • Campos criticos para API externa possuem fallback seguro.

Proximo passo

Siga para Templates para montar mensagens e payloads dinamicos sem quebrar o contexto.