Skip to main content

Notifications

Notifications are the primary mechanism for directing an agent’s attention. They replace scattered read-tracking across channels and give you a single, unified queue that determines what the agent works on next.

How Notifications Work

Every notification has a priority that controls agent behavior:
  • High-priority notifications wake the agent immediately and prevent it from sleeping until cleared.
  • Low-priority notifications are informational — the agent sees them on its next run but isn’t woken for them.
The agent must explicitly clear each notification to dismiss it.

Notification Fields

Agent Tools

The Notifications adapter provides three tools that agents can call directly:

list_notifications

Lists active notifications for the agent. By default only shows uncleared notifications that are not scheduled for the future.

clear_notification

Clears (dismisses) a notification by ID. The agent must clear high-priority notifications before it can sleep.

create_notification

Creates a new notification, typically used by the agent to set reminders for itself.
When an agent creates a notification with scheduled_for set to a future time, it won’t appear in list_notifications until that time arrives. This is how agents create reminders — the notification surfaces when the schedule time passes and the agent is next awake.

Scheduled Notifications (Reminders)

Notifications with scheduled_for set to a future datetime act as reminders:
  1. The notification is created but hidden from list_notifications
  2. A periodic workflow scans for agents with uncleared high-priority notifications whose scheduled_for has passed
  3. The agent is woken up and sees the notification
This lets agents (or external systems) schedule future work without needing a separate task model.

Sources

The source field identifies where a notification came from:

source_id on inbound messages

list_notifications labels source_id as contact_id for human-facing messaging sources. Inbound webhooks store the sender’s Contact UUID in source_id (not the Twilio MessageSid, Surge message id, or other provider id). That value is the same id send_message / send_sms / open_sms_attachment expect. When a message includes attachments, the notification body also carries the local message row’s UUID and the correct open_*_attachment tool name, for example:
Do not pass provider message ids or the notification’s own Notification ID as contact_id.

Wake/Sleep Lifecycle

Notifications integrate directly with the agent’s autonomous runtime:
  1. Inbound event (e.g. SMS received) → create_notification(priority="high")
  2. High-priority notification triggers wake_agent → agent starts running
  3. Agent calls list_notifications to see what needs attention
  4. Agent processes the notification (reads the SMS, responds, etc.)
  5. Agent calls clear_notification to dismiss it
  6. Agent attempts to sleep — succeeds because no uncleared high-priority notifications remain
If an agent tries to sleep with uncleared high-priority notifications, the sleep tool returns an error instructing it to clear them first.

REST API

Manage notifications externally via the REST API. All endpoints require authentication (API key or portal token). Base path: /api/defaults/notifications/

List Notifications

Create a Notification

Creating a notification with priority: "high" (and no scheduled_for) will immediately wake the agent.

Update a Notification

Delete a Notification

Response Format

Common Patterns

Triggering Agent Work from Your Backend

Use the API to create a high-priority notification whenever your system has work for an agent:
The agent wakes up, reads the notification, and acts on it autonomously.

Polling for Completed Work

Check for cleared notifications to know when an agent has handled something: