Standalone webhook gateway for OpenAB — bridges Telegram, LINE, Feishu/Lark, Google Chat, and MS Teams to any running OAB instance via WebSocket. Deploy alongside an existing OpenAB service to enable messaging platform support. At least one platform must be configured. Source: https://github.com/openabdev/openab

OpenAB Gateway is a standalone webhook bridge that connects messaging platforms to any running OpenAB instance via WebSocket.
Telegram ──POST──▶ ┌──────────────────┐
LINE ──POST──▶ │ │
Feishu/Lark ──POST──▶ │ OpenAB Gateway │ ◀──WebSocket── OAB Pod
Google Chat ──POST──▶ │ :8080 │ (OAB connects out)
MS Teams ──POST──▶ │ │
└──────────────────┘
Deploy this template alongside an existing OpenAB service (Claude, Cursor, Codex, etc.) to add messaging support without redeploying OAB. Configure one or more of the supported platforms — leave the rest blank to disable them.
| Platform | Setup section | Required variables |
|---|---|---|
| Telegram | #telegram | TELEGRAM_BOT_TOKEN |
| LINE | #line | LINE_CHANNEL_SECRET, LINE_CHANNEL_ACCESS_TOKEN |
| Feishu / Lark | #feishu | FEISHU_APP_ID, FEISHU_APP_SECRET |
| Google Chat | #google-chat | GOOGLE_CHAT_ENABLED=true, GOOGLE_CHAT_SA_KEY_JSON |
| MS Teams | #teams | TEAMS_APP_ID, TEAMS_APP_SECRET |
/newbot and follow the prompts123456:ABC-DEF...) → paste into Telegram Bot Token/setprivacy → Disable so the bot sees all group messagesFill in the tokens for the platform(s) you want to enable and click deploy. A public HTTPS domain is auto-assigned. You can enable Telegram only, LINE only, or both.
After deployment, register your gateway URL with Telegram (replace YOUR_TOKEN, YOUR_DOMAIN, and optionally YOUR_SECRET):
# Without webhook secret (simpler, less secure)
curl "https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://YOUR_DOMAIN/webhook/telegram"
# With webhook secret (recommended — matches TELEGRAM_SECRET_TOKEN you set)
curl "https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://YOUR_DOMAIN/webhook/telegram&secret_token=YOUR_SECRET"
Expected response: {"ok":true,"result":true,"description":"Webhook was set"}
In your OpenAB service (same Zeabur project), edit /home/agent/.config/openab/config.toml and add:
[gateway]
url = "ws://openab-gateway:8080/ws"
Then restart the OpenAB service. OAB connects outbound to the gateway — no inbound ports needed on OAB.
Internal hostname:
openab-gatewayresolves within the same Zeabur project via internal DNS. If your gateway service has a different name, use that name instead.
Send a message to your Telegram bot. The gateway receives it and forwards it to OAB via WebSocket. OAB processes it and replies through the gateway.
In LINE Developers Console → Messaging API tab:
https://YOUR_DOMAIN/webhook/lineIn config.toml, add platform = "line" to the gateway section:
[gateway]
url = "ws://openab-gateway:8080/ws"
platform = "line"
Restart the OpenAB service after saving.
im.message.receive_v1 event.im:message, im:message:send_as_bot, contact:user.base:readonly.FEISHU_APP_ID, App Secret → FEISHU_APP_SECRET.FEISHU_DOMAIN to lark if using Lark international, otherwise leave at feishu.Default connection mode is WebSocket — the gateway connects outbound to Feishu, no inbound webhook URL needed.
Then configure OAB to use the gateway with platform = "feishu":
[gateway]
url = "ws://openab-gateway:8080/ws"
platform = "feishu"
Full guide: docs/feishu.md
Requires a Google Workspace account (Business/Enterprise tier). Consumer
@gmail.comaccounts cannot create Google Chat apps.
https://YOUR_DOMAIN/webhook/googlechatGOOGLE_CHAT_ENABLED=trueGOOGLE_CHAT_SA_KEY_JSON → paste the full Service Account JSON (single line)GOOGLE_CHAT_AUDIENCE → https://YOUR_DOMAIN/webhook/googlechat (recommended for JWT verification)Configure OAB with platform = "googlechat". Full guide: docs/google-chat.md
https://YOUR_DOMAIN/webhook/teams.TEAMS_APP_ID, generate a client secret → TEAMS_APP_SECRET.Configure OAB with platform = "teams". Full guide: docs/msteams-selfhosted.md
| Path | Platform |
|---|---|
POST /webhook/telegram | Telegram |
POST /webhook/line | LINE |
POST /webhook/feishu | Feishu/Lark (webhook mode only; default uses WebSocket) |
POST /webhook/googlechat | Google Chat |
POST /webhook/teams | MS Teams |
GET /ws | OAB WebSocket (internal) |
GET /health | Health check |