Ação precisa de várias informações antes de poder ser concluída.
→Colete cada valor em sua própria etapa como um slot; o assistente solicita por qualquer um ainda não fornecido e pula os já fornecidos.
Por quê: O preenchimento de slots baseado em etapas lida com entradas fora de ordem e com múltiplos valores sem ramificações manuais.
Referência↗
Um valor deve persistir após o término da ação atual.
→Armazene-o em uma variável de sessão, não em uma variável de etapa/ação. As variáveis de ação têm escopo para a ação; as variáveis de sessão vivem para toda a conversa.
Por quê: Escolher o escopo errado é um bug clássico: o valor desaparece quando a ação é concluída ou falha ao ser compartilhado entre ações.
Uma etapa pede ao usuário para escolher entre um conjunto conhecido e fixo.
→Use um tipo de resposta de "opções" com escolhas definidas em vez de texto livre, e mapeie cada opção para um valor.
Por quê: As opções restringem a entrada, eliminam a ambiguidade de análise e são renderizadas como botões nos canais suportados.
Um valor coletado (e-mail, data, quantia) pode estar malformado.
→Adicione uma condição de validação na etapa; se inválida, mantenha o usuário na etapa com um prompt corretivo.
Por quê: A validação no momento da captura evita passar dados incorretos para extensões e etapas subsequentes.
Etapas posteriores devem ser executadas apenas para certos usuários ou valores.
→Defina condições de etapa em variáveis já coletadas para que as etapas sejam ignoradas quando a condição for falsa.
Por quê: As condições expressam ramificações sem duplicar ações; o editor as avalia de cima para baixo.
Múltiplas ações precisam do mesmo subfluxo (por exemplo, verificar identidade).
→Fatore a lógica compartilhada em uma sub-ação e chame-a de cada ação pai.
Por quê: As sub-ações mantêm a lógica de verificação DRY e consistente; a duplicação de etapas causa dessincronização.
Usuário faz uma pergunta não relacionada no meio do fluxo ("quais são o seu horário?").
→Permita a digressão para que o assistente responda à pergunta secundária e depois retorne à ação interrompida.
Por quê: Bloquear digressões força um roteiro rígido que frustra os usuários com solicitações secundárias legítimas.
Precisa calcular ou transformar um valor dentro de uma etapa.
→Use a linguagem de expressão integrada (por exemplo, funções de string e matemática em variáveis) na etapa ou resposta.
Por quê: Transformações leves pertencem a expressões; recorrer a um webhook para matemática trivial é um exagero.
Uma ação de acompanhamento precisa de um valor que o usuário forneceu anteriormente.
→Referencie a variável de sessão existente em vez de solicitar novamente.
Por quê: Pedir novamente por dados já conhecidos parece quebrado; levar o contexto adiante é uma característica de um bom fluxo.
Um fluxo deve parar ou pular para outra ação sob uma condição.
→Use "finalizar a ação" ou uma transição "ir para uma etapa em outra ação" para controlar o fluxo explicitamente.
Por quê: Transições explícitas evitam a passagem inesperada para a próxima etapa após uma condição terminal.