Este conteúdo é extenso, então para te ajudar, segue aqui ao lado os títulos específicos de cada passo. É só clicar que você será direcionado!
No artigo Construindo um fluxo de chatbot vimos a breve relação sobre os passos (steps) disponíveis para a criação dos fluxos.
Abaixo iremos detalhar cada um deles e suas respectivas funções:
Criar novo passo: Disparar SMS
Aqui, você pode enviar um SMS durante um fluxo preenchendo os campos Título do passo (opcional) e Mensagem a ser enviada.
Na mensagem podem ser enviadas variáveis no formato padrão, por exemplo #{username}, caso sejam preenchidas ou respondidas durante a jornada.
Certifique-se que:
- A opção Sobrescrever destinatários originais seja selecionada;
- No campo Destinatário precisa-se inserir uma variável que possua como valor o número de telefone com DDI+DDD+número, exemplo 5551999999999;
- A forma como você irá escrever a variável no campo, exemplo "#{phone}", deverá ser informado apenas o nome sem os caracteres especiais, isto é, "phone".
💡Dica: Caso você utilize o componente Valida telefone padrão da Zenvia, a variável de saída tel imprime exatamente a informação que o usuário respondeu. Logo, basta orientá-lo a digitar com DDI + DDD + número que o SMS será enviado.
⚠️ Atenção: Para você conseguir enviar SMS de dentro da Zenvia Bots, é necessário ter uma conta específica para envio, contratada:
Criar novo passo: Gera URL
Passo na qual a URL com a sessão de chat é gerada para ser encaminhada ao usuário.
- ID da sala de Web Chat: ID gerado na configuração do canal de chat.
- Domínio do Web Chat: domínio utilizado na sessão do chat.
- Expira em: prazo na qual a sessão de chat irá expirar.
Criar novo passo: Timer
Para criar um temporizador, informe:
- Título do passo (opcional);
- Minutos de espera (tempo de espera para executar o próximo passo).
- Opção de mover as variáveis para o componente de Controle de Variáveis e criar um novo step logo abaixo no fluxo.
Criar novo passo: Lead
O componente Lead permite a integração com as ferramentas de Inbound Marketing RD Station ou Sharpspring, especificamente para geração de leads na base da conta do cliente.
- Acesse o menu superior direito onde está localizado o nome da organização.
- Procure por Integrações.
- E conecte com a solução que a empresa já possui internamente.
A composição do componente é simples:
- Adicione um Título ao passo (opcional).
- Selecione o provedor que você integrou.
- Em Ação, caso seja a primeira vez no fluxo que estiver sendo criado o passo, selecione Criar.
- Para a primeira opção de Campo, selecione E-mail.
- Em Expressão informe a variável do seu fluxo que possua como valor o dado desejado. No caso, o primeiro sempre é o e-mail.
- Escreva-o conforme o padrão da Zenvia Bots: #{user_email}, por exemplo.
Criar novo passo: Fork e Join
O Fork e Join permitem realizar uma bifurcação no fluxo, permitindo que a jornada execute duas tarefas em paralelo. Normalmente são utilizados em lógicas que envolvem controlar o tempo de execução em determinada tarefa. Exemplo: caso a tarefa não seja executada no tempo estimado, e para isso utilizamos também o passo (step) de timer, é possível escalonar o restante da jornada com base do cumprimento, ou não, da condição.
Fork
Cria uma bifurcação, realizando um paralelismo no fluxo, permitindo a execução de duas jornadas simultâneas.
Join
Agrupa a bifurcação dos passos (steps) realizada pelo Fork.
Na prática
Para realizar a configuração é necessário editar o componente com algum dado? Sim.
- Basta abrir o passo (step), excluir a palavra payload no campo Expressão e clicar em OK.
- Automaticamente o Título do passo ficará definido como Dividir o fluxo.
- Para o Join, o título automático é Unificar o fluxo.
No exemplo abaixo, há um cenário onde é questionado ao usuário qual é a sua dúvida e foi inserido um timer de X tempo caso a pergunta não seja respondida. Se o usuário responder a pergunta, a variável #{duvida} será preenchida e o fluxo segue. Caso o tempo seja atingido primento, o fluxo segue com a continuação do Join sem popular a variável.
Aprenda a criar a ramificação e se quiser, copie o Json em um fluxo em branco para ver a estrutura na Zenvia Bots:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111{ "alias": "Teste", "description": "", "steps": [ { "id": "step03", "type": "fork", "properties": { "timeUnit": "minute", "expirationInMinutes": "" } }, { "id": "step0", "type": "sendChatActivity", "properties": { "from": "#{session['chatFrom']}" }, "contents": [ { "type": "text/plain", "payload": { "text": "Qual a sua dúvida?" } } ] }, { "id": "step04", "type": "exclusiveJoin", "properties": { "timeUnit": "minute", "expirationInMinutes": "" } }, { "id": "step02", "type": "chatEvent", "variables": { "duvida": "payload" } }, { "id": "step05", "type": "timerEvent", "properties": { "expiresInMinutes": "2", "timeUnit": "minute", "expirationInMinutes": "" } }, { "id": "idEventoFinal", "type": "endEvent", "label": "label 3", "properties": { "endEvent": "true" } }, { "id": "idEventoInicial", "type": "chatEvent", "label": "Evento inicial", "properties": { "startEvent": "true" }, "variables": { "chatFrom": "empty" }, "conditions": [ { "type": "channelSourceCondition", "values": [ "" ] } ] } ], "connections": [ { "from": "step03", "to": "step02" }, { "from": "step05", "to": "step04" }, { "from": "step03", "to": "step05" }, { "from": "step04", "to": "idEventoFinal" }, { "from": "step02", "to": "step04" }, { "from": "step0", "to": "step03" }, { "from": "idEventoInicial", "to": "step0" } ], "defaultConversationalChannel": "CHAT" }
Criar novo passo: Json API
Passo que permite o fluxo se conectar com outros sistemas, realizando ações que geram resultados a partir de regras Json API (Rest).
Obs: Essa integração somente funcionará com APIs que retornam JSON como resposta.
- O Título do passo, automaticamente é preenchido como Chamada de API, onde a edição é opcional.
- Em Método é possível escolher entre GET, POST, PUT, PATCH e DELETE.
- Em URL é o campo a ser preenchido com o endpoint que o fluxo irá se conectar.
- Caso a chamada possua a obrigatoriedade de ter parâmetros e cabeçalho, insira-os em Parâmetros de consulta e Cabeçalhos (HTTP), respectivamente.
A partir de cada método, o componente muda, variando os campos. Exemplo: ao escolher, POST, PUT, PATCH ou DELETE, habilita a opção de criar o body (corpo) da requisição, onde é possível incluir a formatação necessária para haver êxito na chamada.
Obs: Em qualquer campo do componente Json API é permitido inserir a impressão das variáveis colhidas durante o fluxo, no padrão da Zenvia Bots. Exemplo: #{nome}.
- Geralmente toda a chamada API resulta em um resultado a partir da conexão. Logo, o componente permite usar o formato padrão de absorção da variável, utilizando a expressão #{response} como padrão, clicando conforme abaixo:
Veja um exemplo prático através deste artigo: Configurando a integração com API externa.
Importante!A Zenvia Bots não aceita caracteres especiais nos parâmetros, por exemplo, $. Você pode adicionar esse tipo de caractere nos query parameters com aspas simples, por exemplo '$param1' ou adicionar diretamente na URL para aonde vai fazer o GET.
Criar novo passo: Configura Webhook
Configurar um Webhook em uma jornada automatizada é uma opção prática que possibilita construir a comunicação entre dois ambientes.
Na Zenvia Bots, para implementar este passo (step), basta seguir as orientações abaixo:
- Crie um Título do passo (opcional).
- Defina o Tipo do Webhook (Fixo ou Dinâmico).
- Crie um Identificador / nome do Webhook.
- Automaticamente, assim que você gerar o Identificador, a URL será gerada.
- Em Contato (chave primária), é necessário inserir a informação utilizada para identificar o retorno da chamada, para o fluxo. Ou seja, o que estamos esperando como sendo o ID da conversa, definido com qualquer nomenclatura. Esse campo garante a segurança dos dados.
- Em Json Path, o que o meio externo (API) precisa devolver para fazer chaveamento com o campo Contato.
- Em Opções Avançadas, há a opção de declarar variáveis novas para serem usadas durante todo o fluxo, conforme a necessidade do criador da jornada.
Criar novo passo: Recebe Webhook
Este passo representa o Webhook em estado de aguardo, esperando o ID da chamada e outras informações para poder consumir e seguir na jornada.
- Insira um Título do passo (opcional)
- Utilize as variáveis padrões listadas no componente para gerir as informações ou separe o retorno das variáveis (instanciar o conteúdo recebido), assim como na chamada de Json API, localizado nesse mesmo artigo.
Criar novo passo: Dispara E-mail
Contemplando a biblioteca de componentes inteligentes dentro da Zenvia Bots, há o passo (step) que proporciona disparos de e-mail em determinado momento da jornada. Ele não fica visível para o usuário no momento da ação, ou seja, o disparo acontece em paralelo com a experiência a partir do gatilho configurado.
Para que esse processo seja realizado com sucesso, é necessário:
- Cliente possuir a contratação da ferramenta de mercado SendGrid.
- Acesse o menu superior direito, onde está localizado o nome da organização.
- Procure por Integrações.
- E conecte o ID da sua conta SendGrid no campo de E-mail.
Para editar o componente, siga os passos abaixo:
- Assunto do e-mail: informação visível no e-mail principal, com o tema proposto da comunicação.
- Endereço do e-mail de origem: demonstra de onde está partindo o e-mail ou quem está enviando.
- Endereço do e-mail de destino: dado que representa para quem será enviado.
- Conteúdo do e-mail: conteúdo de comunicação desejada.
Lembrando que, todos os campos de texto podem ser frisados com variáveis.
Falando em variáveis: o que acontece quando o e-mail não é disparado em alguns casos?
Principal cenário de atenção:
Se for disparado um e-mail imprimindo algumas variáveis do fluxo no Conteúdo, obrigatoriamente precisamos popular todas elas com as respectivas informações.
Caso ocorra de alguma variável estar sem conteúdo (vazia), o Dispara E-mail não irá compreender a ação e ela não acontecerá!
Ou seja, não informe no conteúdo do e-mail variáveis que não passaram pelo caminho da jornada.
Criar novo passo: Valida CNPJ
Componente que pergunta o CNPJ de um usuário e aguarda a resposta. A partir disso é validada a informação e caso não haja o padrão de um CNPJ válido, o questionamento é realizado novamente.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Pergunta após resposta incorreta: frase enviada ao usuário quando o CNPJ respondido não esteja correto.
- Pergunta inicial: texto para perguntar ao usuário qual o CNPJ.
- Quantidade máxima de tentativas: quantidade de tentativas que o usuário terá para informar o CNPJ, ficando no looping de pergunta e resposta.
- Mensagem de desistência: texto para enviar após o usuário errar a quantidade de vezes estabelecida.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- CNPJ formatado: #{user_cnpj_formatted} - Formata o CNPJ com pontuação e traço.
- CNPJ válido: #{is_cnpj_valid} - Informa se o CNPJ respondido é true ou false.
- CNPJ do usuário: #{user_cnpj} - CNPJ digitado pelo usuário.
Lembrete!Caso seja configurado um limite de X tentativas para o usuário responder corretamente e mesmo assim não houve sucesso na resposta, a variável de saída #{is_cnpj_valid} será igual a false. Ou seja, é possível realizar uma validação inserindo um Ponto de Decisão após o passo (step) de Valida CNPJ com a regra de que caso is_cnpj_valid == false, a jornada tomará outro rumo, como atendimento humano, por exemplo.
Criar novo passo: Valida CPF
Componente que pergunta o CPF de um usuário e aguarda a resposta. A partir disso é validada a informação e caso não haja o padrão de um CPF válido, questiona-se novamente.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Pergunta inicial: texto para perguntar ao usuário qual o CPF.
- Pergunta após resposta incorreta: frase enviada ao usuário quando o CPF respondido não esteja correto.
- Quantidade máxima de tentativas: quantidade de tentativas que o usuário terá para informar o CPF, ficando no looping de pergunta e resposta.
- Mensagem de desistência: texto para enviar após o usuário errar a quantidade de vezes estabelecida.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- CPF formatado: #{user_cpf_formatted} - Formata o CPF com pontuação e traço.
- Qtd tentativas erros: #{countTries} - Mostra a quantidade de tentativas.
- CPF válido: #{is_cpf_valid} - Informa se o CPF respondido é true ou false.
- CPF do usuário: #{user_cpf} - CPF digitado pelo usuário.
Lembrete!Caso seja configurado um limite de X tentativas para o usuário responder corretamente e mesmo assim não houve sucesso na resposta, a variável de saída #{is_cpf_valid} será igual a false. Ou seja, é possível realizar uma validação inserindo um Ponto de Decisão após o passo (step) de Valida CPF com a regra de que caso is_cpf_valid == false, a jornada tomará outro rumo, como atendimento humano, por exemplo.
Criar novo passo: Valida CEP
A Pergunta CEP valida o formato da informação, verifica a sua existência na API pública http://viacep.com.br e retorna informações de UF, Cidade, Bairro e rua.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Pergunta CEP: texto para perguntar ao usuário qual o CEP.
- Pergunta após resposta incorreta: frase enviada ao usuário quando o CEP respondido não esteja no formato correto.
- Pergunta após CEP não encontrado: texto para enviar após o usuário informar um CEP inexistente.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- Logradouro: #{logradouro} - Imprime o endereço do CEP.
- Localidade: #{localidade} - Cidade do CEP.
- CEP: #{cep} - CEP informado.
- Bairro: #{bairro} - Bairro do CEP.
- UF: #{uf} - Estado do CEP.
Criar novo passo: Valida E-mail
Pergunta o e-mail de um usuário, valida a partir das regras de pontuação e estrutura padrão (exemplo@dominio.com) e armazena a resposta.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Pergunta inicial: texto para perguntar ao usuário qual o E-mail.
- Pergunta após resposta incorreta: frase enviada ao usuário quando o E-mail respondido não esteja correto.
- Quantidade máxima de tentativas: quantidade de tentativas que o usuário terá para informar o E-mail, ficando no looping de pergunta e resposta.
- Mensagem de desistência: texto para enviar após o usuário errar a quantidade de vezes estabelecida.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- E-mail válido: #{is_email_valid} - Informa se o E-mail respondido é true ou false.
- E-mail do usuário: #{user_email} - E-mail informado na resposta.
Lembrete!Caso seja configurado um limite de X tentativas para o usuário responder corretamente e mesmo assim não houve sucesso na resposta, a variável de saída #{is_email_valid} será igual a false. Ou seja, é possível realizar uma validação inserindo um Ponto de Decisão após o passo (step) de Valida CPF com a regra de que caso is_email_valid == false, a jornada tomará outro rumo, como atendimento humano, por exemplo.
Criar novo passo: Valida Telefone
O componente Valida Telefone exerce a função de permitir que o usuário digite um número de telefone no formato com DDD + número.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Texto para solicitar o telefone: pergunta inicial ao usuário.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- Telefone Formatado: #{telFormatado} - Dado impresso formatado (XX) XXXX-XXXX.
- Tipo de Device: #{tipoTelefone} - Realiza a distinção entre fixo e celular.
- Telefone: #{tel} - Número do telefone sem formatação.
Criar novo passo: Pergunta Nome
A funcionalidade do Pergunta Nome realiza o questionamento ao usuário, questionando o seu nome e armazena a resposta.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Pergunta: pergunta inicial ao usuário.
- Pergunta após resposta incorreta: questionamento caso resposta incorreta.
Variáveis de saída*:
* São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- Nome do usuário: #{username} - Nome respondido
Criar novo passo: Pergunta Data
O componente de Pergunta Data valida uma resposta no formato de dd/MM/aaaa, realizando o tratamento quando o usuário digitar algum elemento divergente do padrão.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Pergunta inicial: texto para perguntar ao usuário qual a Data.
- Pergunta após resposta incorreta: frase enviada ao usuário quando a Data respondida não esteja correta.
- Quantidade máxima de tentativas: quantidade de tentativas que o usuário terá para informar a Data, ficando no looping de pergunta e resposta.
- Mensagem de desistência: texto para enviar após o usuário errar a quantidade de vezes estabelecida.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- Data válida: #{is_date_valid} - Informa se a Data respondida é true ou false.
- Data: #{user_date} - Data respondida com a formatação.
O Pergunta Data também possui a mesma lógica de outros componentes vistos nesse artigo (como valida CNPJ e CPF), com o que diz respeito ao tratamento de tentativas.
Criar novo passo: Pesquisa NPS
O passo de NPS permite a criação de uma pesquisa de satisfação durante a jornada do fluxo.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Pergunta Quantitativa: questionamento a respeito do grau de satisfação do usuário.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- Nota: #{nota} - Nota quantitativa.
- Resp_qualitativa: #{resp_qualitativa} - Comentário caso a nota esteja abaixo da média esperada.
Criar novo Passo: Integração Zenvia Conversion
Os clientes que contrataram a Zenvia Conversion podem adicionar este plugin em seu fluxo no momento que entenderem ser necessário o transbordo para atendimento humano.
Como funciona?
Como funciona?
Basicamente, o usuário inicia uma conversa pelo canal WhatsApp e no momento que a automação chegar ao step de 'Integração Zenvia Conversion' o usuário é transferido para uma sala com atendentes na aplicação da Zenvia Conversion.
A atendente mantem o atendimento personalizado pelo canal de WhatsApp e ao finalizar a conversa, a interação com usuário pode ser encerrada ou retornada à automação do fluxo.
A atendente mantem o atendimento personalizado pelo canal de WhatsApp e ao finalizar a conversa, a interação com usuário pode ser encerrada ou retornada à automação do fluxo.
Configurando as informações de entrada*:
As informações estão subdivididas em essenciais e mais parâmetros. Onde, o primeiro grupo é de preenchimento obrigatório e o segundo opcional.
Seguindo a tendência pela maioria dos casos, os campos já estão preenchidos com uma frase de sugestão, mas você pode ajustar as mensagens e demais configurações de forma que fique integrado à proposta de seu fluxo.
Seguindo a tendência pela maioria dos casos, os campos já estão preenchidos com uma frase de sugestão, mas você pode ajustar as mensagens e demais configurações de forma que fique integrado à proposta de seu fluxo.
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
A primeira entrega desta funcionalidade requer alguns cuidados na configuração:
1- Somente para o canal WhatsApp, sendo que o número do canal credenciado na Zenvia Conversion deve ser o mesmo credenciado na Zenvia Bots;
2- Somente após a contratação do produto Zenvia Conversion e a conta de WhatsApp será gerado um token de acesso informado pela Zenvia Conversion e cadastrado no plugin Zenvia Conversion da Zenvia Bots.
Criar novo passo: Mês por extenso
A funcionalidade do Mês por extenso realiza a identificação do número enviado e retorna o mês por extenso para uso no fluxo.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
- Número do mês: variável criada para armazenar o número correspondente ao mês
Variáveis de saída*:
*São dados que podem ser utilizados na continuidade do fluxo, estabelecendo regras e informações. Além disso, ao utilizar o componente não há necessidade de criar uma Mensagem do Usuário para absorção da resposta, pois o dado já será preenchido em uma das variáveis de saída.
- month_name: variável que terá o mês por extenso correspondente ao número enviado como parâmetro de entrada.
Criar novo Passo: Integração Watson
Com a utilização do componente há possibilidade de cadastrar as credenciais da Workspace do Watson Assistant que a empresa já possui, gerando ações sobre bases de conhecimento, prevendo saídas específicas a partir de respostas configuradas.
Configurando as informações de entrada*:
*Informações de entrada referem-se a dados obrigatórios para que a lógica do passo (step) seja realizada com êxito.
*Todas as informações a seguir do Watson deverão ser retiradas diretamente na página de Skills do Watson, buscando as informações de API Details, especificamente acessando a base de conhecimento (dados) que será desejada para a integração.
Local acessando o Watson (IBM) para a composição do componente:
- Código de Autorização: código em Base64, concatenando as informações de API key e seu valor apresentado na tela. Exemplo:
Uma dica para concatenar os dados é utilizar o site https://www.base64encode.org/ e inserir o dado conforme abaixo:
O dado resultante será, nesse formato: YXBpa2V5OnQ5gTU1nZU5hV0FWXXbkJ2ZWJaWnFpLWFlWQldKYzhoNGw=
Insira esse resultado acompanhado da palavra “Basic”:
Basic YXBpa2V5OnQ5gTU1nZU5hV0FWXXbkJ2ZWJaWnFpLWFlWQldKYzhoNGw=
- URL do Watson: início da URL localizada no campo Legacy v1 workspace URL:
Inserir o dado apenas até o .net ou até o .com
- Restante da URL: inserir o restante da URL localizada no campo Legacy v1 workspace URL, inserindo a informação /?version=2018-09-20 no final. Exemplo:
/assistant/api/v1/workspaces/b2a4d877-8a6f-4d6f-981e-XXXXX287d27/message/?version=2018-09-20
Ou
/instances/b2a4d877-8a6f-4d6f-981e-XXXXX287d27/v1/workspaces/c8eabcad-XXX-48a2-XXX-d1b7f205XXc6/message/?version=2018-09-20
- Mais parâmetros: opção para informar as intenções de saída do Watson, continuando o fluxo conversacional.
- Nome das intenções para saída do Watson: nomear as intenções que estão configuradas dentro do Watson Assistant, fazendo com que no momento em que elas sejam acionadas na ferramenta, o componente retorne para a jornada na Zenvia Bots. Exemplo:
Caso haja uma intenção chamada AtendimentoHumano, onde a pessoa pede para falar com um atendente e nesse momento o Watson associa com a intenção, o usuário é retornado ao Zenvia Bots para ser direcionado a um humano no mesmo momento.
Variáveis de saída:
- Intenção do Watson que sairá para o fluxo guiado: #{out01} - nome da intenção por escrito.
Template de exemplo para ser utilizado na Zenvia Bots
Copie todo o Json abaixo e cole em um novo fluxo, substituindo o código existente para visualizar a lógica inicial com algumas dicas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208{ "alias": "[Template] Fluxo com Watson Assitant", "description": "", "steps": [ { "id": "step0", "type": "callComponent", "label": "Integração Watson", "properties": { "componentId": "a531c540-9627-4fbf-891b-567ea61b7a64", "timeUnit": "minute", "expirationInMinutes": "" }, "inputs": { "intents": "'atendimento, sair, voltarMenu'", "authorization_Watson": "'[CÓDIGO EM BASE 64 DA APIKEY:CÓDIGO]'", "url_Watson": "'[URL DA CONTA ATÉ .NET]'", "resource_Watson": "'[RESTANTE DA URL, INSERINDO \"/?version=2018-09-20\" ao final da URL. Ex: 12345/message/?version=2018-09-20]'" } }, { "id": "step03", "type": "branch", "label": "Qual direção?" }, { "id": "step04", "type": "sendChatActivity", "properties": { "from": "#{session['chatFrom']}" }, "contents": [ { "type": "text/plain", "payload": { "text": "Tchau!" } } ] }, { "id": "step02", "type": "chatEvent", "properties": { "timeUnit": "minute", "expirationInMinutes": "" }, "variables": { "userMsg": "payload" } }, { "id": "step020", "type": "sendChatActivity", "properties": { "from": "#{session['chatFrom']}" }, "contents": [ { "type": "text/plain", "payload": { "text": "Conversação e configure o Watson Assitant conforme a sua conta na IBM" } } ] }, { "id": "idEventoFinal", "type": "endEvent", "label": "label 3", "properties": { "endEvent": "true" } }, { "id": "idEventoInicial", "type": "chatEvent", "label": "Evento inicial", "properties": { "startEvent": "true" }, "variables": { "chatFrom": "empty" }, "conditions": [ { "type": "channelSourceCondition", "values": [ "" ] } ] }, { "id": "step0202", "type": "sendChatActivity", "properties": { "from": "#{session['chatFrom']}" }, "contents": [ { "type": "text/plain", "payload": { "text": "Quando o usuário responder uma pergunta para que seja absorvida no Watson, a variável precisa sempre ter a nomenclatura de \"userMsg\". Pois assim conseguimos entrar na base da IA." } } ] }, { "id": "step0203", "type": "sendChatActivity", "properties": { "from": "#{session['chatFrom']}" }, "contents": [ { "type": "text/plain", "payload": { "text": "Há como configurarmos saídas de intenções específicas dentro do Watson. Ou seja, o cliente só interage com o bot novamente caso dentro da conversa na IA a resposta seja equivalente a alguma intenção de escape configurada no componente. Ex: interação na IA bate na intenção \"atendimento\", o componente do Flow identifica a intenção e popula a variável OUT01 com o seu nome. E com isso, é possível direcionar a jornada conforme exemplo abaixo." } } ] }, { "id": "step05", "type": "sendChatActivity", "properties": { "from": "#{session['chatFrom']}" }, "contents": [ { "type": "text/plain", "payload": { "text": "Atendimento Humano" } } ] } ], "connections": [ { "from": "step02", "to": "step0" }, { "from": "step03", "to": "step05", "label": "Atendimento", "conditions": [ { "type": "elCondition", "expression": "out01 == 'atendimento'" } ] }, { "from": "step04", "to": "idEventoFinal" }, { "from": "step03", "to": "step04", "label": "Sair", "conditions": [ { "type": "elCondition", "expression": "out01 == 'sair'" } ] }, { "from": "step020", "to": "step0202" }, { "from": "step0", "to": "step0203" }, { "from": "step0203", "to": "step03" }, { "from": "step03", "to": "step020", "label": "Voltar", "conditions": [ { "type": "elCondition", "expression": "out01 == 'voltarMenu'" } ] }, { "from": "step05", "to": "idEventoFinal" }, { "from": "step0202", "to": "step02" }, { "from": "idEventoInicial", "to": "step020" } ], "defaultConversationalChannel": "CHAT" }