This chapter covers the core features and capabilities of Webhook Trigger.
{{key}} templates substituted with event dataX-Webhook-Signature header--test renders and signs payloads without sending, safe to run offlineFollow this guide to get Webhook Trigger up and running in your environment.
# List all registered triggers in your config
python src/webhook_trigger.py --config examples/webhook_trigger_config.json --list
# Dry-run: render + sign payloads without sending (offline safe)
python src/webhook_trigger.py --config examples/webhook_trigger_config.json \
--emit order.created --data '{"id": 42, "amount": "99.95", "currency": "USD", "sku": "WIDGET-7", "quantity": "3"}' --test
# Live delivery
python src/webhook_trigger.py --config examples/webhook_trigger_config.json \
--emit order.created --data '{"id": 42, "amount": "99.95", "currency": "USD", "sku": "WIDGET-7", "quantity": "3"}'
# Verbose debug output
python src/webhook_trigger.py --config examples/webhook_trigger_config.json \
--emit user.signup --data '{"id": 7, "email": "user@example.com", "plan": "pro"}' --test --log-level DEBUGCreate a JSON config file to define your triggers:
{
"secret": "whsec_your_signing_secret",
"max_retries": 3,
"retry_base_delay": 1.0,
"rate_limit_per_second": 10,
"dead_letter_log": "dead_letters.json",
"triggers": {
"order.created": {
"endpoints": [
{
"url": "https://api.example.com/webhooks/orders",
"headers": {"X-Source": "automation-hub"},
"template": {
"event": "{{event}}",
"order_id": "{{id}}",
"total": "{{amount}}"
},
"rate_limit_per_second": 5
}
]
}
}
}| Flag | Default | Description |
|---|---|---|
--config, -c | *(required)* | Path to the trigger config file (JSON) |
--emit, -e | — | Event name to emit (e.g. order.created) |
--data, -d | {} | JSON payload data for the event |
--test, --dry-run | off | Render and sign but do not send |
--list, -l | off | List all registered triggers and exit |
--log-level | INFO | DEBUG, INFO, WARNING, or ERROR |
Templates use {{key}} placeholders that are replaced with values from the --data JSON. The special placeholder {{event}} resolves to the event name.
{
"template": {
"event": "{{event}}",
"order_id": "{{id}}",
"total": "{{amount}}"
}
}When no template is configured for an endpoint, a default payload is used:
{
"event": "order.created",
"data": {"id": 42, "amount": "99.95"}
}Get the full Webhook Trigger and unlock everything.
Get the complete guide with every chapter unlocked, including code samples, diagrams, and best practices.
Access all interactive tools with complete data, all workload profiles, and the full scenario library.
Downloadable source code, configuration files, and working examples from every chapter.
Free updates for life. Every new chapter, tool, and improvement included.