WhatsApp (web channel)
Holat: WhatsApp Web (Baileys) orqali production-ready. Gateway bog‘langan sessiya(lar)ga egalik qiladi.Pairing
Channel troubleshooting
Gateway configuration
Tezkor sozlash
Configure WhatsApp access policy
Link WhatsApp (QR)
Start the gateway
Approve first pairing request (if using pairing mode)
Joylashtirish andozalari
Dedicated number (recommended)
Dedicated number (recommended)
Personal-number fallback
Personal-number fallback
WhatsApp Web-only channel scope
WhatsApp Web-only channel scope
Baileys) asosida ishlaydi.Inbound flow (DM + group)
- WhatsApp events come from
messages.upsert(Baileys). - Inbox listeners are detached on shutdown to avoid accumulating event handlers in tests/restarts.
- Status/broadcast chats are ignored.
- Direct chats use E.164; groups use group JID.
- DM policy:
channels.whatsapp.dmPolicycontrols direct chat access (default:pairing).
Personal-number mode (fallback)
- DM policy
- Group policy + allowlists
- Mentions + /activation
channels.whatsapp.dmPolicy to‘g‘ridan-to‘g‘ri chat kirishini boshqaradi:Shaxsiy raqam va self-chat xulq-atvori
Bog‘langan self raqamallowFrom ichida ham mavjud bo‘lsa, WhatsApp self-chat himoyasi faollashadi:
- self-chat xabarlari uchun o‘qilganlik kvitansiyalarini o‘tkazib yuborish
- aks holda o‘zingizni ping qilishi mumkin bo‘lgan mention-JID avtomatik trigger xulq-atvorini e’tiborsiz qoldirish
- agar
messages.responsePrefixo‘rnatilmagan bo‘lsa, self-chat javoblari standart tarzda[{identity.name}]yoki[openclaw]bilan boshlanadi
Xabarni normallashtirish va kontekst
Inbound envelope + reply context
Inbound envelope + reply context
Media placeholders and location/contact extraction
Media placeholders and location/contact extraction
Pending group history injection
Pending group history injection
Read receipts
Read receipts
Yetkazib berish, bo‘laklash (chunking) va media
Text chunking
Text chunking
- standart bo‘lak limiti:
channels.whatsapp.textChunkLimit = 4000 channels.whatsapp.chunkMode = "length" | "newline"newlinerejimi avval paragraf chegaralarini (bo‘sh qatorlar) afzal ko‘radi, so‘ng uzunlik bo‘yicha xavfsiz bo‘laklashga o‘tadi
Outbound media behavior
Outbound media behavior
- rasm, video, audio (PTT voice-note) va hujjat payload’larini qo‘llab-quvvatlaydi
audio/oggvoice-note mosligi uchunaudio/ogg; codecs=opusga qayta yoziladi- animatsion GIF ijrosi video yuborishda
gifPlayback: trueorqali qo‘llab-quvvatlanadi - bir nechta media bilan javob yuborilganda caption birinchi media elementiga qo‘llanadi
- media manbasi HTTP(S),
file://yoki lokal yo‘llar bo‘lishi mumkin
Media size limits and fallback behavior
Media size limits and fallback behavior
- kiruvchi media saqlash limiti:
channels.whatsapp.mediaMaxMb(standart50) - avtomatik javoblar uchun chiquvchi media limiti:
agents.defaults.mediaMaxMb(standart5MB) - rasmlar limitlarga moslash uchun avtomatik optimallashtiriladi (o‘lcham/sifat moslashtirish)
- media yuborishda xatolik bo‘lsa, javobni jim tashlab yuborish o‘rniga birinchi element fallback sifatida ogohlantiruvchi matn yuboriladi
Tasdiqlovchi reaksiyalar
WhatsApp kiruvchi xabar qabul qilinganda darhol ack reaksiyalarinichannels.whatsapp.ackReaction orqali qo‘llab-quvvatlaydi.
- kiruvchi xabar qabul qilingach darhol (javobdan oldin) yuboriladi
- xatoliklar log qilinadi, ammo odatiy javob yetkazilishini to‘xtatmaydi
mentionsguruh rejimi mention-trigger qilingan burilishlarda reaksiya bildiradi; guruh aktivatsiyasialwaysbo‘lsa, bu tekshiruvni chetlab o‘tadi- WhatsApp
channels.whatsapp.ackReactiondan foydalanadi (legacymessages.ackReactionbu yerda ishlatilmaydi)
Multi-account va credentials
Account selection and defaults
Account selection and defaults
- akkaunt id’lari
channels.whatsapp.accountsdan olinadi - standart akkaunt tanlovi: agar mavjud bo‘lsa
default, aks holda sozlangan akkaunt id’laridan birinchisi (saralangan) - akkaunt id’lari qidiruv uchun ichki tarzda normallashtiriladi
Credential paths and legacy compatibility
Credential paths and legacy compatibility
- joriy auth yo‘li:
~/.openclaw/credentials/whatsapp/<accountId>/creds.json - zaxira fayl:
creds.json.bak ~/.openclaw/credentials/ichidagi legacy standart auth hanuz tan olinadi/migratsiya qilinadi (default-account oqimlari uchun)
Logout behavior
Logout behavior
openclaw channels logout --channel whatsapp [--account <id>] ushbu akkaunt uchun WhatsApp auth holatini tozalaydi.Vositalar, amallar va config yozuvlari
- Agent vositalari WhatsApp reaksiya amalini (
react) qo‘llab-quvvatlaydi. [[audio_as_voice]]WhatsApp uchun e’tiborga olinmaydi (audio allaqachon ovozli xabar sifatida yuboriladi).channels.whatsapp.actions.reactionschannels.whatsapp.actions.polls
- Channel tomonidan boshlangan config yozuvlari sukut bo‘yicha yoqilgan (
channels.whatsapp.configWrites=falseorqali o‘chiriladi).
Media limitlari + optimallashtirish
Not linked (QR required)
Not linked (QR required)
Linked but disconnected / reconnect loop
Linked but disconnected / reconnect loop
No active listener when sending
No active listener when sending
Group messages unexpectedly ignored
Group messages unexpectedly ignored
Bun runtime warning
Bun runtime warning
Konfiguratsiya ma’lumotnomasi havolalari
Bun runtime WhatsApp uchun muhim maydonlar:- access:
dmPolicy,allowFrom,groupPolicy,groupAllowFrom,groups - delivery:
textChunkLimit,chunkMode,mediaMaxMb,sendReadReceipts,ackReaction - multi-account:
accounts.<id>.enabled,accounts.<id>.authDir, account-level overrides - operations:
configWrites,debounceMs,web.enabled,web.heartbeatSeconds,web.reconnect.* - session xatti-harakati:
session.dmScope,historyLimit,dmHistoryLimit,dms.<id>.historyLimit