
Compartilhar:
Benjamin Aronov is a developer advocate at Vonage. He is a proven community builder with a background in Ruby on Rails. Benjamin enjoys the beaches of Tel Aviv which he calls home. His Tel Aviv base allows him to meet and learn from some of the world's best startup founders. Outside of tech, Benjamin loves traveling the world in search of the perfect pain au chocolat.
Crie uma recepcionista de IA para o WhatsApp com 5 nós usando as ferramentas n8n e Vonage MCP
Essa recepcionista do WhatsApp com IA, desenvolvida com as ferramentas n8n e Vonage MCP, ajuda a automatizar as interações com os hóspedes do Airbnb.
Introdução
Administrar um Airbnb (ou, na verdade, qualquer pequeno negócio de hospedagem) costuma envolver o mesmo ciclo de perguntas dos hóspedes. As pessoas perguntam sobre Wi-Fi, horários de check-out, estacionamento e, ocasionalmente, algo mais urgente que precisa da sua atenção imediata. O objetivo deste tutorial é otimizar essa carga de trabalho criando uma recepcionista de IA no WhatsApp, capaz de responder automaticamente a perguntas rotineiras, encaminhar problemas graves para você por SMS ou chamada de Voice e manter um registro simples das conversas anteriores em uma planilha do Google Sheets. O fluxo de trabalho em si é leve, utilizando apenas cinco nós principais do n8n e alguns auxiliares.
Para tornar isso possível, usaremos o n8n tanto como mecanismo de automação quanto como ambiente onde o Agente de IA é executado, com o servidor de ferramentas MCP da Vonage fornecendo um único ponto de conexão para WhatsApp, SMS e chamadas de voz de saída. Uma pequena implantação do Render hospeda a ponte que conecta o n8n a essas ferramentas do MCP, e o Google Sheets funciona como um banco de dados simples para informações sobre as propriedades e o histórico dos hóspedes. Um modelo da OpenAI integra tudo isso, interpretando mensagens, decidindo quando escalar o caso e acionando as ferramentas certas nos momentos certos.
No final, você terá um modelo flexível que poderá reutilizar muito além dos aluguéis de curto prazo. Esse mesmo fluxo de trabalho funciona para recepções de hotéis, reservas em restaurantes, triagem de chamados de suporte de TI ou qualquer situação em que as mensagens recebidas às vezes precisem de respostas automatizadas e, outras vezes, de encaminhamento para um atendente humano.
Resumo: Confira o guia de início rápido para este fluxo de trabalho na Comunidade Vonage no GitHub.
A user receives and replies to a WhatsApp message sent via Vonage and n8n, showcasing real-time two-way messaging in an AI-powered receptionist workflow.
1. Pré-requisitos
Uma conta verificada WhatsApp Business Account (WABA)
Account da API da Vonage
2. Criar um aplicativo da Vonage
Para acessar as APIs da Vonage, precisaremos criar uma Application da Vonage que nos permita nos comunicar por WhatsApp, SMS e chamadas de voz.
Para criar um aplicativo, acesse a página “Criar um aplicativo” no Painel da Vonage e defina um Nome para a sua Application.
Se você pretende usar uma API que utilize Webhooks, precisará de uma chave privada. Clique em “Gerar chave pública e privada”; o download deve iniciar automaticamente. Guarde-a em local seguro; essa chave não poderá ser baixada novamente em caso de perda. Ela seguirá a convenção de nomenclatura private_<seu ID de aplicativo>.key. Agora, essa chave pode ser usada para autenticar chamadas de API. Observação: sua chave não funcionará até que seu aplicativo seja salvo.
Escolha os recursos de que você precisa (por exemplo, Voice, Mensagens, RTC etc.) e forneça os webhooks necessários (por exemplo, URLs de eventos, URLs de resposta ou URLs de mensagens recebidas). Esses itens serão descritos no tutorial.
Para salvar e implantar, clique em “Gerar novo aplicativo” para finalizar a configuração. Seu aplicativo já está pronto para ser usado com as APIs da Vonage.
Configurando o aplicativo da Vonage
Você precisará habilitar os recursos de Voice e Mensagens. Para o recurso de Voice, basta ativá-lo e deixar os campos em branco. Para o recurso de Mensagens, você precisará habilitar os webhooks. Por enquanto, basta adicionar espaços reservados; atualizaremos esses campos com os valores do n8n posteriormente:
Defina a URL de entrada como https://placeholder.com/inbound.
Defina a URL de status como https://placeholder.com/status.
Em seguida, vincule seu WhatsApp Business (WABA) clicando na aba “Vincular contas externas”:
Viewing the n8n-AI-Assistant application in the Vonage dashboard with an active WhatsApp number linked.
Certifique-se de ter:
ID do aplicativo
Chave privada (baixada como um
.keyarquivo)Chave/segredo da API
Em seguida, vamos inserir esses dados no servidor de ferramentas do MCP.
3. Implantar a ponte MCP da Vonage com o Render
O Render entra em cena porque o n8n espera um endpoint HTTP simples e público que possa ser chamado para acessar um servidor MCP. O próprio servidor MCP da Vonage é executado como um processo local e não vem com um gateway público; por isso, precisamos de um pequeno serviço de “ponte” para conectá-lo à internet. O Render hospeda essa ponte para nós: ele executa um minúsculo aplicativo Node.js que inicia o servidor MCP da Vonage em segundo plano e expõe uma única URL /mcp com a qual o n8n pode se comunicar.
Observação sobre hospedagem e confiabilidade:
Neste tutorial, usamos o plano gratuito do Render para a ponte MCP, o que significa que o serviço pode entrar em modo de espera quando estiver ocioso. Se isso acontecer, o Cliente MCP pode exibir temporariamente a mensagem “Não foi possível conectar-se ao seu servidor MCP” até que a instância seja reativada. Você pode resolver isso acionando manualmente uma nova implantação ou reinicialização no Render, ou atualizando o serviço para o plano pago “Starter” para que ele permaneça ativo. Se preferir, você também pode executar a mesma ponte Node.js em outros hosts, como o Railway, um Servidor Privado Virtual (VPS) ou sua própria infraestrutura. O único requisito para o n8n é um /mcp ponto de extremidade HTTPS público.
Implemente um novo serviço de renderização usando o modelo fornecido:
Insira um nome para o seu novo serviço (por exemplo, mcp_tooling-n8n_whatsapp_receptionist).
Selecione “main” como ramificação.
Selecione “Criar todos como novos serviços” e insira suas credenciais da Vonage, obtidas no aplicativo da Vonage: VONAGE_API_KEY, VONAGE_API_SECRET, VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY64, VONAGE_VIRTUAL_NUMBER, VONAGE_WHATSAPP_NUMBER.
NOTA: VONAGE_PRIVATE_KEY64 é não simplesmente sua chave privada que foi baixada. Trata-se de uma chave privada codificada em base64, que você pode gerar com a ferramenta “Chave Privada para Variável de Ambiente”.
NOTA 2: O MCP_AUTH_TOKEN é um token criado por você, que o cliente MCP do n8n usará posteriormente para autenticar solicitações. Recomenda-se usar um token seguro e complexo, gerado por um gerador de senhas fortes.
Assim que sua Render MCP Bridge estiver em funcionamento, copie sua URL pública (por exemplo, https://your-mcp-bridge.onrender.com/mcp). Você precisará dela na etapa 5, ao configurar o nó MCP Client dentro do seu fluxo de trabalho do n8n.
Create a new Render deployment by copying the Blueprint and filling in your configurations.
4. Criar um banco de dados simulado com o Google Sheets
No nosso exemplo, usaremos uma planilha do Google como um banco de dados rápido e acessível. O Google Sheets é comumente usado para colaboração e é familiar a usuários sem conhecimentos técnicos. Mas isso pode ser facilmente estendido para o Supabase, o MongoDB ou qualquer banco de dados SQL. Usaremos duas planilhas: Propriedades e Convidados.
>> Abra e crie uma cópia da exemplo completo de banco de dados no Google Sheets
Criação de uma planilha do Google Sheets para imóveis
Uma propriedade é um anúncio do Airbnb. Ela contém algumas colunas, simulando cenários típicos do mundo real, como: check_in, check_out, wifi_ssid (nome da rede), wifi_password, regras_da_casa, instruções_de_emergênciae dicas_locais.
Você pode encontrar exemplos na planilha do Google acima.
Criação de uma planilha do Google para convidados
Nosso banco de dados terá um objeto simples para armazenar informações sobre os hóspedes: guest_number, histórico — isso servirá de backup do nosso histórico de bate-papo, última_vez_visto, último_problema, gravidade_da_última_incidência (baixa| média| alta).
Inicialmente, esta planilha está vazia. A cada execução, ela será atualizada a partir do n8n!
5. Criar o fluxo de trabalho no n8n
Agora chegamos à parte interessante: adicionar nossos nós no n8n. Abra seu painel de controle do n8n na nuvem e crie um novo fluxo de trabalho. Habilite o acesso ao MCP:
Enable MCP access for your new n8n assistant.
Aqui está um resumo geral dos nós que vamos usar:
1. Webhook - Isso nos permite conectar-nos ao nosso aplicativo da Vonage e receber dados da Vonage, neste caso, do WhatsApp.
2. Google Sheets - A função “Get Rows” nos permite obter informações sobre o hóspede antes de encaminhar sua mensagem ao agente de IA.
4. Agente de IA - O agente de IA, que atua como o “cérebro” da recepcionista, e as ferramentas do MCP da Vonage que ele pode utilizar.
5. Nó de código - Pequeno script em JavaScript para analisar os dados retornados pelo Agente de IA e prepará-los para atualizar o banco de dados.
6. Google Sheets – Use a função “Acrescentar ou Atualizar Linha” para salvar essa interação.
Conectando o nó do Webhook
Como gatilho, selecione “Na chamada de webhook”. Isso adicionará um novo nó de webhook , no qual você precisará inserir o seguinte:
Método: POST
Caminho: /inbound
Autenticação: nenhuma
Ative o fluxo de trabalho para que o n8n forneça a você um URL de produção, por exemplo:
https://your-n8n.app/webhook/inbound
No seu aplicativo da Vonage (da etapa 2, por exemplo, n8n-AI-Assistant):
Atualize a URL do seu webhook de entrada para esta URL de produção.
Certifique-se de que o método esteja definido como POST.
Agora, quando você enviar uma mensagem pelo WhatsApp para o seu número da Vonage, o n8n será acionado. Você pode testar isso abrindo o nó no n8n e clicando em “Escutar evento de teste”; no entanto, você precisará atualizar sua URL para usar a URL de teste no painel do Vonage a partir do n8n, em vez da URL de produção.
Configuring an inbound webhook in n8n to receive WhatsApp messages via the Vonage Messages API.
Obter informações sobre imóveis do Airbnb a partir do banco de dados
Agora conecte seu nó de webhook a um novo nó do Google Sheets. Primeiro, faça login no seu Account do Google. Em seguida, selecione o Operação “Obter linha(s) na planilha” e configure:
Nome do nó: get_property_info
Isso é importante porque esse será o nome da ferramenta que o Agente de IA irá procurar.
Documento: Exemplo de banco de dados do Airbnb no n8n
Se você copiou sem atualizar (ou então o nome da sua planilha personalizada).
Folha: Propriedades
Filtro: Adicione um filtro e defina a coluna como guest_number e o Valor para
{{ $json.body.from }}ou você pode arrastar a partir do painel de entrada e selecionar o de que é retornado no Corpo do Webhook.Ative a opção “Sempre gerar dados” em Configurações para que o fluxo seja executado mesmo que seu banco de dados esteja vazio.
Configure seu agente de IA no n8n
O próximo passo é conectar o nó do Agente de IA. Esse nó se torna o núcleo da lógica da recepcionista. Ele recebe a mensagem de entrada do WhatsApp da Vonage e qualquer histórico de conversas com hóspedes, recupera informações sobre a propriedade a partir das planilha de Propriedades e decide se a situação é rotineira ou se requer a intervenção do anfitrião. Com base nessa decisão, ele aciona as ferramentas MCP apropriadas, geralmente para responder pelo WhatsApp, mas, quando necessário, para enviar um SMS ou iniciar uma chamada de voz. Todo o restante do fluxo de trabalho basicamente fornece contexto a esse nó ou registra o que ele produz.
Configurar o modelo de IA
Primeiro, arraste um nó “AI Agent” para o seu fluxo de trabalho e conecte-o; em seguida, configure:
Fonte do prompt (mensagem do usuário): Defina abaixo
Solicitação (mensagem do usuário):
Guest phone number: {{ $('Inbound Message').item.json.body.from }}
Guest message: {{ $('Inbound Message').item.json.body.text }}
Guest message channel: {{ $('Inbound Message').item.json.body.channel }}
Guest name (if available): {{ $('Inbound Message').item.json.body.profile?.name || '' }}
Host number: {{ $('Inbound Message').item.json.body.from }} <!-- or a fixed host number later -->Observação: Estamos usando o mesmo número tanto para o host quanto para o convidado aqui, a fim de simplificar os testes. Em produção, substitua-o pelo número real do host.
Mensagem do sistema: copie a mensagem completa do sistema do GitHub
O sistema transforma o modelo em um atendente via WhatsApp/SMS para um imóvel de aluguel. Para cada mensagem recebida de um hóspede, ele consulta os detalhes corretos do imóvel no Google Sheets quando necessário, avalia a gravidade do problema (baixa/média/alta) e sempre envia uma resposta curta e cordial ao hóspede pelo WhatsApp (com fallback para SMS). Nos bastidores, ele também pode notificar ou ligar para o anfitrião em caso de problemas de gravidade média ou alta, além de anexar duas tags simples (LAST_ISSUE e LAST_SEVERITY) para que o n8n possa acompanhar o que está acontecendo sem expor nenhuma parte dessa lógica interna ao hóspede.
Adicionar as ferramentas do MCP da Vonage
Com o modelo selecionado, o próximo passo é fornecer ao Agente as ferramentas que ele pode chamar. A primeira ferramenta é o nó Cliente MCP , que aponta para o servidor MCP que você implantou no Render. Configure-o com o endpoint MCP correto e defina o token Bearer com o mesmo valor que você inseriu em MCP_AUTH_TOKENe teste a conexão. Você deverá ver as ferramentas disponíveis, como whatsapp-send-text-with-SMS-failover, SMS e outbound-voice-message. Agora, o agente tem acesso a essas funcionalidades para enviar mensagens e fazer chamadas de verdade!
Adicionar a ferramenta get_property_info
A segunda ferramenta é o nó do Google Sheets que lê as folha ; renomeie-o para get_property_info para que sua finalidade fique clara, e anexe-o como uma ferramenta na configuração do Agente de IA. Isso permite que o modelo obtenha detalhes como instruções sobre Wi-Fi, horários de check-in e check-out, regras da casa ou orientações de emergência sempre que o hóspede solicitar.
Organizar a saída do agente com o Code Node
Assim que o Agente de IA terminar, sua saída será uma única sequência de caracteres extensa: a resposta direcionada ao usuário, além das duas linhas de tag estruturadas (LAST_ISSUE e LAST_SEVERITY). Antes de gravarmos qualquer coisa no Google Sheets, queremos limpar esses dados e montar um registro organizado da conversa. O nó “Função” faz exatamente isso: ele remove as linhas de tag, extrai os valores das tags e cria uma transcrição de texto simples que armazenaremos como histórico.
Adicione um nó “Código em JavaScript” logo após o Agente de IA. Copie e cole o trecho de código JavaScript do GitHub.
O trecho:
Lê a saída bruta do Agent.
Retira última_edição e last_severity da tabela LAST_* linhas.
Gera uma resposta limpa string agent_reply (o que o visitante realmente viu).
Adiciona essa interação a qualquer histórico existente do hóspede.
Adiciona last_seen_at e guest_number para que o próximo nó possa atualizar ou inserir a linha do hóspede.
Agora, os dados estão “prontos para uso”: um item por interação com o hóspede, com todos os campos necessários para sua planilha de hóspedes.
Gravar novos dados na planilha de hóspedes
Agora podemos salvar essa memória. Adicione um nó do Google Sheetse, na ação, selecione “Acrescentar ou atualizar linha na planilha”. A função desse nó é apenas localizar o histórico de bate-papo do visitante atual e atualizá-lo com a interação mais recente. Se essa for a primeira mensagem do visitante, ele criará uma nova linha.
Configuração do nó:
Recurso: Planilha dentro do documento
Operação: Inserir ou atualizar linha
Documento: (Da lista) Exemplo de banco de dados do Airbnb no n8n ou o nome da sua planilha
Folha: (Da lista) Convidados
Modo de mapeamento de colunas: mapear cada coluna manualmente
Coluna a ser comparada: guest_number
Valores a serem enviados:
guest_number (usado para comparação):
{{ $('Inbound Message').item.json.body.from }}história:
{{ $json.history }}última_vez_em_que_foi_visto:
{{ $json.last_seen_at }}última edição:
{{ $json.last_issue }}last_severity:
{{ $json.last_severity }}
E pronto! Você terminou!
Teste seu aplicativo
Agora que seu fluxo de trabalho no n8n está todo configurado, você pode testar sua recepcionista virtual! Envie uma mensagem pelo WhatsApp e teste diferentes situações. Os dados de teste incluem, propositalmente, duas propriedades em Paris e uma em Nova York. Veja se consegue enganar a agente. O prompt do sistema é apenas um ponto de partida; adapte-o às suas necessidades!
Você pode consultar os registros para ver, passo a passo, o que exatamente está acontecendo.
n8n execution log showing a successful end-to-end run of an AI-powered WhatsApp receptionist workflow using OpenAI, Google Sheets, and the Vonage MCP Client.
Conclusão
Com o fluxo de trabalho principal já estabelecido, você pode ampliar as funcionalidades desse agente de várias maneiras! Um próximo passo inteligente para oferecer melhor suporte a várias propriedades seria atribuir à recepcionista um property_id e criar uma relação com base no número do hóspede ou em outro campo da sua planilha.
Você também pode ir além do Google Sheets e integrar um banco de dados mais robusto (Airtable, Notion ou até mesmo Postgres) sem alterar o funcionamento do Agente. Do lado do host, é fácil introduzir ferramentas adicionais para tarefas como agendar serviços de limpeza, criar tickets de suporte ou enviar links de uso único, como instruções para o cofre de chaves. E se você quiser interagir com os hóspedes em mais canais, o servidor MCP já oferece uma maneira de integrar RCS, Viber ou MMS ao mesmo fluxo de trabalho. Nesse caso, um único Agente pode lidar com WhatsApp, SMS e até mesmo escalonamento por Voice por meio de uma lógica unificada.
Mas, mesmo com apenas um endpoint MCP para todas as mensagens e ações de Voice, alguns nós do n8n e uma simples planilha do Google Sheets como banco de dados, você já criou uma recepcionista de IA realista e expansível que as pequenas empresas podem realmente usar hoje mesmo.
Se você clonar essa configuração e adaptá-la para o seu próprio caso de uso (restaurantes, clínicas, salões de beleza), adoraria ver o que você criou!
Tem alguma dúvida ou quer compartilhar o que está criando?
Inscreva-se no Boletim Informativo para Desenvolvedores
Siga-nos no X (antigo Twitter) para ficar por dentro das novidades
Assista aos tutoriais no nosso canal do YouTube
Conecte-se conosco na página de desenvolvedores da Vonage no LinkedIn
Fique conectado e acompanhe as últimas notícias, dicas e eventos para desenvolvedores.
Compartilhar:
Benjamin Aronov is a developer advocate at Vonage. He is a proven community builder with a background in Ruby on Rails. Benjamin enjoys the beaches of Tel Aviv which he calls home. His Tel Aviv base allows him to meet and learn from some of the world's best startup founders. Outside of tech, Benjamin loves traveling the world in search of the perfect pain au chocolat.