Integração
API de WhatsApp para Typebot
Integre chatbots visuais do Typebot com envio de mensagens via Zapixo.
// Typebot — Webhook / HTTP block
fetch("https://zapixo.com.br/api/v1/messages/text", {
method: "POST",
headers: {
"Authorization": "Bearer SUA_CHAVE",
"Content-Type": "application/json"
},
body: JSON.stringify({
instance: "atendimento",
number: "{{telefone}}",
text: "{{resposta_bot}}"
})
})O Typebot desenha a conversa; o Zapixo entrega no WhatsApp. A ligação mais direta é um bloco HTTP request no meio do fluxo, chamando a API do Zapixo com as variáveis que o bot coletou.
Uma distinção que evita frustração: sem integração extra, um typebot publicado roda no navegador, por link ou widget no site. Para o próprio bot conversar dentro do WhatsApp, é preciso uma ponte entre o webhook do Zapixo e o Typebot — explicada mais abaixo.
O que dá para fazer com Typebot e WhatsApp
Lead do site recebe WhatsApp
O visitante conversa com o bot no site, deixa o número e recebe no WhatsApp o resumo ou a proposta.
Aviso para o vendedor
Quando o bot qualifica um lead, uma mensagem vai para o WhatsApp do vendedor com nome, interesse e contato.
Confirmação de agendamento
O bot coleta dia e horário e manda a confirmação no WhatsApp do cliente.
Menu dentro do WhatsApp
Com a ponte montada, o menu do Typebot vira atendimento no próprio WhatsApp.
Enviar mensagens pelo Typebot
Colete o telefone numa variável
Use um bloco de entrada de telefone e salve a resposta numa variável, como
{{telefone}}.Adicione o bloco HTTP request
Nas integrações, arraste o bloco HTTP request — nas versões antigas ele se chamava Webhook. Method
POST, URLhttps://zapixo.com.br/api/v1/messages/text.Headers e corpo
Em Headers,
AuthorizationcomBearer zpx_...eContent-Typecomapplication/json. Ligue o corpo customizado e escreva:{ "instance": "atendimento", "number": "{{telefone}}", "text": "Oi {{nome}}! Recebemos seu pedido de orçamento. Em instantes um consultor fala com você." }Teste e guarde a resposta
Use o teste da requisição no próprio bloco para ver a resposta, e salve
successnuma variável. Assim o fluxo pode mostrar outra mensagem se o envio falhar.
Receber mensagens no Typebot
Por que precisa de ponte
O Zapixo entrega cada mensagem recebida como webhook, no evento
messages.upsert. O Typebot não recebe esse formato: ele expõe uma API de chat para iniciar e continuar sessões. A ponte recebe de um lado e chama o outro.A ponte no n8n
Um nó Webhook recebe a mensagem, um IF descarta
fromMe, um HTTP Request chama a API de chat do Typebot com o texto do usuário, e cada resposta do bot volta pelo HTTP Request do Zapixo. Guarde o id da sessão por número para continuar a conversa na mensagem seguinte.Ou no seu backend
A mesma lógica cabe numa rota do seu backend. A parte de receber o webhook está pronta nas guias de Node.js e Python.
Erros comuns e como resolver
- Número com + ou máscara
- O bloco de telefone costuma salvar o número com
+na frente. Limpe antes de enviar com um bloco Set variable em código:{{telefone}}.replace(/\D/g, ''). - Chave exposta no navegador
- O bloco HTTP request roda no servidor do Typebot enquanto a opção de executar no cliente estiver desligada. Ligada, a chave vai para o navegador do visitante — deixe desligada.
- Envio repetido
- Se o visitante volta no fluxo, o bloco roda de novo. Coloque o HTTP request depois da confirmação final, não no meio das perguntas.
- Mensagem que não chega
- Confira se o número tem WhatsApp e se a instância está conectada no painel. A resposta
502traz o motivo emdetails. - Erros 401 e 404
401: chave errada ou sem oBearerna frente.404: o valor deinstancenão bate com o nome da instância no painel.
Perguntas frequentes
O Typebot precisa de integração nativa com o Zapixo?
Não. O bloco HTTP request do Typebot chama a API do Zapixo diretamente.
Dá para o bot do Typebot responder dentro do WhatsApp?
Dá, com uma ponte — n8n ou seu backend — entre o webhook do Zapixo e a API de chat do Typebot.
Funciona no Typebot self-hosted?
Funciona. O bloco HTTP request só precisa alcançar a internet.
Consigo enviar imagem pelo Typebot?
Sim, pelo endpoint /api/v1/messages/media, com mediaUrl (link público do arquivo) e caption opcional.
O trial tem limite de mensagens?
Tem. Ao atingir o limite, a API responde 402 com o link para assinar.
Templates prontos
Importe e conecte em minutos — substitua a API key e o nome da instância.
- Menu de atendimento (Typebot)iniciante