diff --git a/src/data/nav/chat.ts b/src/data/nav/chat.ts
index ad8ca06013..07d78579ac 100644
--- a/src/data/nav/chat.ts
+++ b/src/data/nav/chat.ts
@@ -185,6 +185,10 @@ export default {
name: 'AWS Lambda',
link: '/docs/chat/moderation/custom/lambda',
},
+ {
+ name: 'Webhook',
+ link: '/docs/chat/moderation/custom/webhook',
+ },
],
},
],
diff --git a/src/pages/docs/chat/moderation/custom/lambda.mdx b/src/pages/docs/chat/moderation/custom/lambda.mdx
index 1af9f157a2..80800d7e55 100644
--- a/src/pages/docs/chat/moderation/custom/lambda.mdx
+++ b/src/pages/docs/chat/moderation/custom/lambda.mdx
@@ -3,9 +3,9 @@ title: AWS Lambda
meta_description: "Detect and remove unwanted content in a Chat Room using AWS Lambda."
---
-The AWS Lambda rule is a powerful way to custom moderation solution to Ably Chat. It enables you to run custom moderation logic or integrate with your preferred moderation provider by configuring an AWS Lambda function that will be invoked before messages are published to a chat room.
+The AWS Lambda integration is a powerful way to add a custom moderation solution to Ably Chat. It enables you to run custom moderation logic or integrate with your preferred moderation provider by configuring an AWS Lambda function that will be invoked before messages are published to a chat room.
-This rule is particularly useful when you want to:
+This integration is particularly useful when you want to:
* Integrate with a custom moderation service
* Implement your own moderation logic
@@ -13,7 +13,7 @@ This rule is particularly useful when you want to:
## Integration setup
-Configure the integration rule in your [Ably dashboard](https://ably.com/accounts/any/apps/any/integrations) or using the [Control API](/docs/platform/account/control-api).
+Configure the integration in your [Ably dashboard](https://ably.com/accounts/any/apps/any/integrations) or using the [Control API](/docs/platform/account/control-api).
The following fields are specific to the Lambda transport. You can also configure the [general fields](/docs/chat/moderation/custom#configuration).
diff --git a/src/pages/docs/chat/moderation/custom/webhook.mdx b/src/pages/docs/chat/moderation/custom/webhook.mdx
new file mode 100644
index 0000000000..bbeff2995b
--- /dev/null
+++ b/src/pages/docs/chat/moderation/custom/webhook.mdx
@@ -0,0 +1,40 @@
+---
+title: Webhook
+meta_description: "Detect and remove unwanted content in a Chat Room using a custom webhook endpoint."
+---
+
+The webhook integration enables you to implement custom moderation by configuring an HTTP endpoint that Ably will invoke before messages are published to a chat room.
+
+This integration is useful when you want to:
+
+* Integrate with a custom moderation service hosted on your own infrastructure
+* Implement your own moderation logic using any web server or serverless platform
+* Use a moderation provider that isn't directly supported by Ably
+
+## Integration setup
+
+Configure the integration in your [Ably dashboard](https://ably.com/accounts/any/apps/any/integrations) or using the [Control API](/docs/platform/account/control-api).
+
+The following fields are specific to the webhook transport. You can also configure the [general fields](/docs/chat/moderation/custom#configuration).
+
+| Field | Description |
+| ----- | ----------- |
+| URL | The endpoint URL that Ably will send moderation requests to. |
+| Headers | Optional HTTP headers to include with requests. Use this to provide authorization credentials or other required headers. |
+
+## Request and response
+
+The webhook transport uses the standard [request](/docs/chat/moderation/custom#request) and [response](/docs/chat/moderation/custom#response) formats for custom moderation.
+
+The HTTP status code is returned directly from your endpoint's response.
+
+## Best practice
+
+When implementing your webhook endpoint, consider the following:
+
+* Keep your endpoint response time as low as possible to minimize latency
+* Implement proper error handling and logging
+* Consider implementing rate limiting if you're using a third-party moderation service
+* Use HTTPS to encrypt data in transit
+* Authenticate requests using the headers field to prevent unauthorized access to your endpoint
+* Consider implementing caching for frequently occurring content