#Whatsapp Audio Messages

1 messages · Page 1 of 1 (latest)

weary prairie
#

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": {
....

vestal cobaltBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

fresh loomBOT
#

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”:

  1. Audio transcription is scope-denied for groups
    If you have tools.media.audio.scope set to deny chatType: "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

  1. 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 via tools.media.audio.models.

What I’d check next (fast)

  1. Paste your OpenClaw version:
openclaw --version
  1. Paste your tools.media.audio block (if any).

  2. 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

weary prairie
#

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?"

fresh loomBOT
#

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)

  1. Isolar DMs por remetente:
{
  session: { dmScope: "per-channel-peer" }
}
#
  • 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.dmScope hoje (ou estĂĄ default)
weary prairie
#

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 true
  • LOCKED false
  • AUTHENTICATED 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

fresh loomBOT
#

Beleza — aqui tem uma distinção importante que explica o que vocĂȘ estĂĄ vendo:

  • dmPolicy / allowFrom controlam 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 / tool message e 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 --follow rodando 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

  1. openclaw --version
  2. O resultado de:
    openclaw channels status
    
  3. 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.

weary prairie
#

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.

fresh loomBOT
#

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 send confirmou: “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)

  1. Restart do Gateway (pra subir o listener de novo):
openclaw gateway restart
#
  1. 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”).

  1. 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:

weary prairie
#

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.

fresh loomBOT
#

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.

weary prairie
#

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..

fresh loomBOT
#

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:

  1. 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"
  1. 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?
  1. 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 --follow pegando o momento do send (uns 5–10s antes e depois).
weary prairie
#

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).

fresh loomBOT
#

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, tipo 5541...:0@s.whatsapp.net ou 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 para 5541...@s.whatsapp.net (sem :0) via toWhatsappJid() → e em alguns casos isso “parece enviar” mas nĂŁo cai no chat real.

Workaround rĂĄpido pra confirmar (e destravar)

  1. 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).

  1. 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 send para +55... nĂŁo entrega”
  • “message send para <jid-com-:0>@s.whatsapp.net entrega” (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.

weary prairie
#

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

fresh loomBOT
#

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.

weary prairie
#

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

fresh loomBOT
#

Entendi — agora temos um dado bem claro:

  • Gateway WhatsApp estĂĄ running/connected
  • openclaw message send retorna 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 selfChatMode deveria estar true).

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.

weary prairie
#
  1. NĂŁo Ă© self chat - entendo a importancia de checar novamente, mas nĂŁo sou imbecil kkk.

  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"

--FOI! Enviou no grupo.


  1. 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.

fresh loomBOT
#

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" com allowFrom:["*"] 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.

weary prairie
#

🩞 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"

fresh loomBOT
#

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)

  1. 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
  2. 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 send consegue 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:

  1. O nĂșmero nĂŁo tem WhatsApp (ou Ă© fixo / nĂșmero errado / faltando o dĂ­gito 9 no BR).
  2. VocĂȘ estĂĄ bloqueado por esse contato (ou ele bloqueou mensagens de desconhecidos / ou o chat estĂĄ num estado estranho).
  3. 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.

weary prairie
#

Bom, parcialmente, rodei mais uns testes aqui. Ele parece estar enviando para grupos e telefones FIXOS. Para celulares - nĂŁo.

fresh loomBOT
#

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):

  1. 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.
  2. 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).
  3. 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”.