Skip to main content
Runtime can push notifications to external systems when certain events happen in a session. This guide covers the outbound webhook system - what events are available, the payload format, and how to use webhooks to connect Runtime to your own tools and workflows.

When to use this

  • You want to get notified when an agent finishes a prompt instead of polling
  • You are wiring Runtime into a Slack bot, Discord channel, or internal dashboard
  • You want to trigger downstream actions (deploy, PR review, notification) when agents complete work

Current webhook events

Runtime currently emits two outbound webhook events:
The webhook surface is intentionally minimal today. Additional events (session lifecycle, deploy status, error conditions) will be added based on demand. The payload format is stable.

Webhook payload

Webhooks are delivered as POST requests with a JSON body:

Configuring webhooks

Webhook URLs are configured per user or per organization in the dashboard preferences. Once set, Runtime sends a POST to the URL for every qualifying event. Delivery characteristics:
  • Timeout: 5 seconds per delivery attempt
  • Retries: No automatic retries (fire-and-forget)
  • Success: Any 2xx response is treated as successful delivery
  • Failure: Non-2xx responses and timeouts are logged but not retried
Because there are no retries, your webhook receiver should be highly available. If you need guaranteed delivery, consider polling the Activity API as a fallback.

Consuming webhooks

Minimal receiver

A simple webhook receiver that logs events and responds with 200:

Posting to Slack

Forward prompt completion notifications to a Slack channel:
Python

Inbound triggers are a different thing

Outbound webhooks tell an external system that a run finished. Inbound triggers start runs: Slack, Linear, GitHub, Email, WhatsApp, SMS, a cron schedule, or the API. There is no generic inbound webhook trigger. See Triggers.

Polling as an alternative

If you cannot run a webhook receiver, poll the session or activity endpoints instead:
  • Session status: GET /api/sessions/{id} - check last_prompt.status for completed, error, or timed_out
  • Recent prompts: GET /sessions/telemetry/recent-prompts - see the latest prompts across all sessions
  • Activity: GET /sessions/telemetry/activity - daily aggregate counts
See Pull activity and telemetry for patterns.

Next steps

Pull activity and telemetry

Polling-based patterns for usage data and cost monitoring.

Manage sessions at scale

Session lifecycle, heartbeats, and error recovery.

Linear integration

Trigger agents from Linear issues automatically.

Slack integration

Trigger agents from Slack messages.