Zalo

OpenClaw Zalo channel plugin. Popular Vietnamese messaging platform integration.

The Zalo plugin connects OpenClaw to Zalo, Vietnam's dominant messaging platform with over 75 million monthly active users. Zalo is to Vietnam what WeChat is to China or KakaoTalk is to South Korea — the default communication app for both personal and business use. This plugin enables AI agent interactions through Zalo's Official Account (OA) API. The plugin works through Zalo's Official Account platform, which provides bot-like capabilities for businesses and developers. You register an OA, configure webhook endpoints, and the plugin handles message routing between Zalo users and your OpenClaw gateway. It supports text messages, image sharing, and interactive message templates available through the OA API. This is a regional-specific plugin primarily useful for Vietnamese users, businesses operating in Vietnam, or anyone serving a Vietnamese-speaking audience. With 881 weekly downloads, it reflects a dedicated user base in the Vietnamese tech community. The companion plugin @openclaw/zalouser offers personal account integration via the zca-js library for users who prefer chatting through their personal Zalo account rather than an OA. Ideal for Vietnamese businesses wanting to deploy AI customer service bots, Vietnamese developers building personal AI assistants, or anyone whose primary messaging platform is Zalo. Not useful outside the Vietnamese market.

Tags: channel, messaging, regional

Use Cases

  • Vietnamese customer support bot deployed through a business Zalo Official Account
  • Personal AI assistant for Vietnamese users accessible through their daily messaging app
  • E-commerce order tracking and FAQ bot for Vietnamese online businesses using Zalo as their customer channel
  • Vietnamese language learning assistant that converses naturally through Zalo

Tips

  • Get your Zalo OA verified as soon as possible to unlock higher rate limits for production use
  • Use the @openclaw/zalouser plugin if you want your AI assistant on your personal Zalo account rather than an OA
  • Set up Cloudflare Tunnel or ngrok for development to expose your webhook endpoint to Zalo's servers
  • Monitor access token expiration and set up automated refresh to avoid service interruptions
  • Test with a small number of users first to stay within unverified OA rate limits during development
  • Use Zalo's interactive message templates for richer bot responses — buttons and quick replies improve UX

Known Issues & Gotchas

  • Zalo OA API requires a verified business to unlock higher rate limits — start the verification process early
  • Access tokens expire after a set period — implement token refresh logic or monitor for auth failures
  • Webhook events from Zalo include a signature that must be verified to prevent spoofing — the plugin handles this but ensure your secret is correct
  • Unverified OAs are limited to 200 API messages per day — this can be exhausted quickly with active usage
  • The Zalo API documentation is primarily in Vietnamese — use browser translation if you're not fluent
  • Don't confuse @openclaw/zalo (OA-based) with @openclaw/zalouser (personal account via zca-js) — they serve different use cases

Alternatives

  • @openclaw/zalouser
  • Telegram (built-in)
  • WhatsApp (built-in)

Community Feedback

Zalo integration fills a huge gap for Vietnamese OpenClaw users — it's literally the only messaging app everyone uses here.

— OpenClaw Community

The Zalo OA API rate limits are brutal for unverified accounts. Get your OA verified before deploying in production.

— OpenClaw Community

Between @openclaw/zalo (OA) and @openclaw/zalouser (personal), you've got both sides covered. OA for business, personal for your own assistant.

— OpenClaw Community

Frequently Asked Questions

What's the difference between @openclaw/zalo and @openclaw/zalouser?

@openclaw/zalo connects through a Zalo Official Account (business-oriented, uses OA API). @openclaw/zalouser connects through a personal Zalo account using the zca-js library. Use the OA plugin for business/customer-facing bots, and the personal plugin for your own AI assistant.

Do I need a Vietnamese business to use the Zalo OA API?

You can create an unverified OA without a Vietnamese business, but it will be rate-limited to 200 messages per day. Full verification requires a Vietnamese business entity or representative. Personal use may be better served by the @openclaw/zalouser plugin.

Why is Zalo important when Telegram and WhatsApp exist?

Zalo has 75+ million monthly active users in Vietnam — it's the default messaging app there. While Telegram and WhatsApp are global platforms, Zalo is where Vietnamese users actually communicate daily. For Vietnamese market reach, Zalo is essential.

How do I handle Zalo access token expiration?

Zalo access tokens expire periodically. You need to implement the OAuth refresh flow to get new tokens before expiration. Monitor your gateway logs for authentication errors as an early warning of token issues.

Can I send images and files through the Zalo plugin?

Yes, the Zalo OA API supports text messages, images, and file attachments. Rich message templates with buttons and quick replies are also supported through Zalo's interactive message format.

What are the Zalo OA rate limits?

Unverified OAs are limited to 200 API messages per day. Verified OAs get significantly higher limits (varies by verification tier). Get verified early if you plan to deploy in production or serve multiple users.

Configuration Examples

Basic Zalo OA Setup

channels:
  zalo:
    enabled: true
    oaId: ${ZALO_OA_ID}
    oaSecret: ${ZALO_OA_SECRET}
    accessToken: ${ZALO_ACCESS_TOKEN}

Zalo with Webhook Verification

channels:
  zalo:
    enabled: true
    oaId: ${ZALO_OA_ID}
    oaSecret: ${ZALO_OA_SECRET}
    accessToken: ${ZALO_ACCESS_TOKEN}
    webhookSecret: ${ZALO_WEBHOOK_SECRET}
    webhookPath: /webhooks/zalo

Installation

openclaw plugins install @openclaw/zalo