实时事件传递
当 LemonX 工作流程创建、更新、完成、失败或需要审核时接收通知。
LemonX Webhook 允许开发人员将实时事件从 WordPress 发送到外部系统。创建内容、AEO 分析完成、翻译排队、应用 MCP 预览、提交索引请求、生成报告或许可证状态更改时,LemonX 可以通知您自己的应用程序、仪表板和自动化工具。
在 LemonX、WordPress、CRM、客户门户、机构仪表板、分析系统、Make、n8n、Zapier 式自动化、Slack 警报和内部平台之间构建事件驱动的工作流程。
事件驱动 · 签名有效负载 · 重试感知 · 专为 WordPress AI 自动化而构建
LemonX Webhook 是从 LemonX 支持的 WordPress 站点发送到外部 URL 的出站事件通知。 They allow other systems to react when important LemonX actions occur.
您的系统无需不断轮询 REST API 来检查是否发生更改,而是可以在更改实际发生时接收事件。
当 LemonX 工作流程创建、更新、完成、失败或需要审核时接收通知。
Webhooks 可以涵盖 AEO、Code、Verto、MCP、Pro、云网关、报告、任务和内容工作流程。
将 LemonX 连接到 CRM、客户仪表板、分析系统、Slack、Make、n8n、内部工具或自定义应用程序。
在系统信任 Webhook 有效负载之前,应对其进行签名、时间戳和验证。
AI 支持的网站会生成许多事件:新草稿、内容预览、SEO 分析、翻译任务、索引请求、MCP 操作、报告生成、使用更改和许可证更新。如果没有 webhook,外部系统必须反复询问 WordPress 是否有任何更改。
Webhook 逆转了这一流程。 LemonX 会在重要事件发生时告诉您的系统。
每当内容、SEO、翻译、报告或 MCP 活动发生变化时,将事件从客户端 WordPress 站点发送到中央机构仪表板。
结果:您的代理仪表板保持更新,无需不断轮询每个客户网站。
当重要工作流程完成、失败或需要关注时通知您的团队。
结果:当 AI、翻译、索引或报告工作流程需要审核时,团队可以更快地采取行动。
当 AI 创建草稿、提出更新或生成预览时触发外部审批系统。
结果:编辑、客户或经理可以在应用之前查看 AI 生成的更改。
当翻译排队、完成、失败或准备好供人工审阅时发送事件。
结果:全球内容团队可以协调跨语言和跨地区的多语言发布。
将 MCP 工具调用、应用的预览和 AI 驱动的更改发送到外部审计或安全系统。
结果:开发人员和安全团队可以跟踪 AI 代理在 WordPress 内所做的事情。
当 AEO 分析完成、提交索引请求或生成搜索报告时通知外部系统。
结果:SEO 团队可以将 LemonX 活动与报告、项目管理和活动跟踪工具连接起来。
将许可证、权利、配额和使用事件发送到帐户仪表板或计费相关系统。
结果:团队可以跨站点监控帐户访问、计划限制和高级功能可用性。
LemonX Webhooks 应遵循与 LemonX 生态系统相同的产品结构。每个产品都可以发出与其自身工作流程相关的事件,而共享系统事件则处理任务、报告、许可证、使用情况和安全性。
当 WordPress 内容通过 LemonX 工作流程发生更改时,内容事件会通知外部系统。
当搜索优化工作流程产生新结果、建议或操作时,AEO 事件会通知外部系统。
当创建或更新 AI 生成的内容、页面结构、模板或迁移任务时,Code 事件会通知外部系统。
当内容进入翻译、翻译完成、需要审阅或生成多语言 SEO 字段时,Verto 事件会通知外部系统。
当 AI 客户端连接、调用工具、创建预览、应用更改或遇到错误时,MCP 事件会通知外部系统。
当帐户级别、许可证级别或云连接状态发生变化时,Pro 和云网关事件会通知外部系统。
当 LemonX 生成、更新或导出报告时,报告事件会通知外部系统。
任务事件帮助开发人员跟踪可能需要时间的工作流程,例如翻译、AI 生成、OCR、索引、报告、迁移和云同步。
当身份验证、权限、API 密钥、Webhook 或 MCP 访问更改时,安全事件会通知外部系统。
Webhook 有效负载应该是可预测的、结构化的并且易于外部系统解析。每个事件应包括事件类型、传递 ID、时间戳、站点标识、资源数据和特定于事件的详细信息。
{
"event": "MCP.preview_applied",
"delivery_id": "lx_delivery_123456",
"created_at": "2026-07-04T10:00:00Z",
"site": {
"id": "site_abc123",
"url": "https://example.com",
"name": "Example WordPress Site"
},
"actor": {
"type": "user",
"id": 12,
"role": "administrator"
},
"source": {
"product": "MCP",
"client": "claude_desktop",
"tool": "preview_apply"
},
"resource": {
"type": "page",
"id": 245,
"url": "https://example.com/services",
"title": "Services"
},
"data": {
"preview_id": "lx_preview_789",
"action": "content_update",
"status": "applied"
}
}X-LemonX-Event: MCP.preview_applied X-LemonX-Delivery: lx_delivery_123456 X-LemonX-Timestamp: 1783178400 X-LemonX-Signature: sha256=... X-LemonX-Site: site_abc123 X-LemonX-Version: 1 User-Agent: LemonX-Webhooks/1.0
事件类型,例如 content.updated 或 verto.translation_completed。
本次投递尝试的唯一 ID。使用它进行重复数据删除和调试。
发送 Webhook 的时间。用它来防止重放攻击。
使用 webhook 密钥生成的签名。在信任有效负载之前验证它。
与事件关联的站点标识。
Webhook 负载版本。
Webhook 端点是一个公共 URL,它从 LemonX 接收数据。由于 public URLs 可以接收来自任何人的请求,因此您的系统应在处理每个交付之前对其进行验证。
Webhook 端点应使用 HTTPS。不要将敏感事件数据发送到普通 HTTP 端点。
每个 Webhook 应包含使用共享密钥生成的签名。您的系统应该重新创建签名并安全地进行比较。
拒绝具有旧时间戳的 Webhook 传送,以降低重放攻击风险。
存储已处理的交付 ID,以便重复尝试不会触发重复操作。
仅处理系统期望的事件类型。
不要假设每个有效负载都是有效的。处理前检查必填字段。
对 Webhook 端点进行速率限制、拒绝无效签名并记录可疑请求。
确切的实现可能有所不同,但一般模式是相同的:结合时间戳和原始有效负载,使用共享密钥生成 HMAC 签名,然后将其与签名标头进行比较。
signed_payload = timestamp + "." + raw_body expected_signature = HMAC_SHA256(webhook_secret, signed_payload) compare expected_signature with X-LemonX-Signature
function verify_lemonx_webhook( $raw_body, $timestamp, $signature_header, $secret ) {
if ( empty( $raw_body ) || empty( $timestamp ) || empty( $signature_header ) || empty( $secret ) ) {
return false;
}
$tolerance = 300;
if ( abs( time() - (int) $timestamp ) > $tolerance ) {
return false;
}
$signed_payload = $timestamp . '.' . $raw_body;
$expected = 'sha256=' . hash_hmac( 'sha256', $signed_payload, $secret );
return hash_equals( $expected, $signature_header );
}LemonX 工作流程会生成一个事件,例如翻译完成、应用 MCP 预览或生成报告。
LemonX 检查哪些 Webhook 端点订阅了该事件类型。
LemonX 构建带有事件详细信息的结构化 JSON 有效负载。
LemonX 使用 webhook 密钥对有效负载进行签名。
LemonX 向配置的端点发送 HTTP POST 请求。
您的系统检查签名、时间戳、事件类型和有效负载结构。
如果事件被接受,您的端点将返回 2xx 响应。
如果投递失败,LemonX可以根据重试规则重试。
LemonX 存储交付状态以进行调试和可见性。
Webhook 端点可能因多种原因而失败:网络问题、停机、速率限制、部署窗口或临时错误。 LemonX 应支持失败交付的重试行为。
LemonX 应该提供一种创建、测试、禁用、删除和检查 webhooks 的方法。这可以通过 WordPress 管理 UI、REST API 或云网关获得,具体取决于产品配置。
开发人员可以使用 REST API 端点来注册和管理 Webhook。这些端点名称是示例,应与最终的 LemonX 实现相匹配。
GET /wp-json/lemonx/v1/webhooks
POST /wp-json/lemonx/v1/webhooks
GET /wp-json/lemonx/v1/webhooks/{id}
PATCH /wp-json/lemonx/v1/webhooks/{id}
DELETE /wp-json/lemonx/v1/webhooks/{id}
POST /wp-json/lemonx/v1/webhooks/{id}/test
POST /wp-json/lemonx/v1/webhooks/{id}/rotate-secret
GET /wp-json/lemonx/v1/webhooks/{id}/deliveries
POST /wp-json/lemonx/v1/webhooks/deliveries/{delivery_id}/resend{
"name": "Agency Dashboard",
"url": "https://agency.example.com/lemonx/webhook",
"events": [
"content.updated",
"aeo.analysis_completed",
"verto.translation_completed",
"MCP.preview_applied",
"report.generated"
],
"status": "active"
}{
"success": true,
"data": {
"id": "wh_123",
"name": "Agency Dashboard",
"url": "https://agency.example.com/lemonx/webhook",
"status": "active",
"events": [
"content.updated",
"aeo.analysis_completed",
"verto.translation_completed",
"MCP.preview_applied",
"report.generated"
],
"secret_preview": "whsec_****abcd"
}
}繁忙的 WordPress 站点可以举办许多活动。开发人员应避免将所有可能的事件发送到每个端点。相反,创建集中的 Webhook 订阅。
content.updatedaeo.analysis_completedverto.translation_completedreport.generatedlicense.status_changedMCP.tool_calledMCP.preview_appliedsecurity.api_key_createdsecurity.permission_changedsecurity.webhook_failedverto.translation_queuedverto.translation_completedverto.translation_failedverto.translation_review_requiredreport.generatedreport.exportedreport.failedtask.failedusage.recordedusage.quota_warningusage.quota_exceededlicense.expiredentitlement.updated在开发过程中使用暂存端点或 Webhook 检查工具。
使用 LemonX webhook 测试操作发送示例负载。
确保您的接收者正确验证时间戳和签名。
返回临时 500 响应并确认重试行为。
发送相同的送货 ID 两次,并确认您的系统不会处理两次。
确认您的端点仅接收其订阅的事件。
使用单独的 Webhook 密钥进行暂存和生产。
Webhook 使将 LemonX 工作流程与自动化平台连接起来成为可能。当 LemonX 事件发生时,自动化平台可以接收有效负载并触发下一步。
不处理未签名或无效的 Webhook 请求。
可以重试 Webhook 传送。使用交付 ID 来防止重复处理。
尽快回复。对于缓慢的工作,请在您自己的系统中对作业进行排队。
仅订阅您的端点需要的事件。
记录交付 ID、事件类型、时间戳和处理状态。
针对不同的环境使用不同的端点和秘密。
当团队成员发生变化或秘密可能泄露时,轮换 Webhook 秘密。
当 LemonX 添加新事件类型时,您的系统不应崩溃。
验证签名、时间戳、事件类型和必填字段。
Webhook 有效负载应包含足够的信息来做出反应。如果您的系统需要完整的详细信息,请使用 REST API 获取最新的资源状态。
您的系统向 LemonX 请求数据或触发操作。
LemonX 会在发生某些情况时通知您的系统。
摘要:REST API 是基于请求的。 Webhook 是基于事件的。最重要的集成应该同时使用两者。
当 AI 代理通过 LemonX MCP 操作 WordPress 时,Webhooks 可以使这些操作对外部系统可见。
为什么它很重要:AI 操作不应消失在后台。 Webhooks 使 MCP 工作流程可观察、可审核并且更容易与人类团队协调。
product.resource_action
content.draft_created content.updated aeo.analysis_completed verto.translation_completed MCP.preview_applied report.generated license.status_changed usage.quota_warning security.api_key_revoked
| 状态 | 含义 | 建议采取的行动 |
|---|---|---|
| 待定 | 尚未尝试交付 | 等等 |
| 已交付 | 端点返回2xx | 无需采取任何行动 |
| 重试 | 发送失败,将重试 | 检查端点日志 |
| 失败了 | 多次尝试后交付失败 | 手动重新发送或修复端点 |
| 残疾人 | Webhook 端点已禁用 | 检查配置 |
| 签名失败 | 收件人拒绝签名 | 检查秘密 |
| 超时 | 端点未及时响应 | 更快地响应或排队工作 |
| 无效的网址 | 端点 URL 无效 | 修复 URL |
| 速率限制 | 端点拒绝了太多请求 | 减少活动量 |
Webhook 有效负载应包含足够的数据来识别和处理事件,但应避免发送不必要的敏感信息。
使用 Webhook 将 WordPress AI 操作、SEO 工作流程、翻译进度、MCP 活动、报告和云事件与您自己的工具和自动化系统连接起来。
LemonX Webhooks 将 AI、SEO、翻译、MCP 和云工作流程转换为外部系统可以理解并采取行动的事件。