Tickets
Для разработчиков

Tickets

Тикет — основная сущность службы поддержки. Через API можно создавать тикеты, менять статус и приоритет, закрывать и переоткрывать, читать историю.

GET/api/v1/tickets

Список тикетов

Возвращает постранично все тикеты workspace, отсортированные по дате создания (новые сверху).

Query параметры:

  • statusopen, pending, resolved, closed
  • prioritylow, normal, high, urgent
  • since — ISO 8601 datetime, фильтр по дате создания
  • contact_id — UUID контакта, вернуть только его тикеты
  • include_historytrue, чтобы обогатить каждый элемент полями last_message_preview и message_count
  • page (default 1), page_size (default 20, max 100)
curl
curl "https://api.support.forestsnet.com/api/v1/tickets?status=open&page_size=10" \
  -H "Authorization: Bearer sk_xxx"
200 OK
{
  "items": [
    {
      "id": "8a3f...",
      "workspace_id": "1c2b...",
      "contact_id": "44e1...",
      "channel_id": null,
      "channel_type": "api",
      "assigned_to": null,
      "department_id": null,
      "subject": "Не приходит код подтверждения",
      "status": "open",
      "priority": "normal",
      "tags": ["billing"],
      "first_response_at": null,
      "resolved_at": null,
      "closed_at": null,
      "rating": null,
      "created_at": "2026-04-06T10:12:33.123456",
      "updated_at": "2026-04-06T10:12:33.123456",
      "last_message_preview": "Здравствуйте, не приходит код",
      "message_count": 4
    }
  ],
  "total": 137,
  "page": 1,
  "page_size": 10
}
GET/api/v1/tickets/{ticket_id}

Получить тикет с историей сообщений

Возвращает тикет, последние сообщения и контакт.

Query параметры:

  • last_messages — сколько сообщений вернуть (1–200, default 20)
curl
curl https://api.support.forestsnet.com/api/v1/tickets/8a3f.../?last_messages=50 \
  -H "Authorization: Bearer sk_xxx"
200 OK
{
  "ticket":   { "id": "8a3f...", "status": "open", ... },
  "messages": [ { "id": "...", "content": "Здравствуйте", ... } ],
  "contact":  { "id": "44e1...", "full_name": "Иван", "email": "i@x.ru", ... }
}
POST/api/v1/tickets

Создать тикет

Создаёт новый тикет. Контакт ищется (или создаётся) по email илиtelegram_id — хотя бы одно из этих полей в contact обязательно. Поддерживаются также name / full_name для имени контакта (любое из двух работает).

POST /api/v1/tickets
{
  "subject": "Не работает оплата",
  "priority": "high",
  "tags": ["billing", "vip"],
  "contact": {
    "email": "ivan@example.com",
    "name": "Иван Петров"
  },
  "message": "Пытаюсь оплатить тариф, ошибка 500."
}
curl
curl -X POST https://api.support.forestsnet.com/api/v1/tickets \
  -H "Authorization: Bearer sk_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "priority":"high",
    "contact":{"email":"ivan@example.com","name":"Иван"},
    "message":"Не приходит код"
  }'

Ответ — JSON тикета (формат как в списке), статус 201.

PATCH/api/v1/tickets/{ticket_id}

Изменить тикет

Можно менять status, priority, tags, subject. Передавайте только те поля, которые хотите обновить.

PATCH body
{ "priority": "urgent", "tags": ["vip", "p1"] }
POST/api/v1/tickets/{ticket_id}/close

Закрыть тикет

Переводит тикет в статус closed и проставляет closed_at.

POST/api/v1/tickets/{ticket_id}/reopen

Переоткрыть тикет

Возвращает закрытый тикет в работу.

Была ли страница полезной?