WhatsApp via Uazapi
A Uazapi é um provedor brasileiro que também expõe o WhatsApp via API REST, com modelo self-host ou hospedagem própria deles. O SquadOS se conecta à instância Uazapi pela URL base + token, e o QR code é escaneado no painel da Uazapi (não aqui).
Quando usar
Seção intitulada “Quando usar”| Use Uazapi quando | Não use quando |
|---|---|
| Você já hospeda Uazapi ou usa o serviço gerenciado deles | Está começando do zero e não tem preferência — avalie Z-API ou Cloud API |
| Precisa de mais flexibilidade no servidor (self-host) | Não tem time para manter o servidor de pé |
| Tem volume médio com tolerância a quedas pontuais | Atendimento crítico onde indisponibilidade vira incidente |
Pré-requisitos
Seção intitulada “Pré-requisitos”Antes de conectar:
- Instância Uazapi rodando, seja no serviço deles (ex.:
https://free.uazapi.com) ou self-host. - URL base da sua instância (sem barra no final):
https://free.uazapi.com,https://uazapi.seudominio.com, etc. - Token da instância — gerado no painel Uazapi.
O QR code do WhatsApp é escaneado no painel da Uazapi, não no SquadOS. O SquadOS apenas consulta o status da instância e envia/recebe mensagens.
Passo a passo
Seção intitulada “Passo a passo”
-
Abra Admin → Agentes → [seu agente] → Gatilhos.
-
No card Uazapi (dentro da seção WhatsApp QR Code), clique em Conectar.
-
Preencha:

- URL base — a base da sua instância (ex.:
https://free.uazapi.com). - Token da instância — token gerado no painel.
- URL base — a base da sua instância (ex.:
-
Clique em Validar e continuar. O SquadOS chama
GET /instance/statusna sua Uazapi — se o token estiver errado, o modal mostra o erro. -
O passo seguinte exibe a URL de webhook gerada pelo SquadOS e a sequência exata de configuração que o painel Uazapi exige. Copie a URL e, no painel Uazapi (botão Webhooks da instância):
- Cole a URL no campo URL do webhook e mantenha o método como POST.
- Deixe as opções addUrlEvents e addUrlTypesMessages desligadas.
- Em Escutar eventos, adicione apenas:
messages. - Em Excluir dos eventos escutados, adicione:
wasSentByApieisGroupYes. - Marque Habilitado e clique em Salvar.
- Conecte o WhatsApp escaneando o QR code dentro do próprio painel Uazapi (não no SquadOS).
-
De volta ao SquadOS, clique em Já configurei o webhook.
-
O SquadOS chama
/instance/statuspara verificar. Se a Uazapi reportar statusconnected, o card fica Conectado e o número aparece (extraído do campoownerque a Uazapi devolve).
Se a verificação falhar, abra o painel Uazapi, confirme que o status é connected (e que você escaneou o QR lá) e clique em Verificar novamente.
Por que esses filtros específicos no webhook?
Seção intitulada “Por que esses filtros específicos no webhook?”A configuração do passo 5 não é decoração — é o que faz a integração funcionar:
messagesé o único evento que o SquadOS parseia. Outros eventos seriam respondidos comOK - other event(ignorados), mas chegariam ao webhook e gerariam ruído inútil.wasSentByApifiltra as mensagens que o próprio agente acabou de enviar — sem isso, a resposta do agente voltaria pelo webhook e o agente responderia à própria resposta, em loop.isGroupYesfiltra mensagens de grupos. O SquadOS não responde em grupos hoje; deixar passar gera processamento inútil.addUrlEventseaddUrlTypesMessagesdesligadas mantêm a URL do webhook estática (sem sufixos dinâmicos), que é o que o SquadOS espera para validar owebhook_secret.
Se as mensagens não estiverem chegando, revise primeiro essa configuração antes de qualquer outra coisa.
Como funciona
Seção intitulada “Como funciona”- O SquadOS não hospeda a sessão WhatsApp — ela vive na sua instância Uazapi.
- Mensagens entram via webhook, viram conversas no SquadOS, e o agente responde via
POST /send/textna Uazapi. - Mídia (imagens, áudios, documentos) é enviada via
POST /send/media.
Editando credenciais depois
Seção intitulada “Editando credenciais depois”Se o token expirou ou você mudou a URL base, abra o card Uazapi conectado, clique em informações e edite. O SquadOS revalida com a Uazapi antes de salvar; se falhar, mantém o anterior.
A URL de webhook não muda — é fixa por agente.
Desconectando
Seção intitulada “Desconectando”No card Uazapi conectado, clique em Desconectar. O SquadOS chama POST /instance/disconnect na Uazapi e marca o gatilho como inativo. A instância em si continua existindo no painel Uazapi.
Problemas comuns
Seção intitulada “Problemas comuns”- “Credenciais inválidas” no passo 1. Confira a URL base (sem barra no final, com
https://) e o token. Se a Uazapi responder 401/403, esse erro aparece. - Webhook configurado mas mensagens não chegam. O culpado mais comum é a configuração de eventos do webhook. Volte ao painel Uazapi e confirme item por item o passo 5 acima — principalmente que apenas
messagesestá marcado e quewasSentByApiestá nos excluídos. - Agente responde sua própria resposta em loop. Significa que
wasSentByApinão está nos eventos excluídos. Ajuste no painel Uazapi. - Mensagens de grupo chegando.
isGroupYesnão está nos excluídos. O SquadOS já filtra grupos do lado dele, mas excluir no webhook reduz tráfego inútil. - Status fica em “disconnected” eternamente. Você precisa escanear o QR code no painel Uazapi — o SquadOS não exibe QR para esse provedor (a Uazapi gerencia a sessão lá).