Após selecionar a criação de um novo fluxo, você será redirecionado para o Bot Design, a tela de construção do fluxo das conversas.
A tela de construção do fluxo tem balões de início e fim do fluxo e uma linha de conexões entre cada passo.
Para começar a criar um bot clique no + e escolha os primeiros passos da interação do fluxo. Conforme detalharemos mais adiante.

Na barra inferior, você encontra os botões Recarregar, Salvar, Testar e Publicar fluxo e Exportar como imagem.

Na lateral direita, ao clicar no ícone roxo, é exibido o código JSON do fluxo. [Saiba mais no final deste artigo.]

Conexões
No fluxo da conversa, existem 3 botões:
: cria uma nova interação no seu bot para ser utilizada durante a conversa.
: abre a tela para editar o nome da conexão (label).
: exclui a conexão entre cada passo (step).
A conexão pode ser feita arrastando o mouse para o próximo step.
Inclusão de passos no seu bot
Ao clicar no ícone de inclusão de um novo passo, aparece a tela Criar novo passo com as seguintes opções disponíveis:
Mensagem do sistema: corresponde ao passo ativo do sistema, acionado de forma automática. Ex: requisição de API ou pergunta de chatbot.
Mensagem do usuário: é a absorção de informações durante a jornada, criando uma variável com um valor a ser preenchido. Ex: resposta do usuário a partir de uma pergunta.
- Ponto de decisão: divisão do caminho do fluxo, com base em decisões.
- Controle de variáveis: Durante a construção do fluxo, em qualquer ponto entre o step inicial e final, pode ser adicionado o componente de variáveis, e sua funcionalidade se restringe a declarar e atribuir valor as variáveis. Essas variáveis podem ser utilizadas em outros componentes ou lógicas no fluxo:
- Título: título para o controle de variáveis (opcional).
- Nome: nome da variável.
- Expressão: valor que será atribuído a variável ou expressão que definirá o valor.
Logo abaixo, são listadas as integrações disponíveis para serem utilizadas durante a conversa.
- Disparar SMS: permite que em determinado momento seja enviado um SMS para determinado telefone.
- Gera URL: passo que gera URL da sessão de chat a ser enviado para o usuário.
- Timer: tempo de espera para executar o próximo passo do chatbot.
- Lead: integração com ferramenta de Inbound Marketing (RD Station ou Sharpspring) para geração de lead.
- Ticket: integração com ferramenta ZenDesk para criação de Ticket.
- Fork: cria uma bifurcação (paralelismo) no fluxo, permitindo a execução de duas jornadas simultâneas.
- Join: agrupa a bifurcação dos passos(steps) realizada pelo Fork.
- Json API: cria de uma chamada de API externa.
- Configura Webhook: cria a comunicação de um Webhook.
- Recebe Webhook: permite configurar um recebimento de retorno de resposta via Webhook.
Há, ainda, os passos (steps) de interação do fluxo que já armazenam a resposta do usuário. Confira.
- Dispara e-mail;
- Valida CNPJ;
- Valida CPF;
- Google Agenda;
- Consulta CEP;
- Valida E-mail;
- Valida Telefone;
- Integração Watson;
- Componente Zenvia Chat;
- Pergunta Nome;
- Pergunta Data;
- Pesquisa NPS.

Criar novo passo: Mensagem do Sistema
1. Mensagem (mensagem simples ou pergunta)
Aqui, podemos enviar uma mensagem simples ao usuário ou uma pergunta.
Para utilizar dados patrocinados*, deve-se mudar o domínio do chat para m.chatbot.zenvia.com.
Dados utilizados na navegação não são cobrados do usuário, também são chamados de 0800.
Para utilizar dados patrocinados*, deve-se mudar o domínio do chat para m.chatbot.zenvia.com.
Dados utilizados na navegação não são cobrados do usuário, também são chamados de 0800.
Ao adicionar tráfego de dados multimídia (imagens, por exemplo), a navegação passa a ser cobrada.
Opção disponível para o plano Enterprise.
Para adicionar perguntas de interação com o usuário na qual você oferece as respostas, inforrme os campos abaixo.
Opção disponível para o plano Enterprise.
Para adicionar perguntas de interação com o usuário na qual você oferece as respostas, inforrme os campos abaixo.
- Pergunta: corpo da mensagem da pergunta.
- Opções de resposta: serão opções de respostas para os usuários, sendo necessário, no mínimo, 2 respostas.
2. Mídia
Aqui, é possível ser feito o upload de imagens, fotos, arquivos, GIFs.
3. Botões
Os botões são opções de resposta ou links. Existe uma limitação de 3 respostas dadas as características dos canais. Há um limite de caracteres por botão, ou seja, se em um botão o cliente inserir duas palavras, por exemplo: (Botões Teste), ao usar um espaço entre as plavaras, o limite será de 20 caracteres. Em contra partida se não houver espaço entre as palavras, não há um limite encontrado.
No WhatApp, a limitação é de apenas 3 botões por regra do próprio canal:
4. Cartão
O cartão é uma opção visual com imagem e descrição do produto.
Informe o título do cartão e a mensagem a ser enviada. Depois, carregue a imagem ou insira uma URL. Por fim, acrescente os botões com possibilidade de link externo e as sugestões de resposta para o usuário.
5. Carrossel
O carrossel é uma maneira ou um formato de você anunciar o seu produto. O carrossel nada mais é que um conjunto de cartões, em que é possível ter sequências com várias imagens e descrições do produto. O carrossel trabalha com o conceito de rotação, ou seja, são mensagens diferentes que vão ser exibidas em rodízio.
Com isso, você pode colocar no Facebook, por exemplo, de 3 a 5 imagens do seu produto (para mostrar detalhes diferentes) ou anunciar itens distintos. Além do dinamismo, a outra vantagem é que cada imagem tem descrições e link próprios. Isso acaba multiplicando as chances de cliques pelos usuários.
No Zenvia Bots, informe o título do cartão e a mensagem a ser enviada em cada carrossel. Depois, carregue a imagem ou insira uma URL. Por fim, acrescente os botões com possibilidade de link externo e as sugestões de resposta para o usuário.


6. Lista (WhatsApp)
A opção de lista permite literalmente listar as alternativas para o seu cliente selecionar. Atualmente este recurso está disponível para o canal Whatsapp e com limitações de 10 linhas e somente uma opção selecionável.
É possível criar até 10 seções, mas mesmo assim, o total de linhas de todas as sessões não pode ultrapassar 10 itens.
Exemplo: Na lista abaixo, temos o número máximo de linhas (10) e o receptor da mensagem poderá escolher somente 1 opção dentre as 10.
Seção 1 = Roupas
Itens:
- linha 1 = camiseta
- linha 2 = calça
- linha 3 = meia
- linha 4 = maio
- linha 5 = saia
Seção 2 = Acessórios
Itens
- linha 6 = óculos
- linha 7 = bolsa
- linha 8 = anel
Seção 3 = Bebidas
Itens
- linha 9 = água
- linha 10 = café
Preenchimento dos campos iniciais
- Título: Escolha um título para a mensagem (obrigatório)
- Mensagem a ser enviada: Descreva algo que deseja sobre as sessões que serão criadas (obrigatório)
- Rodapé: Crie um rodapé (opcional)
- Título do botão: Crie um título para o botão (obrigatório)
Flow:
Interação com o usuário:
Preenchimento das seções
Seguindo o exemplo da lista acima, haverão os campos de:
Título da seção: Inserir a informação principal da seção
Itens da seção:
Título da seção: Inserir a informação principal da seção
Itens da seção:
- Identificador do item da seção: nesse campo deverá ser inserido o ID do item, onde posteriormente você poderá tratá-lo na continuação do fluxo. Ele é considerado como o valor fixo da opção selecionada (obrigatório).
- Título do item da seção: Informação que será apresentada na tela do usuário (obrigatório).
- Descrição do item da seção: Informação que será apresentada na tela do usuário como descrição do item selecionado (opcional).
Interação com o usuário
Aplicativo no celular:
Web Browser:

Inserir mais opções
Selecione o botão de "+" no segmento desejado (título ou item) que as novas opções surgirão na parte inferior da tela.
Exemplo:
Step do Flow:
Interação com o usuário:
Outro exemplo de lista:
Seleção
Nesse momento é possível selecionar apenas uma das opções da lista, por limitação do canal WhatsApp.
Criar novo passo: Mensagem do Usuário
Por definição, o passo (step) Mensagem do Usuário corresponde à absorção de informações durante a jornada, criando uma variável com um valor a ser preenchido.
Criar novo passo: Mensagem do Usuário
Por definição, o passo (step) Mensagem do Usuário corresponde à absorção de informações durante a jornada, criando uma variável com um valor a ser preenchido.
- Para configurar, não é obrigatório inserir um Título do passo.
- No campo nome deverá ser inserido o nome da sua variável, exemplo: data_nascimento.
- Em Expressão, deixe a palavra payload que representa qualquer carga de uma transmissão de dados, ou seja, refere-se aos dados recebidos pelo sistema destinatário.
Por ser um passo denominado como Mensagem do Usuário, o fluxo fica paralisado neste momento da jornada aguardando a ação de resposta para prosseguir.
Criar novo passo: Ponto de decisão/árvore de decisão
A partir da resposta do usuário, é possível decidir o caminho que ele irá percorrer, criando pontos de decisão, conforme preenchimento dos campos abaixo.
Criar novo passo: Ponto de decisão/árvore de decisão
A partir da resposta do usuário, é possível decidir o caminho que ele irá percorrer, criando pontos de decisão, conforme preenchimento dos campos abaixo.
- Título: título para o ponto de decisão (opcional).
- Nome: nome para o ponto de decisão que será orientado pela seta.
- Tipo: Keyword ou Expression Language - entendimento do chatbot.
- Condição: relacionada à resposta do usuário.
- Opções de tratamento de respostas inválidas: O chatbot pode responder automaticamente quando não entender a mensagem do usuário.
Utilize a opção Adicionar ao fluxo tratamento para respostas do usuário inválidas(opcional) para configurar uma mensagem onde seu fluxo irá responder, caso o usuário digite errado ou pergunte algo que seu fluxo não sabe ainda.
- Keyword: é uma função que busca palavras-chave na última interação do usuário. Existindo a palavra, a decisão é tomada de acordo com ela.
- Expression Language: possibilita que o usuário monte expressões lógicas (comparando um atributo para gerar uma booleana, por exemplo) ou valide condicionais. Essa opção pode ser utilizada sem associação com a mensagem.
Veja aqui o artigo completo sobre o Ponto de Decisão/árvore de decisão.
Json - Abrindo o Json do fluxo
No menu lateral, conforme mencionamos lá no início, no ícone roxo, é possível abrir a exibição do código do fluxo do chatbot construído, em JSON.
As alterações feitas na interface alteram o código, assim como as alterações do código alteram o fluxo exibido.
Na primeira parte, temos a configuração dos passos. Esta parte do código é responsável pela construção dos passos de interação, resposta ou steps avançados.
Na segunda parte, temos a configuração das conexões, com as referências de/para, nas quais também são consideradas as lógicas que determinam os caminhos a serem seguidos dentro do fluxo.
No fim da estrutura está a configuração do canal conversacional.
💡Dica:Todos os fluxos criados pela inteface do Zenvia Bots adicionam o campo "historic" no json, com o valor inicial false.
Para que o histórico passe a ser enviado nas integrações com o Zenvia Chat e o Zenvia Conversion, por exemplo, este campo tem que ser configurado para o valor true, conforme demonstrado abaixo:
{
"alias": "30/01/2023 08:50:11",
"description": "",
"historic": true,
"steps": [
{
"id": "idEventoInicial".