Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Status: experimental. DMs are supported. The Capabilities section below reflects current Marketplace-bot behavior.
Zalo ships as a bundled plugin in current OpenClaw releases, so normal packaged builds do not need a separate install.
If you are on an older build or a custom install that excludes Zalo, install a current npm package when one is published:
openclaw plugins install @openclaw/zaloopenclaw plugins install ./path/to/local/zalo-pluginIf npm reports the OpenClaw-owned package as deprecated, use a current packaged OpenClaw build or the local checkout path until a newer npm package is published.
ZALO_BOT_TOKEN=...channels.zalo.accounts.default.botToken: "..."Minimal config:
json5{ channels: { zalo: { enabled: true, accounts: { default: { botToken: "12345689:abc-xyz", dmPolicy: "pairing", }, }, }, }, }
Zalo is a Vietnam-focused messaging app; its Bot API lets the Gateway run a bot for 1:1 conversations. It is a good fit for support or notifications where you want deterministic routing back to Zalo.
This page reflects current OpenClaw behavior for Zalo Bot Creator / Marketplace bots. Zalo Official Account (OA) bots are a different Zalo product surface and may behave differently.
numeric_id:secretExample:
json5{ channels: { zalo: { enabled: true, accounts: { default: { botToken: "12345689:abc-xyz", dmPolicy: "pairing", }, }, }, }, }
If you later move to a Zalo bot surface where groups are available, you can add group-specific config such as
groupPolicygroupAllowFromEnv option:
ZALO_BOT_TOKEN=...Multi-account support: use
channels.zalo.accountsnamechannels.zalo.webhookUrlchannels.zalo.mediaMaxMbchannels.zalo.dmPolicy = "pairing"openclaw pairing list zaloopenclaw pairing approve zalo <CODE>channels.zalo.allowFromFor Zalo Bot Creator / Marketplace bots, group support was not available in practice because the bot could not be added to a group at all.
That means the group-related config keys below exist in the schema, but were not usable for Marketplace bots:
channels.zalo.groupPolicyopen | allowlist | disabledchannels.zalo.groupAllowFromgroupAllowFromallowFromchannels.zalogroupPolicy="allowlist"The group policy values (when group access is available on your bot surface) are:
groupPolicy: "disabled"groupPolicy: "open"groupPolicy: "allowlist"If you are using a different Zalo bot product surface and have verified working group behavior, document that separately rather than assuming it matches the Marketplace-bot flow.
channels.zalo.webhookUrlchannels.zalo.webhookSecretX-Bot-Api-Secret-Tokenchannels.zalo.webhookPathContent-Type: application/json+jsonevent_name + message_idNote: getUpdates (polling) and webhook are mutually exclusive per Zalo API docs.
For a quick support snapshot, see Capabilities. The notes below add detail where the behavior needs extra context.
This table summarizes current Zalo Bot Creator / Marketplace bot behavior in OpenClaw.
| Feature | Status |
|---|---|
| Direct messages | ✅ Supported |
| Groups | ❌ Not available for Marketplace bots |
| Media (inbound images) | ⚠️ Limited / verify in your environment |
| Media (outbound images) | ⚠️ Not re-tested for Marketplace bots |
| Plain URLs in text | ✅ Supported |
| Link previews | ⚠️ Unreliable for Marketplace bots |
| Reactions | ❌ Not supported |
| Stickers | ⚠️ No agent reply for Marketplace bots |
| Voice notes / audio / video | ⚠️ No agent reply for Marketplace bots |
| File attachments | ⚠️ No agent reply for Marketplace bots |
| Threads | ❌ Not supported |
| Polls | ❌ Not supported |
| Native commands | ❌ Not supported |
| Streaming | ⚠️ Blocked (2000 char limit) |
openclaw message send --channel zalo --target 123456789 --message "hi"Bot doesn't respond:
openclaw channels status --probeopenclaw logs --followWebhook not receiving events:
Full configuration: Configuration
The flat top-level keys (
channels.zalo.botTokenchannels.zalo.dmPolicychannels.zalo.accounts.<id>.*Provider options:
channels.zalo.enabledchannels.zalo.botTokenchannels.zalo.tokenFilechannels.zalo.dmPolicypairing | allowlist | open | disabledchannels.zalo.allowFromopen"*"channels.zalo.groupPolicyopen | allowlist | disabledchannels.zalo.groupAllowFromallowFromchannels.zalo.mediaMaxMbchannels.zalo.webhookUrlchannels.zalo.webhookSecretchannels.zalo.webhookPathchannels.zalo.proxyMulti-account options:
channels.zalo.accounts.<id>.botTokenchannels.zalo.accounts.<id>.tokenFilechannels.zalo.accounts.<id>.namechannels.zalo.accounts.<id>.enabledchannels.zalo.accounts.<id>.dmPolicychannels.zalo.accounts.<id>.allowFromchannels.zalo.accounts.<id>.groupPolicychannels.zalo.accounts.<id>.groupAllowFromchannels.zalo.accounts.<id>.webhookUrlchannels.zalo.accounts.<id>.webhookSecretchannels.zalo.accounts.<id>.webhookPathchannels.zalo.accounts.<id>.proxy© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine