recovery.identity_relinked
The creator's sign-in account moved to another account on the connector — a newly detected one, or the backup switched in.
When this fires
After a ban on the creator's own account, recovery moves their Subscriby identity to another account on the connector: one they prove control of through a handshake, or the backup account they registered ahead of time (from_backup: true). Sign-in and alerts follow the new account at once; the previous one becomes the backup when a backup was switched in. This is an account-level event: project_id is null and it reaches the endpoints of the team the creator owns.
Required ability
project-recovery:view — token must carry this at mint time to subscribe an endpoint to this event.
Payload
{
"id": "evt_01HX...",
"type": "recovery.identity_relinked",
"created_at": "2026-08-01T11:12:30Z",
"api_version": "2026-05-01",
"project_id": null,
"data": {
"operation_id": "e7c3d9a1-2f64-4b08-9d5e-4a1b8c6f2d73",
"connector": "telegram",
"identity_id": "3c9e1f7a-8b25-4d60-a1f4-7e2c5b9d0a18",
"display_name": "Ada (new)",
"from_backup": false,
"started_at": "2026-08-01T11:12:29Z",
"completed_at": "2026-08-01T11:12:30Z"
}
}Field reference
| Field | Type | Notes |
|---|---|---|
id | string ULID | Unique event id, prefixed evt_. Use for idempotent processing. |
type | string | Always recovery.identity_relinked for this event. |
created_at | ISO 8601 timestamp | Server-side emission time. |
api_version | string | Webhook API contract version. |
project_id | null | Always null: the account belongs to the creator, not to a project. |
data.operation_id | string UUID | The account recovery. |
data.connector | string | null | The connector both accounts live on. |
data.identity_id | string UUID | null | Subscriby's id for the account now signing in, as GET /v1/me lists it under identities; null when not yet recorded. |
data.display_name | string | null | The new account's display name, as the connector reported it. |
data.from_backup | boolean | True when the registered backup account was switched in; false for a newly detected account. |
data.started_at | ISO 8601 timestamp | When the relink began. |
data.completed_at | ISO 8601 timestamp | When sign-in moved. |
Caveats
- The platform's own account identifiers (numeric ids, usernames) are deliberately absent;
identity_idis the neutral id the rest of the API uses. - Every browser session of the creator is signed out by the relink. The undo, inside 24 hours, fires
recovery.operation_revertedand opens arelink_disputedincident.
Related events
recovery.operation_completed— the same recovery, as an operation.recovery.operation_reverted— the relink undone.- Recovery events overview — back to family overview.
How is this guide?