This page covers three Web UI screens that handle outbound automation and admin
alerts: Notifications, Webhooks and Schedules.
Notifications
The “Notifications” screen has three parts:
Inbox — an event feed with filters by category, severity (info / warning /
critical) and “unread only”. Clicking an item marks it read and deep-links to
its tab; there is “Mark all read”.
Delivery matrix — rows: event categories (groups with expandable events),
columns: channels (Web UI, e-mail, Telegram, push). Each cell is a checkbox; you
can set a rule per group or per event. “Important” groups are always on for the
Web UI. Inactive channels are disabled with a setup hint.
Telegram linking — a list of linked chats (label, blocked badge, “Unlink”)
and a “Link” button via deep link. The e-mail channel needs address
verification.
Webhooks
The “Webhooks” screen is outbound HTTP notifications. “+ Create”: a URL and
event checkboxes (multi-select; an empty selection is rejected,
turn.completed is pre-checked). Rows show the URL and subscribed events, with
search and sorting. The event kind is sent in the X-AIHummer-Event header.
The “Schedules” screen is the task scheduler: a table (task, agent, channel,
cron, next run, status) with pause/resume, edit and delete. “+ Create”:
Kind: repeating (a cron expression, e.g. 0 9 * * *), once (a
date/time) or reminder.
Target agent and prompt (what exactly is sent), target channel
(where the reply goes). Advanced: a raw JSON payload override.
This is how you build scheduled actions: “every weekday at 9:00 agent X posts the
result of prompt Z into channel Y”.
Advanced run parameters
Besides repeating, once and reminder, the admin API
(/v1/admin/schedules) accepts the interval kind — a run every
interval_ms milliseconds from the anchor_at reference point. In the
“Advanced (raw JSON payload)” field, next to the ordinary prompt, you can
add a runtime block ("version": 1, session_mode and
"wake_mode": "now" are required) that sets the execution terms:
session_mode — isolated (every run in a new conversation) or
existing with conversation_id (continue the given conversation);
timeout_seconds — the deadline of one run (48 hours by default; 0
disables the timer);
thinking — reasoning effort (off … xhigh), light_context — a
lighter context, tools_allow — exact names of the allowed tools;
failure_alert — an alert to a channel (channel, target_ref.chat_id)
after after consecutive failed runs, with a cooldown_ms pause;
delete_after_run — delete the definition after the run (the run log is
kept); best_effort — do not treat an unconfirmed delivery as a failure.
Such a run requires a target agent and a prompt. Schedules imported from
another system are created paused and enabled separately by the owner; while
they have unresolved dependencies they cannot be enabled.
This page covers three Web UI screens that handle outbound automation and admin
alerts: **Notifications**, **Webhooks** and **Schedules**.
## Notifications
The **"Notifications"** screen has three parts:
- **Inbox** — an event feed with filters by category, severity (info / warning /
critical) and "unread only". Clicking an item marks it read and deep-links to
its tab; there is "Mark all read".
- **Delivery matrix** — rows: event categories (groups with expandable events),
columns: channels (Web UI, e-mail, Telegram, push). Each cell is a checkbox; you
can set a rule per group or per event. "Important" groups are always on for the
Web UI. Inactive channels are disabled with a setup hint.
- **Telegram linking** — a list of linked chats (label, blocked badge, "Unlink")
and a **"Link"** button via deep link. The e-mail channel needs address
verification.
## Webhooks
The **"Webhooks"** screen is outbound HTTP notifications. "+ Create": a URL and
**event checkboxes** (multi-select; an empty selection is rejected,
`turn.completed` is pre-checked). Rows show the URL and subscribed events, with
search and sorting. The event kind is sent in the `X-AIHummer-Event` header.
**20 event kinds** are available:
| Group | Events |
|---|---|
| Turns & messages | `turn.completed`, `turn.failed`, `message.created`, `conversation.created` |
| Agents | `agent.created`, `agent.updated`, `agent.deleted` |
| Plugins & channels | `plugin.installed`, `plugin.removed`, `channel.added`, `channel.removed` |
| Workspaces | `workspace.created` |
| Schedules | `schedule.created`, `schedule.updated`, `schedule.deleted`, `schedule.fired` |
| Approvals | `approval.requested`, `approval.resolved` |
| Memory | `memory.stored`, `memory.captured` |
## Schedules
The **"Schedules"** screen is the task scheduler: a table (task, agent, channel,
cron, next run, status) with pause/resume, edit and delete. "+ Create":
- **Kind**: `repeating` (a cron expression, e.g. `0 9 * * *`), `once` (a
date/time) or `reminder`.
- **Target agent** and **prompt** (what exactly is sent), **target channel**
(where the reply goes). Advanced: a raw JSON payload override.
This is how you build scheduled actions: "every weekday at 9:00 agent X posts the
result of prompt Z into channel Y".
### Advanced run parameters
Besides `repeating`, `once` and `reminder`, the admin API
(`/v1/admin/schedules`) accepts the **`interval`** kind — a run every
`interval_ms` milliseconds from the `anchor_at` reference point. In the
**“Advanced (raw JSON payload)”** field, next to the ordinary `prompt`, you can
add a `runtime` block (`"version": 1`, `session_mode` and
`"wake_mode": "now"` are required) that sets the execution terms:
- `session_mode` — `isolated` (every run in a new conversation) or
`existing` with `conversation_id` (continue the given conversation);
- `timeout_seconds` — the deadline of one run (48 hours by default; `0`
disables the timer);
- `thinking` — reasoning effort (`off` … `xhigh`), `light_context` — a
lighter context, `tools_allow` — exact names of the allowed tools;
- `failure_alert` — an alert to a channel (`channel`, `target_ref.chat_id`)
after `after` consecutive failed runs, with a `cooldown_ms` pause;
- `delete_after_run` — delete the definition after the run (the run log is
kept); `best_effort` — do not treat an unconfirmed delivery as a failure.
Such a run requires a target agent and a prompt. Schedules imported from
another system are created paused and enabled separately by the owner; while
they have unresolved dependencies they cannot be enabled.
## Next
- [Channels](/en/v1.0/webui/channels) — where messages and alerts go.
- [Inbound triggers](/en/v1.0/api/inbound-triggers) — webhooks in the API context.
- [Observability](/en/v1.0/operations/observability) — which events matter.