SupportTicket
A request or response body; the type column links to the schemas it refers to.
SupportTicket
| Field | Type | Required | Description |
|---|---|---|---|
| id | string (uuid) | yes | — |
| number | integer | yes | The short handle people quote, as #42. minimum 1 |
| category | string | yes | one of "bug" | "content_issue" | "permissions_error" | "account" | "suggestion" | "other" |
| status | string | yes | `open` (waiting on support), `in_progress` or `resolved`. one of "open" | "in_progress" | "resolved" |
| description | string | yes | What went wrong, in plain text, as the reporter typed it. |
| page_path | string | null | yes | The app path (and query) the report was made from. |
| page_title | string | null | yes | — |
| reporter_user_id | string (uuid) | null | yes | The account that reported it; null once that account has been deleted. |
| reporter_name | string | null | yes | The reporter's display name or email; null when unknown or deleted. |
| reporter_email | string | null | yes | — |
| reply_count | integer | yes | Replies in its conversation, from either side; bare status changes not counted. minimum 0 |
| last_reply_from_support | boolean | null | yes | Who wrote the latest reply: support (true) or the reporter (false); null before any reply. |
| created_at | string (date-time) | yes | — |
| last_activity_at | string (date-time) | yes | The report or its latest message, whichever is newer. |
| resolved_at | string (date-time) | null | yes | When it was resolved; null while it is not. |
| user_agent | string | null | yes | The browser the report came from. |
| attachments | array of SupportTicketAttachment | yes | The report's own screenshots; replies carry theirs on each message. |
| messages | array of SupportTicketMessage | yes | The conversation — replies and status changes — oldest first. |
| viewer | SupportTicketViewer | yes | — |
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"number": 42,
"category": "bug",
"status": "open",
"description": "string",
"page_path": "/records/approvals",
"page_title": "Approvals | Botree LRS",
"reporter_user_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"reporter_name": "string",
"reporter_email": "string",
"reply_count": 0,
"last_reply_from_support": true,
"created_at": "2026-01-01T00:00:00.000Z",
"last_activity_at": "2026-01-01T00:00:00.000Z",
"resolved_at": "2026-01-01T00:00:00.000Z",
"user_agent": "string",
"attachments": [
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"message_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"source": "page_capture",
"file_name": "screenshot.png",
"content_type": "image/png",
"size_bytes": 0,
"created_at": "2026-01-01T00:00:00.000Z",
"url": "string",
"download_url": "string"
}
],
"messages": [
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"ticket_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"author_user_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"author_name": "Sam Rivera",
"from_support": true,
"body": "string",
"status_change": "open",
"created_at": "2026-01-01T00:00:00.000Z",
"attachments": [
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"message_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"source": "page_capture",
"file_name": "screenshot.png",
"content_type": "image/png",
"size_bytes": 0,
"created_at": "2026-01-01T00:00:00.000Z",
"url": "string",
"download_url": "string"
}
]
}
],
"viewer": {
"reply": true,
"manage": true
}
}