top of page

Tutorial Definitivo: Como Criar uma Recepcionista de IA por Voz para WhatsApp com N8n e OpenAI

Mão segura celular com app WhatsApp aberto e menu de opções visível. Fundo desfocado com ícones coloridos. Em ambiente interno.

Você já imaginou ter uma recepcionista disponível 24/7, que entende e responde mensagens de áudio no WhatsApp instantaneamente, liberando sua equipe para focar no que realmente importa? Com os avanços da Inteligência Artificial e o poder da automação do n8n, isso não só é possível, como está ao seu alcance.

Neste tutorial, vamos construir passo a passo uma recepcionista virtual inteligente, integrando a API do WhatsApp Business com as poderosas ferramentas de IA da OpenAI.


O que vamos construir? A Arquitetura da Solução


Nossa recepcionista de IA seguirá um fluxo lógico de 5 etapas principais, orquestrado pelo n8n:

  1. Recebimento (Webhook): O cliente envia um áudio no WhatsApp. A Meta (Facebook) notifica o n8n.

  2. Transcrição (STT): O n8n baixa o áudio e usa o OpenAI Whisper para converter a fala em texto.

  3. Inteligência (LLM): O n8n envia o texto para o GPT (ex: GPT-4o) para interpretar a intenção e gerar a melhor resposta.

  4. Síntese (TTS): O n8n transforma a resposta textual em uma mensagem de áudio natural.

  5. Envio: O n8n envia o áudio de resposta de volta ao cliente via WhatsApp.


Pré-requisitos


Antes de começar, você precisará de:

  1. n8n: Uma instância funcionando (Cloud ou Self-Hosted). Ela precisa estar acessível publicamente para receber os webhooks do WhatsApp.

  2. WhatsApp Business API (Meta): Você precisará de uma conta de Desenvolvedor na Meta, um aplicativo configurado (Cloud API), um número de telefone verificado, seu ID do Número de Telefone e um Token de Acesso Permanente.

  3. Conta OpenAI: Uma API Key com créditos para usar Whisper, GPT e TTS.


Passo a Passo: Criando a Recepcionista no n8n


Vamos configurar o fluxo de trabalho (workflow) dentro do n8n.


Passo 1: O Gatilho (WhatsApp Webhook)


Tudo começa quando uma mensagem chega.

  1. Adicione um nó Webhook no n8n.

  2. Configure-o: Defina o HTTP Method para POST. Copie a Webhook URL.

  3. Configuração na Meta: No painel do seu aplicativo Meta, vá em "Configuração da API" > "Webhooks". Cole a URL do n8n.

IMPORTANTE: Verificação do Webhook A Meta exige que seu webhook responda a um desafio de segurança (método GET) antes de enviar mensagens. Você precisará configurar temporariamente seu n8n para lidar com isso. Consulte a documentação do n8n ou da Meta sobre a verificação de Webhooks.

Após verificar, certifique-se de se inscrever no evento de messages na plataforma da Meta.


Passo 2: Filtrando Mensagens de Áudio


Queremos que este fluxo responda apenas a áudios.

  1. Adicione um nó If após o Webhook.

  2. Configure a condição: Verifique se o tipo da mensagem recebida é audio. Nos dados enviados pela Meta, o caminho geralmente se parece com:

    • Value 1 (Expression): {{ $json.body.entry[0].changes[0].value.messages[0].type }}

    • Operation: String > Equals

    • Value 2: audio


Passo 3: Baixando o Arquivo de Áudio


Quando o WhatsApp notifica sobre um áudio, ele envia apenas um ID de mídia (media_id), não o arquivo em si. O download é um processo de duas etapas.


3.1: Obter a URL do Áudio


  1. Conecte a saída True do nó If a um nó HTTP Request.

  2. Configuração:

    • Method: GET.

    • URL (Expression): https://graph.facebook.com/v19.0/{{ $json.body.entry[0].changes[0].value.messages[0].audio.id }}

    • Authentication: Configure a autenticação (Header Auth ou Generic Credential) usando seu Token de Acesso da Meta (Bearer Token).


3.2: Baixar o Arquivo Binário


  1. Adicione outro nó HTTP Request.

  2. Configuração:

    • Method: GET.

    • URL (Expression): {{ $json.url }} (A URL extraída do nó anterior).

    • Authentication: Use o mesmo Token de Acesso da Meta.

    • Response Format: File (Crucial! Precisamos dos dados binários).

    • Binary Property Name: Dê um nome, ex: input_audio.


Passo 4: Transcrição com Whisper (Speech-to-Text)


Vamos converter o áudio em texto.

  1. Adicione um nó OpenAI.

  2. Configuração:

    • Credential: Sua API Key da OpenAI.

    • Resource: Audio.

    • Operation: Transcription.

    • Model: whisper-1.

    • Input Data Type: Binary.

    • Input Binary Property: input_audio (o nome definido no passo 3.2).

    • Language: pt (Para melhor precisão em Português).


Passo 5: Gerando a Resposta Inteligente (O Cérebro)


Este é o coração da sua recepcionista.

  1. Adicione outro nó OpenAI.

  2. Configuração:

    • Resource: Chat.

    • Model: gpt-4o (recomendado) ou gpt-3.5-turbo.

    • Messages:

      • System Message: Defina a persona e o conhecimento da IA.

Plaintext

Exemplo de System Prompt:
Você é a 'Bia', a recepcionista virtual da 'Empresa XYZ'. Seja prestativa, profissional e breve. As respostas serão enviadas por áudio, então mantenha-as concisas (máximo 2 parágrafos curtos). Horário de funcionamento: Seg-Sex, 9h às 18h. Se a pergunta for complexa, informe que um humano entrará em contato em breve.
    *   **User Message (Expression):** `{{ $json.text }}` (O texto transcrito no Passo 4).

Passo 6: Sintetizando a Voz (Text-to-Speech)


Vamos dar voz à resposta.

  1. Adicione um terceiro nó OpenAI.

    • Dica: Se desejar vozes mais realistas ou clonadas, você pode usar o nó ElevenLabs aqui.

  2. Configuração (OpenAI TTS):

    • Resource: Audio.

    • Operation: Speech.

    • Model: tts-1.

    • Input (Expression): {{ $json.message.content }} (A resposta gerada no Passo 5).

    • Voice: Escolha uma voz (ex: nova, shimmer).

    • Output Data Type: Binary.

    • Output Binary Property: Dê um nome, ex: response_audio.


Passo 7: Enviando a Resposta para o WhatsApp


Assim como o download, o envio de mídia também é um processo de duas etapas.


7.1: Upload do Áudio para a Meta


Precisamos enviar o áudio gerado para os servidores da Meta para obter um novo ID de mídia.

  1. Adicione um nó HTTP Request.

  2. Configuração:

    • Method: POST.

    • URL: https://graph.facebook.com/v19.0/<SEU_PHONE_NUMBER_ID>/media. (Substitua pelo seu ID).

    • Authentication: Seu Token de Acesso da Meta.

    • Body Content Type: Multipart/form-data.

    • Send Binary Data: Ative esta opção.

    • Input Data Property: response_audio (o nome definido no passo 6).

    • Adicione um parâmetro ao formulário:

      • Name: messaging_product, Value: whatsapp.

A resposta conterá o novo id da mídia.


7.2: Enviar a Mensagem de Áudio


  1. Adicione um último nó HTTP Request.

  2. Configuração:

JSON

{
  "messaging_product": "whatsapp",
  "to": "{{ $('Webhook').item.json.body.entry[0].changes[0].value.messages[0].from }}",
  "type": "audio",
  "audio": {
    "id": "{{ $json.id }}"
  }
}

Neste código, usamos expressões para preencher dinamicamente o número do cliente (obtido no nó 'Webhook') e o Media ID (obtido no nó anterior).


Testando e Ativando


  1. Salve seu Workflow.

  2. Se você usou a Test URL durante a configuração, certifique-se de que a Production URL esteja registrada na Meta.

  3. Mude o status do Workflow para Active.

  4. Pegue seu celular e envie uma mensagem de áudio para o número da sua empresa (ex: "Qual o horário de funcionamento?").

Se tudo estiver configurado corretamente, em poucos segundos você receberá uma resposta em áudio gerada pela IA!


Fechamento


Parabéns! Você implementou uma solução de atendimento de ponta. O n8n facilita a orquestração de ferramentas complexas de IA, permitindo que você crie experiências de usuário fluidas e naturais. Este é o primeiro passo para automatizar inteligentemente a comunicação da sua empresa e impressionar seus clientes.

Comentários

Avaliado com 0 de 5 estrelas.
Ainda sem avaliações

Adicione uma avaliação

© 2025 by Gustavo Caetano

bottom of page