Grafo
Como um procedimento é montado, quais são as cinco famílias de etapa, e por que um processo quebrado não consegue chegar à produção.
Um procedimento é um grafo dirigido, em que etapas são os nós e saídas são as arestas. Uma execução entra por um ponto, atravessa etapas seguindo as conexões que você desenhou, e para quando chega a uma etapa terminal.
As três peças do canvas
Etapa. Cada nó tem uma natureza, coletar, falar, agir, decidir ou controlar, e uma configuração própria dessa natureza. Toda etapa tem também um nome, que é como ela aparece no canvas e nas variáveis que produz, e uma instrução opcional que orienta o agente enquanto ele está nela.
Saída. É por onde a execução deixa a etapa. A maioria tem uma só, enquanto as que ramificam têm uma saída por resultado possível: uma Confirmação tem Sim e Não, uma Condição tem Verdadeiro e Falso, e um Roteador AI tem uma saída para cada rótulo declarado.
Etapa de entrada. Uma, e só uma, é onde toda execução começa.
┌──────────────┐
──► │ entrada │
└──────┬───────┘
▼
┌──────────────┐ Sim ┌──────────────┐
│ Confirmação ├─────────────►│ Finalizar │ ◄── terminal
└──────┬───────┘ └──────────────┘
│ Não
▼
┌──────────────┐
│ Transferir │ ◄── terminal
└──────────────┘
As cinco famílias
Toda etapa pertence a uma família, e a família diz o que ela faz com a execução: suspende, fala, produz efeito, ramifica ou encerra.
| Família | Etapas | O que a família faz |
|---|---|---|
| Dados | Formulário · Roteador · Confirmação · Aprovação | suspende a execução até alguém responder |
| Mensagens | Mensagem · Template · Mídia | o agente fala com o contato |
| Ações | Sublime (HTTP, Fórmula) · Integração · Paralelo | produz um efeito fora da conversa |
| Lógica | Condição · Roteador AI | escolhe o ramo, sem falar e sem agir |
| Controle | Aguardar · Finalizar · Transferir a humano | manipula a própria execução |
São quinze etapas, e cada uma tem adiante um documento que explica quando ela é a certa; esta tabela é o mapa.
A distinção que mais importa no desenho, porém, é outra: suspender ou não. As etapas de Dados param a execução e esperam, deixando o procedimento em aberto, às vezes por dias, até que o contato ou alguém da equipe responda. Todas as outras rodam e passam adiante no mesmo turno, e é por isso que um procedimento pode encadear uma consulta, um cálculo e uma decisão sem que ninguém do outro lado perceba pausa alguma.
Duas etapas terminam
Finalizar e Transferir a humano são as únicas sem saída: uma encerra o procedimento, a outra encerra e entrega a conversa a uma pessoa. Toda execução termina em uma das duas, o que significa que não existe terceiro desfecho nem execução que simplesmente pare de andar.
O que não consegue ir ao ar
Publicar não é salvar. Antes de congelar a versão, a plataforma percorre o grafo inteiro e recusa se encontrar qualquer um destes defeitos:
| Defeito | O que significa |
|---|---|
| Sem etapa de entrada | ninguém sabe por onde a execução começa |
| Etapa inalcançável | não existe caminho da entrada até ela, então ela nunca rodaria |
| Etapa que não alcança um terminal | quem entrar nela nunca sai, e a execução ficaria presa |
| Destino inexistente | uma saída aponta para uma etapa que não é deste procedimento |
| Ramificação incompleta | uma etapa que ramifica deixou uma das saídas sem destino |
Nenhum desses defeitos é uma opinião sobre o seu processo. São as formas de um grafo estar quebrado, todas detectáveis sem executar nada, e é por isso que a conferência acontece na publicação e não com um cliente esperando do outro lado.
O que você ganha com isso é uma liberdade que parece contraintuitiva: a cópia de trabalho pode ficar quebrada à vontade. Deixe um ramo pela metade e volte amanhã, porque o que vai ao ar é a versão, e a versão só existe se o grafo fechar.