support.conversation.blocked

A creator silences a member's support messages.

A block lives on the conversation, not the member. It silences their support traffic only — the member keeps their subscription, their access and every other interaction with the bot, and they are given no indication that anything changed.

When this fires

A creator blocks the member behind a support conversation:

  • DashboardBlock member in the thread's header menu in the support inbox.
  • RESTPOST /v1/support/conversations/{conversation}/block.
  • MCP — the block_support_contact tool.

It does not fire when:

  • The conversation is already blocked. Blocking twice writes nothing the second time and emits nothing — the call is idempotent.
  • A member is banned from the project. That is member.banned, a different mechanism that removes access rather than silencing a thread.
  • The member's message is dropped because of rate limiting. Flood protection is automatic and raises no event.

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.blocked",
  "created_at": "2026-09-06T09:30: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

FieldTypeNotes
idstring ULIDUnique event id, prefixed evt_. Use for idempotent processing.
typestringAlways support.conversation.blocked for this event.
created_atISO 8601 timestampServer-side emission time.
api_versionstringWebhook API contract version.
project_idstring UUIDProject this event belongs to.
data.conversation_idstring UUIDThe conversation that was blocked. GET /v1/support/conversations/{conversation} now reports blocked: true.
data.project_idstring UUIDMirrors the envelope project_id.
data.subscriber_idstring UUIDThe member whose support messages are now dropped.

Caveats

  • Blocking does not resolve the thread. Its status is whatever it was — open, pending, snoozed or resolved — and stays that way until someone changes it. If you keep a queue in sync, treat a blocked thread as one that will receive no new inbound messages, not as a closed one.
  • From this moment the member's messages are dropped at ingestion. No support.message.received fires for them, and a blocked member's message cannot reopen a resolved thread, so no support.conversation.reopened fires either.
  • The block is scoped to this thread. There is one conversation per member per channel, so a member who also writes in over another channel has a separate thread with its own block state.
  • The member's history is untouched. Every message they sent before the block stays readable over the API and in the dashboard.

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