Chatbot Programming

30 abr, 2026

Dicas do Voice Flow

Publicidade

O Voiceflow é uma ferramenta online que permite, de maneira visual e sem precisar saber programar, que você desenhe, prototipe e publique skills para Alexa ou Actions para o Google.

Na versão paga é possível criar inúmeros projetos de forma colaborativa.

Caso tenha vindo direto para esse artigo, existe um outro artigo com os comandos do fluxo lógico

Briefing

Nosso programa consiste em uma skill que procura em uma base de dados on line informações sobre um remédio informado pelo usuário. A skill reproduzirá as indicações do remédio e oferecerá opções ao usuário, perguntando se ele deseja escutar sobre as contra indicações, a dosagem ou que as informações sejam enviadas por email.

Exemplo de interação:

Pessoa: “assistente virtual, abre o bula legal”
Assistente: “De qual remédio deseja saber a bula?”
Pessoa: “do Redoxon”
Assistente: “O redoxon é indicado para gripes e resfriados. Além dessa informação deseja saber as contra indicações ou dosagem? Caso prefira posso enviar todas as informações para seu email”
Pessoa: “Manda para meu email”
Assistente: “Email enviado”

https://miro.medium.com/v2/resize:fit:239/1*3v8W5ryEFNmNMbvrzIVFkw.png

Bloco Avançado no voice flow

Conceitos de interfaces de voz

Antes de entrar a fundo na implementação, vou apresentar alguns conceitos fundamentais na prototipação de interfaces de voz.

Um exemplo: “Quero buscar a bula do remédio Dorflex

Utterance: O que o usuário pode dizer como “Gostaria de buscar a bula do remédio Dorflex”, “Bula do remédio” ou “Buscar a bula do remédio Dorflex”

Slot: Informação dentro de uma utterance, no caso do exemplo acima é Dorflex.

Intent: Qual intenção foi demonstrada no utterance, que na nossa skill será obter a informação de uma bula.

Interaction

Permite uma interação com o usuário e captura sua intenção(Intent) e o valor (slot) do que o usuário disse (utterance).

No fluxo Intents será necessário tentar prever o maior número de possíveis cenários para a resposta da sua pergunta. Quando houver a build da sua skill, quanto maior a quantidade de sinônimos para a resposta, maior a chance da skill conseguir sucesso para respostas diferentes das previstas.

Para ter maior assertividade nessas respostas, não há muito mistério: Entreviste o seu usuário.

https://miro.medium.com/v2/resize:fit:387/1*JsPpFE3JNfWkc6kyjTR55w.png

Aba de Intenções (Intents)

Na aba Slots será necessário preencher a lacuna onde o usuário preencherá a informação a ser colhida.

Pergunta da assistente: “De qual remédio deseja saber a bula?”

Exemplo de respostas que serão entendidas são “do Dorflex”, “Paracetamol”, “remédio Afrin”, “o Naldecon”.

Além dos slots customizados, como o do exemplo, também é possível usar os pré-cadastrados como Número, Primeiro nome, data, dia, mês, ano e muitos outros.

https://miro.medium.com/v2/resize:fit:373/1*9OUOey9lu9LS4c_QXNAKKg.png

Na aba Choice finalmente preenchemos a informação dita pelo usuário na nossa variável {remedio}.

https://miro.medium.com/v2/resize:fit:190/1*1jqq2cKxLC8bdSjfn0HaCQ.png

Variáveis criadas

https://miro.medium.com/v2/resize:fit:384/1*uZstVtaW4Byfd4Q6hCrDsA.png

Integration

Esse é um recurso que permite fazer uma integração via API Rest ou com alguma planilha e isso permite que você possa pegar e tratar todo tipo de dado em um serviço no backend da sua aplicação, e trazer o resultado de forma simples para o seu fluxo.
Na imagem abaixo o fluxo faz uma chamada via http GET em um endpoint passando o valor da variável {remédio}. Uma vez com a resposta basta mapear o retorno json nas variáveis criadas no voiceflow.

https://miro.medium.com/v2/resize:fit:277/1*wxcSQTC2G7ggN11ivHLaaQ.png

JSON de resposta

https://miro.medium.com/v2/resize:fit:374/1*m-wEO4PTPeUTECUInI7Abw.png

Ferramenta chamando uma API Rest

Mais opções

Depois de ter todas as informações a assistente vai falar qual a indicação do remédio e dar opções de falar sobre contra indicação, dosagem ou enviar email com todos os dados.

https://miro.medium.com/v2/resize:fit:376/1*MwKhs4JVgBhsIRyBH6gXgw.png

Enviando email

É possível ter acesso a muitas informações (email, nome, data de nascimento, localização) do usuário mediante permissão prévia para isso. No momento da ativação da skill será perguntado ao usuário se deseja dar permissão para a skill ter acesso a aquele dado assim como poderá revogar o acesso a qualquer momento.

Press enter or click to view image in full size

https://miro.medium.com/v2/resize:fit:700/1*F5bBsYPZl-u-X1qwhnPhrg.jpeg

Para ter acesso é necessário um fluxo do bloco de usuário chamado Permission e linkado com ele o User Info que vai preencher a informação em alguma das suas variáveis.

https://miro.medium.com/v2/resize:fit:529/1*RVn14kkk3T3nhGJq0Zeb5w.png

Blocos verdes necessários para buscar algum dado do usuário

Pontos fortes na ferramenta

1 — Mesmo sem conhecimento prévio de programação, desenvolver uma skill ou action no VoiceFlow é muito simples. A aprendizagem é rápida e intuitiva.

2 — VoiceFlow guarda as últimas 10 versões do seu projeto. Caso queira se desfazer da versão atual, pode apenas restaurar uma das 10 últimas versões que foram enviadas para o console(Alexa developer ou Google console).

3 — É possível compartilhar o fluxo para que outras pessoas testem (Não há relatório desses testes, ou seja, precisam ser acompanhados in loco).

Pontos de melhorias da ferramenta

1 —Muitas vezes um fluxo recém-apagado é enviado para o console juntamente com a skill, prejudicando o resultado dos testes. Quando isso ocorre, esse fluxo precisa ser apagado a cada nova build, diretamente no console.

2 — O teste na ferramenta, do site de desenvolvedor e do próprio assistente físico as vezes dão resultados diferentes.

3 — Apesar do versionamento interno, não encontrei uma forma de exportar para o git ou outro sistema de controle de versão fora da ferramenta.

#OFF TOPIC

Uma funcionalidade não usada no exemplo acima mas bem útil é a Code. Ela permite colocar código javascript no seu fluxo. Permite usar todas as funções que existem nessa linguagem.

https://miro.medium.com/v2/resize:fit:384/1*wPvMwpq9_kZflS1uR0dHNQ.png

No quadro acima estamos preenchendo a variável “dose” com o valor da data de hoje

Conclusão

Nesse artigo vimos como usar interações com o usuário, como capturar o valor da informação passada, integrar com APIs Rest, pedir permissão e usar um dado privado do usuário.