Como uma jornada é executada
Quem está agindo, o que o assistente pode ver e o que acontece quando um passo não pode ser executado.
Quando um visitante pede algo que uma jornada cobre, o assistente a inicia e depois se afasta. A partir daí, os passos são executados por um motor que roda na sua própria página, sem nenhum modelo no circuito. O assistente narra; ele não dirige.
O que o assistente recebe#
O assistente recebe duas coisas sobre uma jornada: o nome e a frase de gatilho. Os passos, e os elementos para os quais eles apontam, nunca são enviados a ele — nem antes, nem durante, nem depois.
Regra: É por isso que *"nunca executa um passo que ninguém escreveu"* é um fato, e não uma intenção. Um nome de elemento que chega ao modelo é um nome de elemento do qual o modelo poderia produzir uma variação. Ele nunca chega ao modelo, então não há variação a produzir.
O que o visitante vê#
- Um pequeno card no chat mostrando qual passo está rodando e de quantos.
- Em um passo guide, uma instrução para fazer aquilo por conta própria, com o elemento certo destacado na página.
- Em um passo hold, um botão Continuar — nada se move até ele ser apertado.
- Uma forma de interromper tudo, em qualquer passo, sem sair do chat.
Quando um passo não pode ser executado#
Antes de cada ação, o motor verifica o elemento que vai tocar: ele está mesmo na página, está visível, é interativo e corresponde ao mesmo elemento que foi indicado? Se qualquer uma dessas verificações falhar, o passo é descartado — não tentado. Um passo sobre o qual o motor tem dúvida é um passo que ele não executa.
Se o mesmo passo for descartado três vezes seguidas, a jornada para e diz por quê. O assistente então retoma a conversa normalmente. Uma página que mudou no meio de uma jornada a encerra com educação; o visitante não fica assistindo a algo tentando de novo sozinho.
Como termina#
O assistente é informado do resultado uma vez por jornada, não passo a passo, e só quando ela acaba — concluída ou interrompida. Até essa mensagem chegar, ele não afirma que algo foi feito, porque de fato não sabe.
Onde roda#
O painel de chat fica em um frame separado no nosso domínio; o motor roda na sua página. Só quatro coisas atravessam essa fronteira: o plano a executar, *continuar*, *parar* e qual passo está onde. Quem é o visitante, a sessão dele e o texto da conversa ficam do nosso lado e nunca entram na sua página.
Dica: Em um projeto sem jornadas, o motor nem sequer é baixado — nenhuma requisição extra, nada adicionado à sua página.