Voice Bot Design
Esta skill capacita o Claude a projetar, prototipar e otimizar interfaces conversacionais de voz, focando em usabilidade, fluxo natural e integração com plataformas de automação.
Keywords
IVR, ASR, TTS, NLU, VUI, Voice UX, Design Conversacional, Diálogo de Voz, Fluxogramas de Voz, Teste de Usabilidade de Voz, Automação por Voz, Integração de APIs de Voz.
Quick Start
- Mapear Jornada do Usuário por Voz: Esboçar o caminho crítico que um usuário percorre para resolver uma necessidade específica através do bot de voz, identificando pontos de decisão e expectativas de fala. Ex:
(Início: "Quero agendar") -> (Bot: "Qual serviço?") -> (Usuário: "Limpeza") -> (Bot: "Data e Hora?") -> (Fim: "Agendamento confirmado").
- Definir Gramática de Interação: Criar listas de frases e palavras-chave que o usuário provavelmente usará para cada intenção, alimentando o modelo de NLU (Natural Language Understanding). Ex: Para a intenção
solicitar_saldo, frases como ("qual meu saldo", "quanto tenho na conta", "saldo atual").
- Prototipar Fluxo de Diálogo no Voiceflow: Construir um protótipo inicial do bot de voz utilizando uma ferramenta como Voiceflow ou Landbot, configurando prompts de TTS e capturas de ASR para simular a interação completa.
- Testar com Usuários Reais (Wizard of Oz): Conduzir testes de usabilidade com participantes reais, onde um humano simula a resposta do bot para coletar feedback sobre a naturalidade do diálogo e a clareza dos prompts, antes de codificar.
- Integrar com Webhooks para Automação Externa: Configurar um webhook na plataforma do bot de voz (ex: Dialogflow CX, Amazon Lex) para disparar um fluxo no Make.com após uma intenção específica, como
agendar_chamada, enviando os dados coletados.
Core Workflows
Workflow 1: Criação de Fluxo de Agendamento de Serviço por Voz com Integração Make.com
Este workflow detalha a construção de um módulo de agendamento de serviço via bot de voz, integrando com um sistema externo de calendário através do Make.com.
Passos Detalhados:
Análise de Intenção e Entidades:
- Intenção Principal:
agendar_servico.
- Entidades Necessárias:
tipo_servico (e.g., "limpeza", "manutenção", "instalação"), data (e.g., "amanhã", "próxima terça"), hora (e.g., "10 da manhã", "14h"), nome_cliente, telefone_cliente.
- Exemplo de Frases de Treinamento (Dialogflow CX):
- "Gostaria de agendar uma
limpeza para amanhã às 10 da manhã."
- "Preciso de uma
manutenção na próxima quinta à tarde."
- "Quero marcar uma
instalação."
Desenho do Diálogo no Voiceflow/Dialogflow CX:
- Prompt Inicial: "Em que tipo de serviço posso ajudar com o agendamento?"
- Captura
tipo_servico:
User: "Uma limpeza."
Bot: "Certo, uma limpeza. Para qual data e hora?"
- Captura
data e hora:
User: "Para quarta-feira que vem, às 9h."
Bot: "Confirmando: agendamento de limpeza para quarta-feira que vem às 9h. Seu nome, por favor?"
- Captura
nome_cliente:
User: "Meu nome é Ana Silva."
Bot: "Obrigado, Ana. E um telefone para contato?"
- Captura
telefone_cliente:
User: "É 98765-4321."
Bot: "Perfeito. Irei agendar sua limpeza para quarta-feira que vem às 9h, em nome de Ana Silva, telefone 98765-4321. Posso confirmar?"
- Confirmação Final:
User: "Sim, pode confirmar."
Bot: "Agendamento realizado! Em breve você receberá uma confirmação por SMS. Tenha um ótimo dia!"
Configuração de Webhook de Fulfillment (Dialogflow CX):
- Após a confirmação final (
sim, pode confirmar), configurar um webhook que envie os parâmetros coletados (tipo_servico, data, hora, nome_cliente, telefone_cliente) para um endpoint HTTP no Make.com.
- Exemplo de Payload JSON enviado pelo Dialogflow CX para o Make.com:
{
"sessionInfo": {
"parameters": {
"tipo_servico": "limpeza",
"data": "2024-10-23T09:00:00-03:00",
"nome_cliente": "Ana Silva",
"telefone_cliente": "987654321"
}
},
"fulfillmentInfo": {
"tag": "agendar_servico_finalizado"
}
}
Criação de Cenário no Make.com:
- Módulo 1: Webhooks - Custom Webhook: Recebe o JSON do Dialogflow CX.
- Módulo 2: Google Calendar - Create an Event: Mapeia os dados do webhook para criar um evento no Google Agenda da empresa.
- Título:
Agendamento: {{1.sessionInfo.parameters.tipo_servico}} - {{1.sessionInfo.parameters.nome_cliente}}
- Início:
{{1.sessionInfo.parameters.data}} (parsear se necessário)
- Fim:
{{addHours(1.sessionInfo.parameters.data; 1)}} (ex: 1 hora de duração)
- Descrição:
Telefone: {{1.sessionInfo.parameters.telefone_cliente}}
- Módulo 3 (Opcional): Twilio - Send an SMS: Envia uma confirmação por SMS para o cliente.
- To:
{{1.sessionInfo.parameters.telefone_cliente}}
- Message: "Olá {{1.sessionInfo.parameters.nome_cliente}}, seu agendamento de {{1.sessionInfo.parameters.tipo_servico}} foi confirmado para {{formatDate(1.sessionInfo.parameters.data; "DD/MM/YYYY HH:mm")}}. Atenciosamente, [Sua Empresa]."
Workflow 2: Otimização de Resposta em Casos de Não-Entendimento (No-Match) e Fallback
Este workflow foca em refinar a experiência do usuário quando o bot de voz não consegue entender a fala (No-Match) ou a intenção (Fallback), evitando frustração e direcionando para soluções.
Passos Detalhados:
Análise de Logs de No-Match:
- Exportar logs de interações do bot de voz (ex: Dialogflow CX Analytics, Amazon Lex Conversation Logs) e filtrar por eventos de "No-Match" ou "Fallback".
- Identificar padrões nas transcrições de fala que não foram entendidas. Usuários estão usando gírias? Pronunciando mal termos técnicos? Há muito ruído de fundo?
- Exemplo de Log Bruto:
User: "Preciso de um s'gunda via da minha conta" -> Bot: [No-Match] (Provável erro de ASR ou falta de treinamento de NLU para "segunda via").
Ajuste da Sensibilidade do ASR e do NLU:
- ASR (Automatic Speech Recognition): Em plataformas como Google Cloud Speech-to-Text ou AWS Transcribe, ajustar modelos de linguagem personalizados com vocabulário específico do domínio (e.g., nomes de produtos, termos técnicos). Adicionar "segunda via" como termo prioritário.
- NLU (Natural Language Understanding): Adicionar mais frases de treinamento para intenções existentes que falharam. Criar novas intenções se um padrão de fala recorrente não estiver sendo mapeado corretamente.
- Exemplo de Treinamento NLU (Dialogflow CX):
Intenção: solicitar_segunda_via
Frases: "quero a segunda via", "minha conta", "boleto atrasado", "preciso do extrato", "manda o PDF da fatura".
Implementação de Estratégias de Repetição e Refraseamento:
- Primeiro Fallback: "Desculpe, não entendi. Você pode repetir de outra forma, por favor?" (Com um limite de 2 repetições).
- Segundo Fallback: "Ainda não consegui entender. Poderia me dizer qual é o assunto principal que você gostaria de resolver?" (Prompt mais amplo para tentar capturar um tópico geral).
- Exemplo de Prompt (TTS):
tts_prompt: "Não compreendi. Você disse 'assistência técnica' ou 'assistência médica'?" (Usar quando há ambiguidade entre duas intenções próximas).
Encaminhamento Inteligente para Agente Humano ou Outro Canal:
- Após o segundo ou terceiro fallback sem sucesso, oferecer opções claras de escalonamento.
- Opção 1 (Agente Humano): "Parece que não estou conseguindo te ajudar. Gostaria de falar com um de nossos atendentes humanos? Diga 'sim' ou 'falar com atendente'."
- Integrar com um módulo de transferência de chamada (ex: Twilio Voice, Genesys Cloud) ou um sistema de fila.
- Opção 2 (Outro Canal): "Se preferir, posso enviar um link para nosso chat online ou enviar um SMS com o número do nosso WhatsApp. Qual opção você prefere?"
- Disparar um webhook para um cenário no N8N que envia o link do chat por SMS (via Twilio) ou registra uma solicitação de contato no CRM.
Monitoramento Contínuo e Retreinamento:
- Configurar alertas para altas taxas de no-match.
- Revisar logs semanalmente para identificar novas oportunidades de treinamento de NLU e ASR.
- A cada 2-4 semanas, reavaliar o desempenho do modelo com novos dados coletados das interações reais.
Templates
Template de Prompt para Coleta de Entidade (Data e Hora)
{
"prompt_text": "Certo, entendi. Para qual data e hora você gostaria de agendar? Por exemplo, 'próxima terça às 10 da manhã' ou 'dia 15 de agosto às 14h'.",
"expected_entities": ["@sys.date", "@sys.time"],
"reprompt_text": "Desculpe, não entendi a data ou a hora. Poderia repetir, por favor?",
"max_attempts": 2,
"fallback_action": "escalate_to_human"
}
Template de Mensagem de Confirmação Final (TTS)
{
"tts_message": "Confirmando seu pedido: {item_principal} para {data_agendamento} às {hora_agendamento}, em nome de {nome_cliente}. Seu telefone de contato é {telefone_cliente}. Confirma as informações?",
"expected_responses": ["sim", "não", "corrigir"],
"on_confirm": {
"action": "trigger_webhook",
"webhook_name": "final_booking_confirmation",
"payload_variables": ["item_principal", "data_agendamento", "hora_agendamento", "nome_cliente", "telefone_cliente"]
},
"on_deny": {
"action": "recollect_information",
"start_from_step": "reconfirm_all_details"
},
"on_correct": {
"action": "recollect_information",
"start_from_step": "ask_which_info_to_correct"
}
}
Checklist
1---2name: voice-bot-design3description: Voice Bot Design — Skill especializada para voice bot design4license: MIT5---67# Voice Bot Design8Esta skill capacita o Claude a projetar, prototipar e otimizar interfaces conversacionais de voz, focando em usabilidade, fluxo natural e integração com plataformas de automação.910---1112## Keywords13IVR, ASR, TTS, NLU, VUI, Voice UX, Design Conversacional, Diálogo de Voz, Fluxogramas de Voz, Teste de Usabilidade de Voz, Automação por Voz, Integração de APIs de Voz.1415---1617## Quick Start181. **Mapear Jornada do Usuário por Voz**: Esboçar o caminho crítico que um usuário percorre para resolver uma necessidade específica através do bot de voz, identificando pontos de decisão e expectativas de fala. Ex: `(Início: "Quero agendar") -> (Bot: "Qual serviço?") -> (Usuário: "Limpeza") -> (Bot: "Data e Hora?") -> (Fim: "Agendamento confirmado")`.192. **Definir Gramática de Interação**: Criar listas de frases e palavras-chave que o usuário provavelmente usará para cada intenção, alimentando o modelo de NLU (Natural Language Understanding). Ex: Para a intenção `solicitar_saldo`, frases como `("qual meu saldo", "quanto tenho na conta", "saldo atual")`.203. **Prototipar Fluxo de Diálogo no Voiceflow**: Construir um protótipo inicial do bot de voz utilizando uma ferramenta como Voiceflow ou Landbot, configurando prompts de TTS e capturas de ASR para simular a interação completa.214. **Testar com Usuários Reais (Wizard of Oz)**: Conduzir testes de usabilidade com participantes reais, onde um humano simula a resposta do bot para coletar feedback sobre a naturalidade do diálogo e a clareza dos prompts, antes de codificar.225. **Integrar com Webhooks para Automação Externa**: Configurar um webhook na plataforma do bot de voz (ex: Dialogflow CX, Amazon Lex) para disparar um fluxo no Make.com após uma intenção específica, como `agendar_chamada`, enviando os dados coletados.2324---2526## Core Workflows2728### Workflow 1: Criação de Fluxo de Agendamento de Serviço por Voz com Integração Make.com2930Este workflow detalha a construção de um módulo de agendamento de serviço via bot de voz, integrando com um sistema externo de calendário através do Make.com.3132**Passos Detalhados:**33341. **Análise de Intenção e Entidades**:35 * **Intenção Principal**: `agendar_servico`.36 * **Entidades Necessárias**: `tipo_servico` (e.g., "limpeza", "manutenção", "instalação"), `data` (e.g., "amanhã", "próxima terça"), `hora` (e.g., "10 da manhã", "14h"), `nome_cliente`, `telefone_cliente`.37 * **Exemplo de Frases de Treinamento (Dialogflow CX)**:38 * "Gostaria de agendar uma `limpeza` para `amanhã` às `10 da manhã`."39 * "Preciso de uma `manutenção` na `próxima quinta` à `tarde`."40 * "Quero marcar uma `instalação`."41422. **Desenho do Diálogo no Voiceflow/Dialogflow CX**:43 * **Prompt Inicial**: "Em que tipo de serviço posso ajudar com o agendamento?"44 * **Captura `tipo_servico`**:45 * `User`: "Uma limpeza."46 * `Bot`: "Certo, uma limpeza. Para qual data e hora?"47 * **Captura `data` e `hora`**:48 * `User`: "Para `quarta-feira` que vem, às `9h`."49 * `Bot`: "Confirmando: agendamento de `limpeza` para `quarta-feira` que vem às `9h`. Seu nome, por favor?"50 * **Captura `nome_cliente`**:51 * `User`: "Meu nome é `Ana Silva`."52 * `Bot`: "Obrigado, Ana. E um telefone para contato?"53 * **Captura `telefone_cliente`**:54 * `User`: "É `98765-4321`."55 * `Bot`: "Perfeito. Irei agendar sua limpeza para quarta-feira que vem às 9h, em nome de Ana Silva, telefone 98765-4321. Posso confirmar?"56 * **Confirmação Final**:57 * `User`: "Sim, pode confirmar."58 * `Bot`: "Agendamento realizado! Em breve você receberá uma confirmação por SMS. Tenha um ótimo dia!"59603. **Configuração de Webhook de Fulfillment (Dialogflow CX)**:61 * Após a confirmação final (`sim, pode confirmar`), configurar um webhook que envie os parâmetros coletados (`tipo_servico`, `data`, `hora`, `nome_cliente`, `telefone_cliente`) para um endpoint HTTP no Make.com.62 * **Exemplo de Payload JSON enviado pelo Dialogflow CX para o Make.com:**63 ```json64 {65 "sessionInfo": {66 "parameters": {67 "tipo_servico": "limpeza",68 "data": "2024-10-23T09:00:00-03:00",69 "nome_cliente": "Ana Silva",70 "telefone_cliente": "987654321"71 }72 },73 "fulfillmentInfo": {74 "tag": "agendar_servico_finalizado"75 }76 }77 ```78794. **Criação de Cenário no Make.com**:80 * **Módulo 1: Webhooks - Custom Webhook**: Recebe o JSON do Dialogflow CX.81 * **Módulo 2: Google Calendar - Create an Event**: Mapeia os dados do webhook para criar um evento no Google Agenda da empresa.82 * **Título**: `Agendamento: {{1.sessionInfo.parameters.tipo_servico}} - {{1.sessionInfo.parameters.nome_cliente}}`83 * **Início**: `{{1.sessionInfo.parameters.data}}` (parsear se necessário)84 * **Fim**: `{{addHours(1.sessionInfo.parameters.data; 1)}}` (ex: 1 hora de duração)85 * **Descrição**: `Telefone: {{1.sessionInfo.parameters.telefone_cliente}}`86 * **Módulo 3 (Opcional): Twilio - Send an SMS**: Envia uma confirmação por SMS para o cliente.87 * **To**: `{{1.sessionInfo.parameters.telefone_cliente}}`88 * **Message**: "Olá {{1.sessionInfo.parameters.nome_cliente}}, seu agendamento de {{1.sessionInfo.parameters.tipo_servico}} foi confirmado para {{formatDate(1.sessionInfo.parameters.data; "DD/MM/YYYY HH:mm")}}. Atenciosamente, [Sua Empresa]."8990### Workflow 2: Otimização de Resposta em Casos de Não-Entendimento (No-Match) e Fallback9192Este workflow foca em refinar a experiência do usuário quando o bot de voz não consegue entender a fala (No-Match) ou a intenção (Fallback), evitando frustração e direcionando para soluções.9394**Passos Detalhados:**95961. **Análise de Logs de No-Match**:97 * Exportar logs de interações do bot de voz (ex: Dialogflow CX Analytics, Amazon Lex Conversation Logs) e filtrar por eventos de "No-Match" ou "Fallback".98 * Identificar padrões nas transcrições de fala que não foram entendidas. Usuários estão usando gírias? Pronunciando mal termos técnicos? Há muito ruído de fundo?99 * **Exemplo de Log Bruto**: `User: "Preciso de um s'gunda via da minha conta"` -> `Bot: [No-Match]` (Provável erro de ASR ou falta de treinamento de NLU para "segunda via").1001012. **Ajuste da Sensibilidade do ASR e do NLU**:102 * **ASR (Automatic Speech Recognition)**: Em plataformas como Google Cloud Speech-to-Text ou AWS Transcribe, ajustar modelos de linguagem personalizados com vocabulário específico do domínio (e.g., nomes de produtos, termos técnicos). Adicionar "segunda via" como termo prioritário.103 * **NLU (Natural Language Understanding)**: Adicionar mais frases de treinamento para intenções existentes que falharam. Criar novas intenções se um padrão de fala recorrente não estiver sendo mapeado corretamente.104 * **Exemplo de Treinamento NLU (Dialogflow CX)**:105 * `Intenção: solicitar_segunda_via`106 * `Frases`: "quero a segunda via", "minha conta", "boleto atrasado", "preciso do extrato", "manda o PDF da fatura".1071083. **Implementação de Estratégias de Repetição e Refraseamento**:109 * **Primeiro Fallback**: "Desculpe, não entendi. Você pode repetir de outra forma, por favor?" (Com um limite de 2 repetições).110 * **Segundo Fallback**: "Ainda não consegui entender. Poderia me dizer qual é o assunto principal que você gostaria de resolver?" (Prompt mais amplo para tentar capturar um tópico geral).111 * **Exemplo de Prompt (TTS)**: `tts_prompt: "Não compreendi. Você disse 'assistência técnica' ou 'assistência médica'?"` (Usar quando há ambiguidade entre duas intenções próximas).1121134. **Encaminhamento Inteligente para Agente Humano ou Outro Canal**:114 * Após o segundo ou terceiro fallback sem sucesso, oferecer opções claras de escalonamento.115 * **Opção 1 (Agente Humano)**: "Parece que não estou conseguindo te ajudar. Gostaria de falar com um de nossos atendentes humanos? Diga 'sim' ou 'falar com atendente'."116 * Integrar com um módulo de transferência de chamada (ex: Twilio Voice, Genesys Cloud) ou um sistema de fila.117 * **Opção 2 (Outro Canal)**: "Se preferir, posso enviar um link para nosso chat online ou enviar um SMS com o número do nosso WhatsApp. Qual opção você prefere?"118 * Disparar um webhook para um cenário no N8N que envia o link do chat por SMS (via Twilio) ou registra uma solicitação de contato no CRM.1191205. **Monitoramento Contínuo e Retreinamento**:121 * Configurar alertas para altas taxas de no-match.122 * Revisar logs semanalmente para identificar novas oportunidades de treinamento de NLU e ASR.123 * A cada 2-4 semanas, reavaliar o desempenho do modelo com novos dados coletados das interações reais.124125---126127## Templates128129### Template de Prompt para Coleta de Entidade (Data e Hora)130131```132{133 "prompt_text": "Certo, entendi. Para qual data e hora você gostaria de agendar? Por exemplo, 'próxima terça às 10 da manhã' ou 'dia 15 de agosto às 14h'.",134 "expected_entities": ["@sys.date", "@sys.time"],135 "reprompt_text": "Desculpe, não entendi a data ou a hora. Poderia repetir, por favor?",136 "max_attempts": 2,137 "fallback_action": "escalate_to_human"138}139```140141### Template de Mensagem de Confirmação Final (TTS)142143```144{145 "tts_message": "Confirmando seu pedido: {item_principal} para {data_agendamento} às {hora_agendamento}, em nome de {nome_cliente}. Seu telefone de contato é {telefone_cliente}. Confirma as informações?",146 "expected_responses": ["sim", "não", "corrigir"],147 "on_confirm": {148 "action": "trigger_webhook",149 "webhook_name": "final_booking_confirmation",150 "payload_variables": ["item_principal", "data_agendamento", "hora_agendamento", "nome_cliente", "telefone_cliente"]151 },152 "on_deny": {153 "action": "recollect_information",154 "start_from_step": "reconfirm_all_details"155 },156 "on_correct": {157 "action": "recollect_information",158 "start_from_step": "ask_which_info_to_correct"159 }160}161```162163---164165## Checklist166167- [x] Mapeamento completo da jornada do usuário por voz para casos de uso chave.168- [x] Definição clara das intenções e entidades para cada fluxo de voz.169- [x] Gramáticas de fala (ASR) e treinamento de NLU otimizados para termos específicos do domínio e sotaques regionais.170- [x] Design de diálogos com prompts concisos, diretos e que evitam ambiguidades.171- [x] E