I have a scheme of 6 agents. My main channel of communication with them is Telegram - I have a bot of each one. I recently bought a sim card exclusively for Open Claw, and then, I got a whatsapp configured binded with Comm agent. In private he awnser my audios - he uses the same skill in telegram i configured for the use stt whisper. But in a group, that I created for my family - he awnser that he cant listen or transcribe. Is this a Open Claw limitation?
Here is my openclaw.json whatsapp parts:
... "bindings": [
{
"agentId": "main",
"match": {
"channel": "telegram",
"accountId": "sigma-main"
}
},
{
"agentId": "comm",
"match": {
"channel": "telegram",
"accountId": "sigma-comm"
}
},
{
"agentId": "comm",
"match": {
"channel": "whatsapp"
}
},
{....
....
"channels": {
"whatsapp": {
"enabled": true,
"dmPolicy": "open",
"selfChatMode": false,
"allowFrom": [
""
],
"groupPolicy": "open",
"groups": {
"120363425815785473@g.us": {
"requireMention": false
}
},
"debounceMs": 0,
"accounts": {
"default": {
"enabled": true,
"dmPolicy": "open",
"allowFrom": [
""
],
"groupPolicy": "open",
"debounceMs": 0
}
},
"mediaMaxMb": 50
},
"telegram": {
....
#Whatsapp Audio Messages
1 messages · Page 1 of 1 (latest)
Not a hard OpenClaw limitation â WhatsApp groups can carry inbound audio and OpenClaw can transcribe it as long as audio media understanding/transcription is enabled for group chatType (and your setup isnât accidentally denying it).
The two most common reasons it âworks in DM but not in groupâ:
- Audio transcription is scope-denied for groups
If you havetools.media.audio.scopeset to denychatType: "group", DMs will transcribe and groups wonât. Check your config for something like this (example from docs):
tools: {
media: {
audio: {
scope: {
rules: [{ action: "deny", match: { chatType: "group" } }],
},
},
},
}
Docs: https://docs.openclaw.ai/nodes/audio
- Your transcription method depends on a local Whisper CLI, but your group sessions run âmore locked downâ
If youâre using a skill that shells out to Whisper (CLI) or depends on local binaries, it can work in one context and fail in another (esp. if you sandbox ânon-mainâ sessions, where group chats run in Docker but DMs run on-host). In that case: either install Whisper inside the sandbox, or switch to provider-based transcription viatools.media.audio.models.
What Iâd check next (fast)
- Paste your OpenClaw version:
openclaw --version
-
Paste your
tools.media.audioblock (if any). -
Tail logs while you send a voice note in the WhatsApp group:
openclaw logs --follow
You should see whether it saved a mediaPath and whether transcription ran or was skipped/denied.
Also: your WhatsApp groupPolicy: "open" + allowFrom:["*"] means anyone in any allowed group can trigger processing (including transcription). If this is only for family, you might want groupPolicy:"allowlist" + groupAllowFrom:[...] to tighten it. Docs: https://docs.openclaw.ai/channels/whatsapp
Entao, eu meio que desisti disso sabe, ele ta respondendo no privado do whatsapp e isso basta por ora.
Mas aqui um outro problema - pedi pra fazer um orçamento, ele entrou em contato com os numeros dos lugares, mas ai depois de responderem o orçamento ele ao inves de me repassar a pergunta - repassou na conversa do lugar aonde fez orçamento:
"Putz, errei feio. Respondi no WhatsApp da loja ao invés de só te repassar.
TKA perguntou: Ă© chuteira de campo ou salĂŁo?"
Isso aĂ quase sempre Ă© efeito colateral de DM âabertaâ + sessĂŁo de DM compartilhada.
Com essa config:
dmPolicy: "open"allowFrom: ["*"]- (provavelmente)
session.dmScope: "main"(default)
âŠqualquer DM que chegue no WhatsApp (inclusive a loja) entra no âmesmo baldeâ de conversa do agente. AĂ quando a loja respondeu, o OpenClaw atualizou o lastRoute pra aquela conversa â e o agente acabou mandando a mensagem âpra vocĂȘâ no chat da loja.
Fix recomendado (e também mais seguro)
- Isolar DMs por remetente:
{
session: { dmScope: "per-channel-peer" }
}
Docs: https://docs.openclaw.ai/concepts/session
- NĂŁo deixar DMs do WhatsApp abertas pro mundo (pra nĂŁo responder loja/estranhos):
{
channels: {
whatsapp: {
dmPolicy: "allowlist",
allowFrom: ["+55SEU_NUMERO_AQUI"]
}
}
}
Docs: https://docs.openclaw.ai/channels/whatsapp
Com isso:
- mensagens da loja nĂŁo vĂŁo mais âse misturarâ com sua DM
- o bot nĂŁo vai auto-responder contatos externos (porque nem vai processar inbound deles)
Se vocĂȘ quer que a loja possa responder e o bot sĂł te âreporteâ (sem responder a loja), aĂ jĂĄ vira workflow: vocĂȘ mantĂ©m o inbound da loja permitido, mas precisa instruir o agente (no AGENTS/SOUL do comm) a nunca responder terceiros automaticamente â e mandar um resumo pra sua DM. DĂĄ pra fazer, mas eu começaria pelo dmScope primeiro porque ele resolve a parte mais perigosa (roteamento/contexto).
Se puder, manda também:
openclaw --version- se vocĂȘ tem algo setado em
session.dmScopehoje (ou estĂĄ default)
Fiz isso e agora o agente nao consegue enviar mensagem no WhatsApp pra outros nĂșmeros mais.
[11/03, 22:08] SIGMA: Conectado! â
wacli doctor --connect mostra:
CONNECTED trueLOCKED falseAUTHENTICATED true
Vou tentar um envio de teste rĂĄpido:
[11/03, 22:08] SIGMA: Status atual:
- â
ConexĂŁo:
CONNECTED true(saudĂĄvel) - â Envio: falhou (
context deadline exceeded)
ConclusĂŁo: A sessĂŁo conecta e sincroniza, mas o send continua falhando mesmo com conexĂŁo OK.
Status da Ășltima tentativa: tentado, com timeout, sem confirmação de aceite pelo CLI, sem confirmação de persistĂȘncia local e sem confirmação de entrega
Parece haver um problema especĂfico no pipeline de envio do wacli. Recomendo envio manual pelo WhatsApp enquanto isso nĂŁo Ă© resolvido.
-tentei de tudo, as configuraçÔes no openclaw.json estao certas, revisei 1 a 1. Ele responde quando falo com ele no WhatsApp mas ele nao consegue falar sem alguém falar com ele. Ou seja, iniciar conversas
Beleza â aqui tem uma distinção importante que explica o que vocĂȘ estĂĄ vendo:
dmPolicy/allowFromcontrolam quem pode disparar o bot via inbound (quem manda mensagem pra ele).- Isso nĂŁo deveria impedir o bot de enviar outbound pra outros nĂșmeros.
O que mudou no seu caso Ă© que, pelo log que vocĂȘ colou, quem estĂĄ tentando âiniciar conversaâ Ă© o wacli (skill), e o erro Ă© do wacli (context deadline exceeded) â nĂŁo parece ser um âbloqueioâ do allowFrom.
1) Primeiro: testa envio sem wacli (via OpenClaw mesmo)
Isso aqui usa o mesmo WhatsApp do OpenClaw (Baileys), e Ă© o jeito mais direto de saber se o Gateway consegue iniciar chats:
openclaw message send --channel whatsapp --target "+55XXXXXXXXXXX" --message "teste openclaw"
- Se isso funcionar: o seu problema estĂĄ especĂfico no wacli (ou no jeito que o agente estĂĄ escolhendo wacli pra enviar). A recomendação Ă©: para âiniciar conversaâ, preferir
openclaw message send/ toolmessagee não depender do wacli. - Se isso falhar também: aà sim é problema no pipeline de envio do WhatsApp do próprio OpenClaw e precisamos olhar logs do gateway.
2) Se for wacli mesmo: ele costuma precisar do âsync loopâ
Pelo prĂłprio README do wacli, o fluxo âestĂĄvelâ Ă©:
wacli auth(uma vez)wacli sync --followrodando continuamente
O wacli doctor --connect te diz que conectou, mas nĂŁo garante que o modo de operação estĂĄ âestĂĄvel pra enviarâ em todas as situaçÔes.
3) Pra eu te guiar certinho, manda 3 coisas
openclaw --version- O resultado de:
openclaw channels status - O erro exato (output completo) do teste com:
openclaw message send --channel whatsapp --target "+55..." --message "teste"
AĂ dĂĄ pra cravar: Ă© wacli vs Ă© OpenClaw WhatsApp send â e o prĂłximo passo muda totalmente dependendo disso.
marcel@macmini ~ % openclaw --version
OpenClaw 2026.3.8 (3caab92)
marcelportella@macmini ~ % openclaw channels status
đŠ OpenClaw 2026.3.8 (3caab92) â Finally, a use for that always-on Mac Mini under your desk.
â
â
Gateway reachable.
- Telegram default: enabled, not configured, stopped, mode:polling, groups:unmentioned, error:not configured
- Telegram sigma-code: enabled, configured, running, mode:polling, token:config
- Telegram sigma-comm: enabled, configured, running, in:33m ago, out:3h ago, mode:polling, token:config
- Telegram sigma-content: enabled, configured, running, out:1h ago, mode:polling, token:config
- Telegram sigma-file: enabled, configured, running, mode:polling, token:config
- Telegram sigma-main: enabled, configured, running, in:1h ago, out:1h ago, mode:polling, token:config
- Telegram sigma-research: enabled, configured, running, out:8h ago, mode:polling, token:config
- WhatsApp default: enabled, configured, linked, stopped, disconnected, in:11h ago, dm:open, allow:*, error:{"error":{"data":{"reason":"401","location":"rva"},"isBoom":true,"isServer":false,"output":{"statusCode":401,"payload":{"statusCode":401,"error":"Unauthorized","message":"Connection Failure"},"headers":{}}},"date":"2026-03-12T13:19:10.882Z"}
Tip: status --deep adds gateway health probes to status output (requires a reachable gateway).
marcelportella@macmini ~ % openclaw message send --channel whatsapp --target "+55...." --message "teste"
đŠ OpenClaw 2026.3.8 (3caab92) â Less clicking, more shipping, fewer "where did that file go" moments.
â
â
Error: Error: No active WhatsApp Web listener (account: default). Start the gateway, then link WhatsApp with: openclaw channels login --channel whatsapp --account default.
AĂ tĂĄ o motivo do ânĂŁo consegue iniciar conversasâ:
No seu channels status o WhatsApp estĂĄ:
- linked, stopped, disconnected
- erro 401 Unauthorized / Connection Failure
- e o
openclaw message sendconfirmou: âNo active WhatsApp Web listenerâ
Ou seja: o Gateway estĂĄ de pĂ©, mas o listener do WhatsApp caiu/desautorizou, entĂŁo ele sĂł âparece funcionarâ quando vocĂȘ fala com ele em algum contexto que ainda responde, mas nĂŁo consegue mandar outbound (nem via openclaw message send, nem via agent).
O que fazer (ordem que eu tentaria)
- Restart do Gateway (pra subir o listener de novo):
openclaw gateway restart
- Re-link do WhatsApp (isso normalmente resolve 401):
openclaw channels login --channel whatsapp --account default
Vai aparecer um QR â escaneia com o WhatsApp do nĂșmero que vocĂȘ dedicou pro OpenClaw (o âbotâ).
- Conferir:
openclaw channels status
openclaw message send --channel whatsapp --target "+55..." --message "teste"
Se o login reclamar ou continuar caindo
No celular: WhatsApp â Aparelhos conectados (Linked devices) â remove sessĂ”es antigas/duplicadas (principalmente se vocĂȘ tambĂ©m estiver usando wacli no mesmo nĂșmero), e tenta o channels login de novo.
Se vocĂȘ puder colar o trecho do log enquanto faz o channels login ajuda muito:
openclaw logs --follow
Docs (pra referĂȘncia): https://docs.openclaw.ai/channels/whatsapp
marcel@macmini ~ % openclaw message send --channel whatsapp --target "+55.." --message "teste"
đŠ OpenClaw 2026.3.8 (3caab92) â It's not "failing," it's "discovering new ways to configure the same thing wrong."
â
â
Error: Error: No active WhatsApp Web listener (account: default). Start the gateway, then link WhatsApp with: openclaw channels login --channel whatsapp --account default.
marcel@macmini ~ % openclaw gateway restart
đŠ OpenClaw 2026.3.8 (3caab92) â Type the command with confidenceânature will provide the stack trace if needed.
Restarted LaunchAgent: gui/501/ai.openclaw.gateway
marcelportella@macmini ~ % openclaw channels login --channel whatsapp --account default
đŠ OpenClaw 2026.3.8 (3caab92) â I don't judge, but your missing API keys are absolutely judging you.
Waiting for WhatsApp connection...
â
Linked! Credentials saved for future sends.
marcel@macmini ~ % openclaw message send --channel whatsapp --target "+55..." --message "teste"
đŠ OpenClaw 2026.3.8 (3caab92) â I autocomplete your thoughtsâjust slower and with more API calls.
â
â
Error: Error: No active WhatsApp Web listener (account: default). Start the gateway, then link WhatsApp with: openclaw channels login --channel whatsapp --account default.
O ââ
Linked! Credentials savedâŠâ sĂł garante que as credenciais foram salvas no state dir que o seu openclaw channels login estĂĄ usando.
Mas o erro que continua vindo no openclaw message send (âNo active WhatsApp Web listenerâ) indica que o Gateway nĂŁo estĂĄ com o listener do WhatsApp rodando â entĂŁo o problema agora nĂŁo Ă© mais âlinkarâ, Ă© o listener nĂŁo subir (ou estar subindo em outro profile/state dir).
Os 2 culpados mais comuns nesse ponto:
1) web.enabled desligado (WhatsApp depende do âweb channelâ)
Confere isso:
openclaw config get web.enabled
Tem que ser true. Se vier false/null, seta:
openclaw config set web.enabled true --strict-json
openclaw gateway restart
(Depois disso, channels status deveria mostrar WhatsApp como running/connected, nĂŁo âstoppedâ.)
2) Mismatch entre config/state do CLI vs service (LaunchAgent)
Isso Ă© MUITO comum no macOS. Roda e cola aqui o output:
openclaw gateway status
openclaw config file
No gateway status, presta atenção se aparece algo tipo âConfig (cli)â vs âConfig (service)â diferente.
Se estiver diferente, o Gateway (LaunchAgent) estĂĄ rodando com outro config/state dir â aĂ vocĂȘ âlinkaâ num lugar e o serviço estĂĄ olhando outro, entĂŁo nunca vai ter listener ativo.
A correção (quando då mismatch) geralmente é:
openclaw gateway install --force
openclaw gateway restart
openclaw channels login --channel whatsapp --account default
Pra confirmar rĂĄpido depois
Depois do restart, roda:
openclaw channels status
Se ainda aparecer WhatsApp como stopped, manda também:
openclaw logs --follow
(uns 20â30s logo apĂłs o restart) porque ali normalmente aparece o erro real do porquĂȘ o listener nĂŁo sobe.
Agora apos web enable e restart:
13:33:27 info gateway/ws {"subsystem":"gateway/ws"} â res â send 774ms channel=whatsapp conn=1d823bacâŠ8bdf id=8ca64ec2âŠbdc3
13:33:27 info â
Sent via gateway (whatsapp). Message ID: 3EB02E05A5EAECC8F2895B
13:33:52 info gateway/channels/whatsapp/outbound {"subsystem":"gateway/channels/whatsapp/outbound"} Sending message -> sha256:0db3cdb30b74
13:33:52 info web-outbound {"module":"web-outbound","correlationId":"fe46f7f2-fd6a-4f27-bf45-a104d58058bb","to":"sha256:ef48cf4316f4"} {"jid":"sha256:0db3cdb30b74","hasMedia":false} sending message
13:33:53 info gateway/channels/whatsapp/outbound {"subsystem":"gateway/channels/whatsapp/outbound"} Sent message 3EB0A413A8FEC85C8F8F54 -> sha256:0db3cdb30b74 (228ms)
13:33:53 info web-outbound {"module":"web-outbound","correlationId":"fe46f7f2-fd6a-4f27-bf45-a104d58058bb","to":"sha256:ef48cf4316f4"} {"jid":"sha256:0db3cdb30b74","messageId":"3EB0A413A8FEC85C8F8F54"} sent message
13:33:53 info gateway/ws {"subsystem":"gateway/ws"} â res â send 297ms channel=whatsapp conn=45ae8314âŠ71a7 id=92e7e660âŠa484
13:33:53 info â
Sent via gateway (whatsapp). Message ID: 3EB0A413A8FEC85C8F8F54
13:34:16 debug cron {"module":"cron","storePath":"/Users/marcelportella/.openclaw/cron/jobs.json"} {"nextAt":1773334800000,"delayMs":60000,"clamped":true} cron: timer armed
13:34:17 info web-heartbeat {"module":"web-heartbeat","runId":"ac64480c-231a-4eff-8bdd-d8e3559ed75a"} {"connectionId":"a36dbd83-c853-4256-b789-7dc9106dece9","reconnectAttempts":0,"messagesHandled":0,"lastMessageAt":null,"authAgeMs":59993.873046875,"uptimeMs":61665} web gateway heartbeat
13:34:18 info Service: LaunchAgent (loaded)
--
Mas nao enviou a mensagem de verdade..
Pelos logs agora o cenĂĄrio mudou bastante: o Gateway jĂĄ estĂĄ com listener ativo e o sendMessage retornou messageId (entĂŁo âdo lado do OpenClaw/Baileysâ ele acha que enviou).
Quando vocĂȘ diz ânĂŁo enviou de verdadeâ, as 2 causas mais comuns sĂŁo:
A) VocĂȘ testou enviando para o mesmo nĂșmero do WhatsApp do OpenClaw (self / nĂșmero do SIM)
Se o --target for o prĂłprio nĂșmero do WhatsApp que estĂĄ linkado no OpenClaw, vocĂȘ pode nĂŁo ver nada âchegandoâ como se fosse outro contato.
Confere qual Ă© o nĂșmero âselfâ do WhatsApp linkado:
openclaw directory self --channel whatsapp
E aĂ garante que o --target do teste Ă© o seu nĂșmero pessoal (o que vocĂȘ usa pra conversar com o bot), nĂŁo o nĂșmero do SIM do OpenClaw.
B) O nĂșmero alvo nĂŁo estĂĄ (ou nĂŁo estĂĄ mais) no WhatsApp / ou o WhatsApp estĂĄ segurando a entrega
O OpenClaw hoje nĂŁo faz um âonWhatsApp checkâ antes de mandar â ele pode gerar messageId, mas a entrega real pode nĂŁo acontecer se o JID nĂŁo existir/for invĂĄlido ou o WhatsApp estiver bloqueando.
Teste que elimina quase tudo:
- Envia para o seu nĂșmero pessoal (o chat que jĂĄ existe e que vocĂȘ tem certeza que estĂĄ no WhatsApp):
openclaw message send --channel whatsapp --target "+55SEU_NUMERO_PESSOAL" --message "ping 123"
- Verifica no aparelho do nĂșmero do OpenClaw (o WhatsApp que escaneou o QR):
- apareceu a conversa / a mensagem enviada?
- fica 1 tick / 2 ticks?
- aparece algum â!â de falha?
- Roda de novo:
openclaw channels status
e cola a linha do WhatsApp (pra ver se ele continua ârunning/connectedâ ou se caiu de novo logo apĂłs enviar).
Se esse teste para o seu nĂșmero pessoal tambĂ©m nĂŁo entregar, aĂ Ă© bem forte indĂcio de bug/instabilidade no pipeline de envio (mesmo com sendMessage retornando ok). Nesse caso, o prĂłximo passo Ă© vocĂȘ colar:
- a linha do WhatsApp no
openclaw channels status - e um trecho do
openclaw logs --followpegando o momento do send (uns 5â10s antes e depois).
NĂŁo aparece a mensagem enviada (conversa ja tem e ele consegue me responder quando envio algo - mas partindo dele nao sai)
đŠ OpenClaw 2026.3.8 (3caab92) â If you can describe it, I can probably automate itâor at least make it funnier.
Self
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââŹââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ID â Name â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââŒââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â +55**hisnumeber â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââŽââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
marcelportella@macmini ~ % openclaw message send --channel whatsapp --target "+55mynumber" --message "ping 123"
đŠ OpenClaw 2026.3.8 (3caab92) â It's not "failing," it's "discovering new ways to configure the same thing wrong."
â
â
â Sent via gateway (whatsapp). Message ID: 3EB0E2E659D38A542F3F13
marcel@macmini ~ % openclaw channels status
đŠ OpenClaw 2026.3.8 (3caab92) â I'm like tmux: confusing at first, then suddenly you can't live without me.
â
â
Gateway reachable.
....
-
Telegram sigma-research: enabled, configured, running, mode:polling, token:config
-
WhatsApp default: enabled, configured, linked, running, connected, in:1m ago, out:1m ago, dm:open, allow:*
Tip: status --deep adds gateway health probes to status output (requires a reachable gateway).
Perfeito â agora a parte âlistener/connectionâ estĂĄ OK (seu channels status mostra running, connected e openclaw message send retorna Message ID).
Se mesmo assim nĂŁo aparece nenhuma mensagem no WhatsApp, mas responder funciona quando vocĂȘ manda algo, isso Ă© um sintoma bem tĂpico de JID âerradoâ para outbound.
O que estĂĄ provavelmente acontecendo
- Quando vocĂȘ manda mensagem pro bot, o WhatsApp entrega pro OpenClaw um
chatId/remoteJid(Ă s vezes no formato LID-mapped, tipo5541...:0@s.whatsapp.netou algo relacionado a@lid). - As respostas do bot vĂŁo para esse JID exato â e por isso funcionam.
- JĂĄ o
openclaw message send --target "+55..."converte sempre para5541...@s.whatsapp.net(sem:0) viatoWhatsappJid()â e em alguns casos isso âparece enviarâ mas nĂŁo cai no chat real.
Workaround rĂĄpido pra confirmar (e destravar)
- Descubra qual Ă© o JID real do seu chat usando o wacli (ele mostra o JID certinho):
wacli chats list --limit 50 --query "SEU_NUMERO" --json
Procure o campo JID do chat com vocĂȘ (pode vir com :0@s.whatsapp.net).
- Use esse JID como target no OpenClaw (repara que ele aceita qualquer target que jĂĄ tenha
@):
openclaw message send --channel whatsapp --target "5541....:0@s.whatsapp.net" --message "ping 123"
Se isso funcionar, cravamos que o problema é mapeamento LID/JID no outbound por E.164 (bug/limitação atual).
Outra tentativa que Ă s vezes resolve sem JID
No WhatsApp do nĂșmero do OpenClaw (o SIM novo), salva o seu nĂșmero pessoal como contato (nome + nĂșmero), e tenta de novo o openclaw message send --target "+55...". Em alguns casos isso força o WhatsApp a usar o JID âplainâ sem :0.
Se confirmar o bug
Isso vale virar issue, porque o CLI âdiz que enviouâ mas nĂŁo entrega quando o chat estĂĄ em LID. Se vocĂȘ topar, abre aqui com esses detalhes + repro:
https://github.com/openclaw/openclaw/issues
Inclui:
- versĂŁo
2026.3.8 - âreply funciona, mas
message sendpara+55...nĂŁo entregaâ - â
message sendpara<jid-com-:0>@s.whatsapp.netentregaâ (se confirmar)
Se vocĂȘ colar o JSON do wacli chats list (pode censurar o nĂșmero, mas deixa o formato do JID visĂvel), eu te digo exatamente qual string usar no --target.
marcel@macmini ~ % wacli chats list --limit 50 --query "55*****" --json
{"success":true,"data":[{"JID":"55*****@s.whatsapp.net","Kind":"dm","Name":"55**********@s.whatsapp.net","LastMessageTS":"2026-03-12T02:10:36Z"}],"error":null}
marcelportella@macmini ~ % openclaw message send --channel whatsapp --target "55*****@s.whatsapp.net" --message "ping 123"
đŠ OpenClaw 2026.3.8 (3caab92) â Self-hosted, self-updating, self-aware (just kidding... unless?).
â
â
â
Sent via gateway (whatsapp). Message ID: 3EB09FB0F4ADA1F3D8FB5D
Ainda assim, nao chegou nada
Ok, isso elimina a hipĂłtese do :0/LID â o JID que o wacli te deu Ă© o ânormalâ (âŠ@s.whatsapp.net) e mesmo assim nĂŁo chega.
Ponto importante: o OpenClaw sĂł sabe que âenviouâ porque o Baileys retornou um key.id. Isso nĂŁo Ă© garantia de entrega, mas no mĂnimo deveria aparecer como mensagem enviada no WhatsApp do nĂșmero do OpenClaw (o aparelho que escaneou o QR).
EntĂŁo agora eu faria estes 2 checks pra separar âbug do OpenClaw/Baileysâ vs ârestrição do WhatsApp / contaâ:
1) VocĂȘ estĂĄ olhando no lugar certo?
Depois de rodar o openclaw message send âŠ, olha no WhatsApp do nĂșmero do OpenClaw (o SIM novo):
- apareceu a mensagem enviada naquele chat?
- aparece com 1 tick / 2 ticks / falhou?
Se nĂŁo aparece nem no WhatsApp do prĂłprio nĂșmero do OpenClaw, entĂŁo o envio realmente nĂŁo estĂĄ sendo persistido/propagado.
2) Teste A/B: wacli consegue entregar?
Tenta mandar pelo wacli pro mesmo alvo:
wacli send text --to "+55SEUNUMERO" --message "wacli ping 123"
- Se wacli chega e OpenClaw nĂŁo â isso Ă© bem forte indĂcio de bug no path do OpenClaw/Baileys (vale issue).
- Se nem wacli chega â Ă© mais provĂĄvel restrição/estado do WhatsApp dessa conta (ou nĂșmero alvo errado/nĂŁo-WhatsApp), e aĂ o OpenClaw nĂŁo vai conseguir âiniciar conversaâ mesmo.
Se for bug do OpenClaw
Com base no que vocĂȘ jĂĄ coletou (2026.3.8, listener running/connected, message send âsuccessâ mas nada aparece), eu abriria issue com:
- versĂŁo + OS
- comando exato
openclaw channels status(linha do WhatsApp)- logs do outbound (os que vocĂȘ jĂĄ colou)
Issue: https://github.com/openclaw/openclaw/issues
Se vocĂȘ me disser o resultado do teste do wacli send e se a mensagem aparece (ou nĂŁo) no WhatsApp do nĂșmero do OpenClaw, dĂĄ pra cravar qual lado estĂĄ quebrando.
marcelportella@macmini ~ % wacli send text --to "55*****" --message "wacli ping 123"
11:25:02.242 [Client/Socket ERROR] Error reading from websocket: failed to get reader: failed to read frame header: EOF
failed to get device list: failed to send usync query: websocket disconnected before info query returned response
marcelportella@macmini ~ % wacli send text --to "+55*****" --message "wacli ping 123"
not authenticated; run wacli auth
Entendi â agora temos um dado bem claro:
- Gateway WhatsApp estĂĄ running/connected
openclaw message sendretorna Message ID- mas nada aparece no WhatsApp (e vocĂȘ sĂł vĂȘ mensagens quando vocĂȘ inicia e ele responde)
Isso normalmente acontece quando o âsendMessageâ retorna um key.id local, mas o WhatsApp nĂŁo estĂĄ aceitando/propagando aquele envio (ou estĂĄ indo pra um âpeerâ diferente do que vocĂȘ acha). Vamos tirar a dĂșvida com dois testes bem determinĂsticos:
1) Confirma se vocĂȘ NĂO estĂĄ em self-chat sem querer
Esse ponto Ă© crucial:
- O nĂșmero que aparece em
openclaw directory self --channel whatsapp(self) Ă© o mesmo nĂșmero que vocĂȘ usa pra mandar mensagem pro bot?- Se for o mesmo â vocĂȘ estĂĄ falando com âMessage Yourselfâ, e isso muda bastante o comportamento (e
selfChatModedeveria estartrue).
- Se for o mesmo â vocĂȘ estĂĄ falando com âMessage Yourselfâ, e isso muda bastante o comportamento (e
Se puder, responde sĂł: âself = meu nĂșmero pessoal?â (sim/nĂŁo).
2) Teste de envio pra grupo (nĂŁo depende de DM/JID/contato)
Tenta mandar praquele grupo que vocĂȘ jĂĄ tem no config:
openclaw message send --channel whatsapp --target "120363425815785473@g.us" --message "ping grupo 123"
- Se aparecer no grupo â o outbound do OpenClaw funciona; o problema fica especĂfico do âDM pra nĂșmeroâ.
- Se NĂO aparecer nem no grupo â entĂŁo o problema Ă© mais embaixo: WhatsApp/Baileys estĂĄ retornando sucesso mas nĂŁo estĂĄ de fato publicando as mensagens.
3) Verificação visual obrigatĂłria (no WhatsApp do nĂșmero do OpenClaw)
Depois de um message send, olha no WhatsApp do nĂșmero do SIM/OpenClaw (o que escaneou o QR):
- aparece a mensagem como enviada?
- aparece falha (â) ou fica ârelĂłgioâ pendente?
Isso Ă© a evidĂȘncia mais forte.
Se (2) falhar e nĂŁo aparecer nem no grupo, aĂ eu acho que Ă© caso de bug e vale abrir issue com:
openclaw --version(vocĂȘ jĂĄ tem)openclaw channels status(linha do WhatsApp)- trecho de log do momento do send
Issue: https://github.com/openclaw/openclaw/issues
Mas antes, manda o resultado do teste do grupo e se âself = meu nĂșmero pessoal (sim/nĂŁo)â, que isso define o prĂłximo passo.
-
NĂŁo Ă© self chat - entendo a importancia de checar novamente, mas nĂŁo sou imbecil kkk.
-
Teste de envio pra grupo (nĂŁo depende de DM/JID/contato)
Tenta mandar praquele grupo que vocĂȘ jĂĄ tem no config:
openclaw message send --channel whatsapp --target "120363425815785473@g.us" --message "ping grupo 123"
--FOI! Enviou no grupo.
-
Verificação visual obrigatĂłria (no WhatsApp do nĂșmero do OpenClaw)
Depois de um message send, olha no WhatsApp do nĂșmero do SIM/OpenClaw (o que escaneou o QR):aparece a mensagem como enviada?
Sim aparece como enviada, e enviou mesmo.
Boa â entĂŁo fechou a parte âinfraâ:
web.enabled+ relink/restart fez o listener subir- envio outbound funciona (no grupo foi, e vocĂȘ viu no WhatsApp do SIM/OpenClaw como enviado de verdade)
Isso significa que o problema âele nĂŁo consegue iniciar conversasâ era basicamente: nĂŁo tinha listener ativo (e/ou web desligado), nĂŁo uma limitação estrutural do OpenClaw.
PrĂłximo passo (pra validar DM / novos nĂșmeros)
Agora que o send funciona em grupo, testa 1 DM olhando nos dois lados:
openclaw message send --channel whatsapp --target "+55SEU_NUMERO_PESSOAL" --message "ping dm 123"
- No WhatsApp do SIM/OpenClaw: deve aparecer a mensagem naquele chat.
- No seu WhatsApp pessoal: deve chegar (ou pelo menos aparecer no chat).
Se no SIM aparece e no seu nĂŁo chega, aĂ jĂĄ nĂŁo Ă© OpenClaw â Ă© entrega do WhatsApp (bloqueio, nĂșmero errado, etc.). Mas como ele responde quando vocĂȘ fala com ele, eu suspeito que agora vai funcionar.
Importante (pra nĂŁo repetir o ârespondeu a lojaâ)
Mesmo com outbound funcionando, eu ainda recomendo fortemente:
session.dmScope: "per-channel-peer"(evita misturar DMs de gente diferente)- e nĂŁo deixar
dmPolicy: "open"comallowFrom:["*"]em produção, senĂŁo qualquer nĂșmero que vocĂȘ contatar pode virar âinboundâ e o bot começa a responder sozinho.
Se esse fluxo agora estiver ok, vale vocĂȘ marcar a mensagem da solução aqui no tĂłpico (Apps â â Mark Solution) pra ficar indexado no Answer Overflow.
đŠ OpenClaw 2026.3.8 (3caab92) â Making 'I'll automate that later' happen now.
â
â
â
Sent via gateway (whatsapp). Message ID: 3EB05459341429406A2D9A
Porem nem no meu, nem no dele aparece a mensagem.
Eu testei agora outro numero, aqui da empresa e foi usando o comando openclaw message send --channel whatsapp --target "+55**numerodaempresa" --message "ping dm 123"
Beleza â isso (ââ Sent via gatewayâ mas nĂŁo aparece nem no seu WhatsApp nem no dele) bate exatamente com o padrĂŁo âWhatsApp Web consegue responder, mas nĂŁo consegue iniciar DM nova / DM nĂŁo âconhecidaââ.
VocĂȘ jĂĄ provou que:
- outbound funciona (no grupo foi)
- o listener estĂĄ OK
EntĂŁo o problema estĂĄ bem provavelmente em DM para nĂșmero que o WhatsApp ainda nĂŁo considera um chat vĂĄlido/ativo para esse device (ou o nĂșmero nĂŁo Ă© realmente WhatsApp).
Checklist rĂĄpido (o que realmente destrava isso na prĂĄtica)
-
No telefone do SIM/OpenClaw, abre o WhatsApp e:
- salva o nĂșmero da pessoa como contato
- abre a conversa com ela manualmente (nem precisa mandar, sĂł abrir)
- idealmente manda um âoiâ manual uma vez
-
Depois tenta de novo no CLI:
openclaw message send --channel whatsapp --target "+55..." --message "ping dm 123"
Na maioria dos casos, depois que o chat existe de verdade no WhatsApp do SIM, o Baileys passa a conseguir enviar e aĂ aparece pros dois lados.
Como confirmar se o nĂșmero âdeleâ Ă© WhatsApp mesmo
Antes de gastar tempo: tenta mandar manual do WhatsApp do SIM/OpenClaw pra esse nĂșmero.
Se nem manual chega / nem cria chat, o nĂșmero pode nĂŁo ter WhatsApp (ou estar bloqueando).
Se mesmo com chat criado manualmente ainda nĂŁo aparecer
AĂ sim fica com cara de bug do Baileys/OpenClaw (porque o send retorna key.id mas nĂŁo materializa). Nesse caso, abre issue com esse repro:
- âGroup send worksâ
- âDM send to a new number returns success but no message on either sideâ
- versĂŁo 2026.3.8
- e idealmente o nĂșmero alvo jĂĄ salvo/contato + chat aberto
Issue: https://github.com/openclaw/openclaw/issues
Se vocĂȘ quiser, me diz sĂł uma coisa: esse nĂșmero âdeleâ vocĂȘ jĂĄ consegue mandar mensagem manual pelo WhatsApp do SIM/OpenClaw (sem OpenClaw)? Isso define 100% o caminho.
Perfeito â entĂŁo estĂĄ confirmado que:
- o WhatsApp listener do OpenClaw estĂĄ ok
- o
openclaw message sendconsegue iniciar DM sim - logo, o ânĂŁo enviaâ que vocĂȘ viu antes Ă© especĂfico daquele nĂșmero alvo, nĂŁo uma limitação geral do OpenClaw.
Quando falha sĂł pra 1 nĂșmero, quase sempre Ă© uma destas coisas:
- O nĂșmero nĂŁo tem WhatsApp (ou Ă© fixo / nĂșmero errado / faltando o dĂgito 9 no BR).
- VocĂȘ estĂĄ bloqueado por esse contato (ou ele bloqueou mensagens de desconhecidos / ou o chat estĂĄ num estado estranho).
- O nĂșmero estĂĄ em outro formato/variante (ex.: vocĂȘ tem salvo com DDI/DDD errado).
O jeito mais rĂĄpido de cravar Ă©: no WhatsApp do SIM/OpenClaw, tenta mandar manualmente pra esse nĂșmero âproblemĂĄticoâ.
- Se manual tambĂ©m nĂŁo vai â Ă© o nĂșmero/WhatsApp, nĂŁo o OpenClaw.
- Se manual vai, mas OpenClaw nĂŁo â aĂ sim vale issue com esse alvo especĂfico.
E agora que vocĂȘ jĂĄ conseguiu destravar, eu recomendo muito ajustar segurança pra nĂŁo repetir o caso da âlojaâ:
{
web: { enabled: true },
session: { dmScope: "per-channel-peer" },
channels: {
whatsapp: {
dmPolicy: "allowlist",
allowFrom: ["+55SEU_NUMERO_PESSOAL"],
groupPolicy: "allowlist",
groupAllowFrom: ["+55SEU_NUMERO_PESSOAL"],
}
}
}
Se essa parte do envio ficou resolvida, marca uma das mensagens como solução no thread (Apps â â Mark Solution) pra ficar indexado.
Bom, parcialmente, rodei mais uns testes aqui. Ele parece estar enviando para grupos e telefones FIXOS. Para celulares - nĂŁo.
Isso âgrupo + alguns nĂșmeros vai / celulares nĂŁoâ quase nunca Ă© literalmente fixo vs celular â normalmente Ă© uma destas situaçÔes (que parecem âtipo de nĂșmeroâ por coincidĂȘncia):
-
Chat jĂĄ existe vs chat novo
- Grupo sempre âexisteâ, entĂŁo tende a funcionar.
- Um nĂșmero âfixo da empresaâ muitas vezes jĂĄ tinha chat aberto (ou Ă© WhatsApp Business bem estabelecido).
- Celulares que vocĂȘ nunca falou antes = âchat novoâ â Ă© onde costuma falhar.
-
O nĂșmero alvo realmente tem WhatsApp (e estĂĄ ativo)
- Tem muito celular que parece WhatsApp mas nĂŁo estĂĄ com WhatsApp naquele nĂșmero (ou trocou de chip).
-
Limitação/score anti-spam do próprio WhatsApp para conta nova
- NĂșmero recĂ©m-criado Ă s vezes consegue falar com alguns destinos (grupos/empresas) mas Ă© bloqueado/limitado para iniciar DM com certos celulares.
Como cravar (teste definitivo)
Para um desses celulares que ânĂŁo vaiâ, faz exatamente o mesmo teste manual no WhatsApp do SIM/OpenClaw:
- No app do WhatsApp (SIM/OpenClaw) â Nova conversa â digita o nĂșmero â tenta mandar âpingâ.