Create a trigger
Choose a trigger type
Select one of the four channel types:
| Type | Delivers to |
|---|---|
webhook | Any HTTP endpoint via POST |
slack | Slack incoming webhook URL |
discord | Discord channel webhook URL |
email | One or more email addresses via SMTP or Resend |
Fill in channel details
- Name (required) — a label used to identify this trigger in alert configs
- Description (optional) — free-text note for your team
- Status — toggle between
ACTIVEandINACTIVEto enable/disable delivery without deleting the trigger
Name <[email protected]> in From.Customise the template (optional)
Every trigger ships with a default template. You can override the message body with your own Mustache template. See variable reference for the full list of available variables.For webhook: you can also add custom HTTP headers (key/value pairs). Default headers sent by Kener are
user-agent, accept: application/json, and content-type: application/json. Custom headers override defaults if the key matches.Trigger meta structure
Internally, each trigger stores its configuration in atrigger_meta JSON field. The shape depends on the type:
Referencing environment secrets
Trigger URLs and bodies support a{{ENV_VARIABLE_NAME}} syntax that resolves environment variables at send time. This keeps secrets out of the database:
{{ENV_...}} patterns and substitutes the value from process.env before sending.
Alert configs
An alert config defines when to notify — the trigger defines how. After creating triggers, create an alert config to wire them to a monitor.Creating an alert config
Select monitors
Choose one or more monitors this alert applies to. A single alert config can cover multiple monitors.
Set the alert type and value
| Alert type | Value | Example |
|---|---|---|
STATUS | DOWN or DEGRADED | Fire when monitor is DOWN |
LATENCY | Milliseconds (positive integer) | Fire when latency > 2000 ms |
UPTIME | Percentage 0–100 | Fire when uptime drops below 99% |
Set thresholds
- Failure threshold — how many consecutive failures before the alert fires (minimum 1)
- Success threshold — how many consecutive successes before the alert resolves (minimum 1)
Set severity and optional settings
- Severity —
WARNINGorCRITICAL - Create incident — set to
YESto automatically open a Kener incident when this alert fires - Description — optional free-text note included in the
alert_messagevariable
Attach triggers
Select one or more saved triggers from the list. Only
ACTIVE triggers appear. If no triggers exist yet, create them first.Alert config fields
| Field | Type | Values | Default |
|---|---|---|---|
alert_for | string | STATUS, LATENCY, UPTIME | — |
alert_value | string | DOWN, DEGRADED, or number | — |
failure_threshold | integer ≥ 1 | Any positive integer | — |
success_threshold | integer ≥ 1 | Any positive integer | — |
severity | string | WARNING, CRITICAL | WARNING |
create_incident | string | YES, NO | NO |
is_active | string | YES, NO | YES |
alert_description | string | Free text | null |
Alert lifecycle
TRIGGERED state, Kener does not send duplicate notifications for the same condition. A new notification fires only when the state changes (TRIGGERED → RESOLVED or a new TRIGGERED cycle begins after a prior RESOLVED).
Deleting a trigger
Deleting a trigger removes it from all alert configs that reference it. You must type the trigger’s name in the confirmation dialog to proceed. Consider setting the trigger status toINACTIVE instead if you want to pause delivery without breaking existing configs.