assign_support_conversation

Hand a support thread to one team member, or take it back off everyone. Advisory — it never stops anyone else replying.

Purpose

Set who owns the answer on a thread. Assignment feeds the Assigned to Me tab in the creator's inbox and says who is responsible; it does not lock the thread, and anyone on the team with support-conversation:update can still reply.

The assignee must be someone who can actually open the thread: the project owner, or a member of the team the project belongs to. Any other account is refused rather than stored, so a token can never park a thread on a user who would never see it. Omit assignee_user_id, or pass null, to clear the assignment.

Emits support.conversation.assigned on every call, with assigned_to_user_id: null when the assignment was cleared.

Idempotent in effect, not in events. Assigning the same person twice leaves the row exactly as it was, but the event fires again each time — deduplicate on the event id if you post notifications downstream.

Required ability

support-conversation:update

Input schema

{
  "type": "object",
  "required": ["conversation_id"],
  "properties": {
    "conversation_id": {
      "type": "string",
      "description": "UUID of the support conversation to assign."
    },
    "assignee_user_id": {
      "type": "string",
      "description": "UUID of the project owner or a team member to hand the thread to. Omit or pass null to unassign."
    }
  }
}

Output shape

{
  "data": {
    "id": "9e042b6f-5d81-4c37-a920-7b3e18cf6d45",
    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
    "channel": "telegram",
    "status": "open",
    "assigned_to_user_id": "4b7c9d21-3e58-4f16-8a02-6d9e5c1b7f34",
    "unread_count": 2,
    "blocked": false,
    "first_response_at": null,
    "resolved_at": null
  }
}

The same row get_support_conversation returns under its conversation key, so a thread reads the same before and after the change. assigned_to_user_id is a team member's user id — a different namespace from the member's project_user_id.

Example prompts

"Assign support conversation 9e042b6f-5d81-4c37-a920-7b3e18cf6d45 to Priya."

"Take the billing thread off Marco — he's on leave — and leave it unassigned."

"Hand every open thread about invite links to whoever owns the project." (resolve the owner with list_team_members, then assign each)

Failure modes

  • VALIDATION_FAILEDassignee_user_id is not a UUID or names no account (No user found with that id.), or the account is neither the project owner nor on its team (That person is not on this project's team.). Also returned when the token's owner is on the team but their role lacks the support permission on the project.
  • RESOURCE_NOT_FOUND — unknown conversation_id, another creator's thread, or a project outside the token's scope:project: allow-list. The three are indistinguishable on purpose.
  • AUTHENTICATION_REQUIRED — no authenticated user on the request.
  • TOKEN_MISSING_ABILITY — token lacks support-conversation:update.

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