# @openclaw/zalouser OpenClaw extension for Zalo Personal Account messaging via native `zca-js` integration. > **Warning:** Using Zalo automation may result in account suspension or ban. Use at your own risk. This is an unofficial integration. ## Features - Channel plugin integration with onboarding + QR login - In-process listener/sender via `zca-js` (no external CLI) - Multi-account support - Agent tool integration (`zalouser`) - DM/group policy support ## Prerequisites - OpenClaw Gateway - Zalo mobile app (for QR login) No external `zca`, `openzca`, or `zca-cli` binary is required. ## Install ### Option A: npm ```bash openclaw plugins install @openclaw/zalouser ``` ### Option B: local source checkout ```bash openclaw plugins install ./extensions/zalouser cd ./extensions/zalouser && pnpm install ``` Restart the Gateway after install. ## Quick start ### Login (QR) ```bash openclaw channels login --channel zalouser ``` Scan the QR code with the Zalo app on your phone. ### Enable channel ```yaml channels: zalouser: enabled: true dmPolicy: pairing # pairing | allowlist | open | disabled ``` ### Send a message ```bash openclaw message send --channel zalouser --target --message "Hello from OpenClaw" ``` ## Configuration Basic: ```yaml channels: zalouser: enabled: true dmPolicy: pairing ``` Multi-account: ```yaml channels: zalouser: enabled: true defaultAccount: default accounts: default: enabled: true profile: default work: enabled: true profile: work ``` ## Useful commands ```bash openclaw channels login --channel zalouser openclaw channels login --channel zalouser --account work openclaw channels status --probe openclaw channels logout --channel zalouser openclaw directory self --channel zalouser openclaw directory peers list --channel zalouser --query "name" openclaw directory groups list --channel zalouser --query "work" openclaw directory groups members --channel zalouser --group-id ``` ## Agent tool The extension registers a `zalouser` tool for AI agents. Available actions: `send`, `image`, `link`, `friends`, `groups`, `me`, `status` ## Troubleshooting - Login not persisted: `openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser` - Probe status: `openclaw channels status --probe` - Name resolution issues (allowlist/groups): use numeric IDs or exact Zalo names ## Credits Built on [zca-js](https://github.com/RFS-ADRENO/zca-js).