session.requires_action

⚠️
Preview — this feature is being built; the design below is the spec.

Sent when: The session is paused waiting for you: a tool your code runs, or an approval decision.

PropertyValue
ScopeOne workspace. Register with an inference key at /v1/webhooks.
AreaAgents
Subscribe with"events": ["session.requires_action"], or a prefix such as "session.*"

Payload

{
  "id": "evt_01JCA5D7F9H1K3M5P7R9",
  "type": "session.requires_action",
  "created_at": "2026-11-05T10:00:00Z",
  "workspace_id": "wrkspc_01JC0A2C4E6G8J0L2N4Q",
  "data": {
    "object": {
      "id": "sesn_01JC7M2K4P6R8T0V2X4Z",
      "type": "session",
      "status": "requires_action",
      "pending": [
        {
          "tool_call_id": "call_7",
          "name": "issue_refund",
          "kind": "approval"
        }
      ]
    }
  }
}

data.object matches what the corresponding GET endpoint returned when the event happened. Prompt and output text are never included.

What to do

  • Answer every entry in pending with a user.tool_result or user.approval event.
  • Sessions left waiting for 24 hours are archived.

Delivery

Deliveries are signed, retried with back-off for up to 3 days, and may arrive more than once or out of order. De-duplicate on the syntic-event-id header and compare timestamps before acting. See Webhooks.

Was this page helpful?