Output Modules
The Core Webhook Module supports 17 different output modules for processing and forwarding webhook payloads. Each module can be configured independently and supports various connection types.
Available Modules
- Log Module - Output to stdout
- Save to Disk - Save webhooks to local filesystem
- RabbitMQ - Publish to RabbitMQ queues
- Redis RQ - Queue jobs in Redis Queue
- Redis Publish - Publish to Redis pub/sub channels
- HTTP Webhook - Forward to HTTP endpoints
- Kafka - Publish to Kafka topics
- MQTT - Publish to MQTT brokers
- WebSocket - Forward to WebSocket connections
- ClickHouse - Store in ClickHouse database
- PostgreSQL - Store in PostgreSQL database
- MySQL/MariaDB - Store in MySQL/MariaDB database
- S3 - Store in AWS S3
- AWS SQS - Send to AWS SQS queues
- GCP Pub/Sub - Publish to Google Cloud Pub/Sub
- ActiveMQ - Publish to ActiveMQ
- ZeroMQ - Publish to ZeroMQ sockets
Module Configuration
All modules follow a similar configuration pattern:
{
"webhook_id": {
"data_type": "json",
"module": "module_name",
"connection": "connection_name",
"module-config": {
// Module-specific configuration
}
}
}
Connection Management
Modules use connections defined in connections.json:
{
"connection_name": {
"type": "module_type",
"host": "localhost",
"port": 5672,
// Connection-specific settings
}
}
Using Modules in Chains
All modules can be used in webhook chains to send payloads to multiple destinations:
{
"chained_webhook": {
"data_type": "json",
"chain": [
"log",
{
"module": "s3",
"connection": "s3_storage",
"module-config": {
"bucket": "webhooks"
}
},
{
"module": "redis_rq",
"connection": "redis_local",
"module-config": {
"queue_name": "events"
}
}
],
"chain-config": {
"execution": "sequential"
},
"authorization": "Bearer secret"
}
}
See the Webhook Chaining documentation for more details.