connector.outage_compensated

A closed connector outage settled — how many members had time banked, how much each received, and how many invites lost during the outage were re-sent.

When this fires

Once per outage, shortly after connector.outage_closed. The settlement runs from the queue: it first re-sends any invite that never reached a member while the connector was refusing the installation (grants_replayed), then, when the outage lasted an hour or more, ended as recovered or replaced, and the project's Outage Compensation setting is on, banks the outage's length on every live purchase that unlocks a place on that connector (members_extended, one member.access_extended each). The creator receives the same summary by email, on their connected account and in the notification centre; it is also the Compensation column of the Recovery History page.

Required ability

project-connector:view — token must carry this at mint time to subscribe an endpoint to this event.

Payload

{
  "id": "evt_01HX...",
  "type": "connector.outage_compensated",
  "created_at": "2026-09-13T13:21:00Z",
  "api_version": "2026-05-01",
  "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
  "data": {
    "connector": "telegram",
    "extended_seconds": 11700,
    "grants_replayed": 2,
    "members_extended": 18,
    "outage_id": "9c1e4d2a-7b3f-4e8a-a2d1-5f6b7c8d9e0f",
    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13"
  }
}

Field reference

FieldTypeNotes
idstring ULIDUnique event id, prefixed evt_. Use for idempotent processing.
typestringAlways connector.outage_compensated for this event.
created_atISO 8601 timestampServer-side emission time.
api_versionstringWebhook API contract version.
project_idstring UUIDProject this event belongs to.
data.connectorstringThe connector that was refused.
data.extended_secondsintegerThe seconds each compensated member received; 0 when nobody was.
data.grants_replayedintegerHow many purchases had their invites re-sent because none reached the member during the outage.
data.members_extendedintegerHow many members had the time banked.
data.outage_idstring UUIDThe outage row, the same id the opened and closed events carried.
data.project_idstring UUIDMirrors top-level project_id.

Caveats

  • Fires with members_extended: 0 when the outage was shorter than an hour, ended with an uninstall, or the project switched Outage Compensation off; the creator is not emailed in that case.
  • Money never moves: no charge, refund or renewal date changes. Recurring members receive the time at the end of their membership.

How is this guide?

On this page

Subscriby is a product designed by you — for you.

No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request