From 11d59ad3625bb8a8ef36dad425b46f2fc2f1a353 Mon Sep 17 00:00:00 2001 From: Teknium Date: Fri, 10 Apr 2026 03:08:42 -0700 Subject: [PATCH] fix: add all platforms to webhook cross-platform delivery The delivery tuple in webhook.py only had 5 of 14 platforms with gateway adapters. Adds whatsapp, matrix, mattermost, homeassistant, email, dingtalk, feishu, wecom, and bluebubbles so webhooks can deliver to any connected platform. Updates docs delivery options table to list all platforms. Follow-up to cherry-picked fix from olafthiele (PR #7035). --- gateway/platforms/webhook.py | 10 +++++++++- website/docs/user-guide/messaging/webhooks.md | 13 +++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/gateway/platforms/webhook.py b/gateway/platforms/webhook.py index aaed64b8f0d..48bbf7a4108 100644 --- a/gateway/platforms/webhook.py +++ b/gateway/platforms/webhook.py @@ -186,14 +186,22 @@ class WebhookAdapter(BasePlatformAdapter): if deliver_type == "github_comment": return await self._deliver_github_comment(content, delivery) - # Cross-platform delivery (telegram, discord, etc.) + # Cross-platform delivery — any platform with a gateway adapter if self.gateway_runner and deliver_type in ( "telegram", "discord", "slack", "signal", "sms", + "whatsapp", + "matrix", "mattermost", + "homeassistant", + "email", + "dingtalk", + "feishu", + "wecom", + "bluebubbles", ): return await self._deliver_cross_platform( deliver_type, content, delivery diff --git a/website/docs/user-guide/messaging/webhooks.md b/website/docs/user-guide/messaging/webhooks.md index 700fea198a5..e70204a3c7e 100644 --- a/website/docs/user-guide/messaging/webhooks.md +++ b/website/docs/user-guide/messaging/webhooks.md @@ -70,7 +70,7 @@ Routes define how different webhook sources are handled. Each route is a named e | `secret` | **Yes** | HMAC secret for signature validation. Falls back to the global `secret` if not set on the route. Set to `"INSECURE_NO_AUTH"` for testing only (skips validation). | | `prompt` | No | Template string with dot-notation payload access (e.g. `{pull_request.title}`). If omitted, the full JSON payload is dumped into the prompt. | | `skills` | No | List of skill names to load for the agent run. | -| `deliver` | No | Where to send the response: `github_comment`, `telegram`, `discord`, `slack`, `signal`, `matrix`, `mattermost`, `email`, `sms`, `dingtalk`, `feishu`, `wecom`, or `log` (default). | +| `deliver` | No | Where to send the response: `github_comment`, `telegram`, `discord`, `slack`, `signal`, `sms`, `whatsapp`, `matrix`, `mattermost`, `homeassistant`, `email`, `dingtalk`, `feishu`, `wecom`, `bluebubbles`, or `log` (default). | | `deliver_extra` | No | Additional delivery config — keys depend on `deliver` type (e.g. `repo`, `pr_number`, `chat_id`). Values support the same `{dot.notation}` templates as `prompt`. | ### Full example @@ -225,8 +225,17 @@ The `deliver` field controls where the agent's response goes after processing th | `slack` | Routes the response to Slack. Uses the home channel, or specify `chat_id` in `deliver_extra`. | | `signal` | Routes the response to Signal. Uses the home channel, or specify `chat_id` in `deliver_extra`. | | `sms` | Routes the response to SMS via Twilio. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `whatsapp` | Routes the response to WhatsApp. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `matrix` | Routes the response to Matrix. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `mattermost` | Routes the response to Mattermost. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `homeassistant` | Routes the response to Home Assistant. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `email` | Routes the response to Email. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `dingtalk` | Routes the response to DingTalk. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `feishu` | Routes the response to Feishu/Lark. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `wecom` | Routes the response to WeCom. Uses the home channel, or specify `chat_id` in `deliver_extra`. | +| `bluebubbles` | Routes the response to BlueBubbles (iMessage). Uses the home channel, or specify `chat_id` in `deliver_extra`. | -For cross-platform delivery (telegram, discord, slack, signal, sms), the target platform must also be enabled and connected in the gateway. If no `chat_id` is provided in `deliver_extra`, the response is sent to that platform's configured home channel. +For cross-platform delivery, the target platform must also be enabled and connected in the gateway. If no `chat_id` is provided in `deliver_extra`, the response is sent to that platform's configured home channel. ---