support.conversation.unblocked
A creator lets a silenced member's support messages through again.
Unblocking restores the flow of new messages. It does not replay anything the member sent while blocked — those messages were dropped at ingestion and are gone.
When this fires
A creator lifts the block on a support conversation:
- Dashboard — Unblock member in the thread's header menu in the support inbox.
- REST —
POST /v1/support/conversations/{conversation}/unblock. - MCP — the
unblock_support_contacttool.
It does not fire when:
- The conversation was not blocked. Unblocking an unblocked thread writes nothing and emits nothing — the call is idempotent.
- A banned member is unbanned. That is
member.unbanned; a ban and a support block are independent, and lifting one does not touch the other.
Required ability
support-conversation:view — token must carry this at mint time to subscribe an endpoint to this event.
Payload
{
"id": "evt_01HX...",
"type": "support.conversation.unblocked",
"created_at": "2026-09-06T11:05:00Z",
"api_version": "2026-05-01",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"data": {
"conversation_id": "9e042b6f-5d81-4c37-a920-7b3e18cf6d45",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"subscriber_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80"
}
}Field reference
| Field | Type | Notes |
|---|---|---|
id | string ULID | Unique event id, prefixed evt_. Use for idempotent processing. |
type | string | Always support.conversation.unblocked for this event. |
created_at | ISO 8601 timestamp | Server-side emission time. |
api_version | string | Webhook API contract version. |
project_id | string UUID | Project this event belongs to. |
data.conversation_id | string UUID | The conversation that was unblocked. GET /v1/support/conversations/{conversation} now reports blocked: false. |
data.project_id | string UUID | Mirrors the envelope project_id. |
data.subscriber_id | string UUID | The member whose support messages are accepted again. |
Caveats
- The thread's
statusis unchanged by an unblock, exactly as it was by the block. A thread that wasresolvedwhen blocked is stillresolvednow — the member's next message will reopen it and raisesupport.conversation.reopenedas usual. - Nothing is replayed. If the member wrote in while blocked, those messages produced no
support.message.receivedand never will. - The payload does not say how long the block lasted. Pair this event's
created_atwith the matchingsupport.conversation.blockedbyconversation_idif you report on it.
Related events
support.conversation.blocked— the state this event reverses.support.conversation.reopened— what the member's next message may now trigger.- Support events overview — back to family overview.
How is this guide?