← 返回 Skills 市场
devengagelab

EngageLab WhatsApp Business

作者 DevEngageLab · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
298
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install engagelab-whatsapp-business
功能描述
Call EngageLab WhatsApp Business REST APIs to send WhatsApp messages (template, text, image, video, audio, document, sticker), manage WABA message templates,...
使用说明 (SKILL.md)

EngageLab WhatsApp Business API Skill

This skill enables interaction with the EngageLab WhatsApp Business REST API. As a Meta-authorized WhatsApp Business solution provider, EngageLab connects businesses with over 2 billion WhatsApp users for marketing, notifications, OTP verification, and customer service.

It covers three areas:

  1. Send Messages — Deliver template, text, image, video, audio, document, and sticker messages
  2. Template Management — Create, list, get, update, and delete WABA message templates
  3. Callbacks — Receive message delivery status, user responses, and system notifications

Resources

scripts/

  • whatsapp_client.py — Python client class (EngageLabWhatsApp) wrapping all API endpoints: send_template(), send_text(), send_image(), send_video(), send_audio(), send_document(), send_sticker(), and template CRUD (list_templates(), get_template(), create_template(), update_template(), delete_template()). Handles authentication, request construction, and typed error handling.

references/

  • error-codes.md — Complete error code tables for messaging and template APIs
  • template-api.md — Full template CRUD specs with components object details (header, body, footer, buttons)
  • callback-api.md — Webhook callback events: message status, message response, and system notifications

Authentication

All EngageLab WhatsApp API calls use HTTP Basic Authentication.

  • Base URL: https://wa.api.engagelab.cc
  • Header: Authorization: Basic \x3Cbase64(dev_key:dev_secret)>
  • Content-Type: application/json

The user must provide their dev_key (DevKey) and dev_secret (DevSecret). Encode them as base64("dev_key:dev_secret") and set the Authorization header.

Example (using curl):

curl -X POST https://wa.api.engagelab.cc/v1/messages \
  -H "Content-Type: application/json" \
  -H "Authorization: Basic $(echo -n 'YOUR_DEV_KEY:YOUR_DEV_SECRET' | base64)" \
  -d '{ ... }'

If the user hasn't provided credentials, ask them for their dev_key and dev_secret before generating API calls.

Quick Reference — All Endpoints

Operation Method Path
Send message POST /v1/messages
List templates GET /v1/templates
Get template GET /v1/templates/:templateId
Create template POST /v1/templates
Update template PUT /v1/templates/:templateId
Delete template DELETE /v1/templates/:templateName

Sending Messages

Endpoint: POST /v1/messages

Request Body (Template Message)

{
  "from": "+8613800138000",
  "to": ["00447911123456"],
  "body": {
    "type": "template",
    "template": {
      "name": "code",
      "language": "en",
      "components": [
        {
          "type": "body",
          "parameters": [
            { "type": "text", "text": "12345" }
          ]
        }
      ]
    }
  },
  "request_id": "my-request-123",
  "custom_args": { "order_id": "ORD-456" }
}

Parameters

Field Type Required Description
from string No Sending number with country code. Uses default sending number if omitted
to string[] Yes Recipient WhatsApp phone numbers with country code
body object Yes Message body — see message types below
request_id string No Custom request ID, returned as-is in response and callbacks
custom_args object No Custom data returned in message status callbacks

Message Types

The body.type field determines the message type. Only template messages can be sent to users proactively. Other types require the user to have replied within the last 24 hours.

Type Description 24h Window Required
template Pre-approved template message No
text Plain text (max 4096 chars) Yes
image Image (JPEG/PNG, max 5MB) Yes
video Video (MP4/3GPP, max 16MB) Yes
audio Audio (AAC/MP4/AMR/MPEG/OGG, max 16MB) Yes
document File (any MIME type, max 100MB) Yes
sticker Sticker (WebP, static 100KB / animated 500KB) Yes

Text Message

{
  "to": ["8613800138000"],
  "body": {
    "type": "text",
    "text": { "body": "Hello, your order has shipped!" }
  }
}

Image Message

{
  "to": ["8613800138000"],
  "body": {
    "type": "image",
    "image": {
      "link": "https://example.com/photo.jpg",
      "caption": "Order confirmation"
    }
  }
}

Video Message

{
  "to": ["8613800138000"],
  "body": {
    "type": "video",
    "video": {
      "link": "https://example.com/demo.mp4",
      "caption": "Product demo"
    }
  }
}

Audio Message

{
  "to": ["8613800138000"],
  "body": {
    "type": "audio",
    "audio": { "link": "https://example.com/voice.mp3" }
  }
}

Document Message

{
  "to": ["8613800138000"],
  "body": {
    "type": "document",
    "document": {
      "link": "https://example.com/invoice.pdf",
      "caption": "Your invoice",
      "filename": "invoice_2024.pdf"
    }
  }
}

Sticker Message

{
  "to": ["8613800138000"],
  "body": {
    "type": "sticker",
    "sticker": { "link": "https://example.com/sticker.webp" }
  }
}

Template Message Components

Template messages use pre-approved WABA templates with variable substitution via components:

{
  "to": ["00447911123456"],
  "body": {
    "type": "template",
    "template": {
      "name": "order_update",
      "language": "en",
      "components": [
        {
          "type": "header",
          "parameters": [
            { "type": "image", "image": { "link": "https://example.com/product.jpg" } }
          ]
        },
        {
          "type": "body",
          "parameters": [
            { "type": "text", "text": "John" },
            { "type": "text", "text": "ORD-12345" },
            { "type": "currency", "currency": { "fallback_value": "$99.99", "code": "USD", "amount_1000": 99990 } }
          ]
        }
      ]
    }
  }
}

Parameter types: text, currency, date_time, image, video, document. Media types only appear in header components.

Response

Success:

{
  "message_id": "cbggf4if6o9ukqaalfug",
  "request_id": "my-request-123"
}
Field Type Description
message_id string Unique EngageLab message ID
request_id string Your custom request ID (if provided)

For error codes, read references/error-codes.md.

Template Management

WhatsApp message templates must be created and approved before use. Templates support HEADER, BODY, FOOTER, and BUTTONS components with variables.

For full request/response details including components object specs, read references/template-api.md.

Quick Summary

List allGET /v1/templates with optional query params: name, language_code, category, status

Get oneGET /v1/templates/:templateId

CreatePOST /v1/templates

{
  "name": "order_confirmation",
  "language": "en",
  "category": "UTILITY",
  "components": [
    { "type": "BODY", "text": "Hi {{1}}, your order {{2}} has shipped." ,
      "example": { "body_text": [["John", "ORD-123"]] } }
  ]
}

UpdatePUT /v1/templates/:templateId (same body as create)

DeleteDELETE /v1/templates/:templateName (deletes all languages for that name)

Template Categories

Category Description
AUTHENTICATION Verification codes / OTP
MARKETING Promotional content
UTILITY Service notifications

Template Status Values

Status Description
APPROVED Available for sending
PENDING Awaiting review
REJECTED Review rejected
DISABLED Banned
IN_APPEAL Under appeal
PAUSED Temporarily paused

Callbacks

Configure webhook URLs to receive message delivery status, user responses, and system notifications.

For full callback data structures and event types, read references/callback-api.md.

Message Status Events

Status Description
plan Scheduled for sending
target_valid Number verified as valid
target_invalid Number is invalid
sent Successfully sent to Meta
delivered Delivered to user's device
read User has read the message
sent_failed Failed to send
delivered_failed Sent but delivery failed
delivered_timeout No delivery confirmation within 5 minutes

User Response Events

Event Description
received User sent a direct message
reply User replied to your message
order User placed an order
deleted User deleted their message

Generating Code

When the user asks to send WhatsApp messages or manage templates, generate working code. Default to curl unless the user specifies a language. Supported patterns:

  • curl — Shell commands with proper auth header
  • Python — Using requests library (or the bundled whatsapp_client.py)
  • Node.js — Using fetch or axios
  • Java — Using HttpClient
  • Go — Using net/http

Always include the authentication header and proper error handling. Use placeholder values like YOUR_DEV_KEY and YOUR_DEV_SECRET if the user hasn't provided credentials.

Media Format Requirements

Type Formats Max Size
Image JPEG, PNG (no transparent background) 5 MB
Video MP4, 3GPP (H.264 video + AAC audio) 16 MB
Audio AAC, MP4, AMR, MPEG, OGG (opus codec) 16 MB
Document Any MIME type (PDF only for template headers) 100 MB
Sticker WebP Static: 100 KB, Animated: 500 KB
安全使用建议
This skill looks like a legitimate API client for EngageLab's WhatsApp service, but there are important inconsistencies you should consider before installing or supplying secrets: - The package does not declare any required environment variables or a primary credential, yet the client and documentation require dev_key/dev_secret (HTTP Basic). Expect the skill to prompt you for these credentials at runtime. Only provide them if you trust the publisher and the service. - The distributed bundle includes a Python client that imports the 'requests' library but the skill gives no install instructions or dependency list. Running it will likely require manually installing Python and requests; consider running in an isolated environment (container) and review the code first. - The callback documentation recommends accepting unauthenticated POSTs and explicitly says 'callback security mechanism is pending'. Exposing an unauthenticated webhook can allow spoofed events. If you use callbacks, put them behind your own verification (IP allowlist, HMAC auth, or a proxy that verifies payloads). - There is no homepage or known publisher listed. If you plan to use this in production, verify EngageLab's legitimacy and the publisher's identity (source repository, company site), and prefer using scoped API keys and least-privilege credentials. Actions you can take: review the included whatsapp_client.py file yourself (it appears readable and not obfuscated), run it in an isolated environment, confirm required dependencies, and avoid pasting real production credentials until you trust the source. If you need help assessing the code further, provide the full file and I can point out any problematic lines.
功能分析
Type: OpenClaw Skill Name: engagelab-whatsapp-business Version: 1.0.0 The skill bundle provides a legitimate integration for the EngageLab WhatsApp Business API, including a Python client (`whatsapp_client.py`) and detailed documentation for messaging, template management, and webhooks. The code is a standard API wrapper using the `requests` library, and the instructions in `SKILL.md` are clearly aligned with the stated purpose of facilitating WhatsApp communications without any signs of malicious intent, data exfiltration, or prompt injection.
能力评估
Purpose & Capability
Name, description, SKILL.md, and the included python client all align with a WhatsApp Business API integration: sending messages, template CRUD, and callback handling. This capability set is coherent with the stated purpose.
Instruction Scope
SKILL.md confines itself to API calls and webhook handling (no instructions to read unrelated local files). However it instructs the agent to ask the user for dev_key/dev_secret and to configure callbacks that the reference explicitly says 'must not require authentication (callback security mechanism is pending)'. That encourages deploying unauthenticated webhook endpoints, which is a security risk and outside best practice.
Install Mechanism
There is no install spec (instruction-only), but the bundle includes a Python file that imports the third-party 'requests' library. The skill does not declare this dependency or provide instructions to install it; running the provided code may fail or require installing packages manually. No network-download install steps are present.
Credentials
The SKILL.md and code require API credentials (dev_key and dev_secret) for Basic Auth, but the registry metadata lists no required environment variables or primary credential. The skill will ask the user for credentials at runtime instead of declaring them in metadata; this mismatch reduces transparency and is a red flag. No unrelated credentials are requested.
Persistence & Privilege
The skill is not always-enabled and does not request persistent system privileges or modify other skills. Autonomous invocation is allowed by default but is not combined with other high-risk flags here.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install engagelab-whatsapp-business
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /engagelab-whatsapp-business 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of EngageLab WhatsApp Business API skill. - Send WhatsApp messages (template, text, image, video, audio, document, sticker) using EngageLab REST API. - Manage WhatsApp Business Account (WABA) message templates: create, list, get, update, and delete. - Handle webhook callbacks for delivery status, user responses, and notifications. - Covers authentication process—asks for dev_key and dev_secret if not provided. - Suitable for WhatsApp notification, marketing, customer support, and app integrations via EngageLab.
元数据
Slug engagelab-whatsapp-business
版本 1.0.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

EngageLab WhatsApp Business 是什么?

Call EngageLab WhatsApp Business REST APIs to send WhatsApp messages (template, text, image, video, audio, document, sticker), manage WABA message templates,... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 298 次。

如何安装 EngageLab WhatsApp Business?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install engagelab-whatsapp-business」即可一键安装,无需额外配置。

EngageLab WhatsApp Business 是免费的吗?

是的,EngageLab WhatsApp Business 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

EngageLab WhatsApp Business 支持哪些平台?

EngageLab WhatsApp Business 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 EngageLab WhatsApp Business?

由 DevEngageLab(@devengagelab)开发并维护,当前版本 v1.0.0。

💬 留言讨论