Сортировка и объединение¶
Сортировка — очередь, где обращения клиентов и гостей ждут, пока кто-нибудь начнёт с ними работать. Объединение превращает две заявки об одном и том же в одну. Для обоих действий нужно helpdesk-pro.triage.
Когда заявка ждёт в сортировке¶
Заявка ждёт (её состояние сортировки — pending), когда:
- она пришла из веб-формы или по почте в проект, где включена настройка Triage required, или
- защита портала задерживает гостевую отправку как подозрительную (см. Форма запроса и гости).
Заявки, созданные сотрудниками, никогда не ждут. Предустановленный проект Support требует сортировки.
Клиенту сообщают «We got your request» сразу при поступлении, ждёт заявка или нет (письмо client-received), и он может прочитать её в портале сразу.
Экран сортировки¶
#/triage перечисляет все ожидающие заявки, которые вы видите, начиная с самой старой. Счётчик в боковом меню и значке боковой панели — одно и то же число. Каждая строка раскрывается на месте с сообщением клиента, отправителем и похожими заявками, а также тремя кнопками:
- Accept: заявка входит в обычный поток. Сначала можно перенести её в другой проект и выбрать исполнителя, приоритет и тип. Оставьте исполнителя пустым, и заявку возьмёт исполнитель проекта по умолчанию; выберите «Nobody», чтобы оставить её без исполнителя.
- Duplicate of…: заявка закрывается как копия другой. Найдите оригинал по номеру или теме (похожие заявки предлагаются первыми). Let them follow the original добавляет клиента в оригинал как копию, чтобы он читал ответы, а его письмо ссылается на оригинал. Этот флажок уже установлен, когда у обеих заявок общий клиент или оригинал уже доступен клиентам проекта.
- Decline: заявка закрывается. Напишите краткую причину для клиента или установите Don't email the client, чтобы закрыть её тихо (например, спам).
Каждое решение может сопровождаться заметкой для команды: она добавляется как внутренняя заметка и никогда не доходит до клиента. При открытом обращении клавиши a, d и x запускают Accept, Duplicate of… и Decline.
#/triage/<id> открывает одно обращение напрямую. Ожидающая заявка, открытая в любом другом месте рабочей области, показывает в боковой панели карточку Triage с кнопкой Decide in Triage. Без права сортировки экран доступен только для чтения и сообщает об этом.
Что делает каждое решение¶
| Решение | Заявка | Активность | Письмо клиенту |
|---|---|---|---|
| Accept | Состояние сортировки accepted; проект, исполнитель, приоритет и тип — как выбрано |
triage, внутренняя |
Нет, если клиент уже получил «We got your request»; если отправка была задержана как подозрительный спам, письмо уходит сейчас |
| Duplicate of… | Состояние сортировки duplicate, статус закрыт; с «follow» клиент присоединяется к оригиналу как копия |
triage, публичная |
client-triage: «We're already following this in another request», ваша причина и ссылка на оригинал, если клиент следует за ним |
| Decline | Состояние сортировки declined, статус закрыт |
triage, публичная |
client-triage: «We won't be taking this request further» и ваша причина; ничего, если установлен Don't email the client |
Решение по обращению принимается один раз; повторная попытка возвращает 409. Страница клиента в портале показывает «declined» или «duplicate» его словами, но никогда вашу заметку. Причина отображается в активности только если была отправлена по почте.
Объединение двух заявок¶
Когда одна и та же проблема приходит дважды, объедините одну заявку с другой.
- Откройте заявку, которую нужно присоединить.
- Выберите Merge into another ticket… в меню ⋯ в её заголовке.
- Введите номер заявки, которая должна содержать обе переписки.
- Прочитайте, кто получит доступ, и подтвердите.
Объединение:
- переносит каждый ответ и заметку вместе с их файлами и почтовыми цепочками в целевую заявку в порядке написания;
- добавляет заявителя и копии объединённой заявки в целевую как копии, а её наблюдателей — как наблюдателей;
- переносит метки, которые может использовать проект целевой заявки;
- закрывает объединённую заявку со ссылкой на целевую, сохраняя её собственную активность, поэтому старая ссылка всё ещё сообщает, куда ушла переписка. Объединённая заявка, ждавшая в сортировке, покидает очередь как дубликат целевой.
Заявка, объединённая с другой, представляет ту заявку, с которой её объединили, поэтому дубликат указывает на действующую.
Когда объединение расширяет доступ¶
Объединение может дать людям читать то, чего они не могут читать сейчас:
- клиенты объединённой заявки начинают читать ответы целевой;
- клиенты целевой заявки (её заявитель, копии и, для заявки, общей с проектом, клиенты проекта) начинают читать ответы объединённой заявки;
- сотрудники, работающие с проектом целевой заявки, но не с объединённой, начинают читать её заметки.
Перед объединением рабочая область простыми словами показывает, кто получит доступ («Ada Lovelace will be able to read the replies on #1042»), и просит подтверждения. API делает то же самое: возвращает 409 с code: access_widens, пока запрос не будет отправлен снова с confirm: true. Объединение двух заявок одного клиента в одном проекте ничего не расширяет и проходит сразу.
API и MCP¶
| Маршрут | Право | Тело или запрос | Ответ |
|---|---|---|---|
POST /helpdesk-pro/tickets/{id}/triage |
triage | {decision, duplicate_of_id, follow_original, reason, notify, note, project_id, assignee_id, priority, kind} |
Заявка с сохранённым решением в decision. 409, если решение уже принято. |
GET /helpdesk-pro/tickets/{id}/merge |
triage | ?into_id= |
{source, target, widens, reasons, target_thread, source_thread, source_notes}; каждая группа — {count, people: [{id, name, kind}]}. |
POST /helpdesk-pro/tickets/{id}/merge |
triage | {into_id, confirm} |
Целевая заявка с merged_from и moved_messages. 409 access_widens с widening, пока не подтверждено. |
Список ожидающих: GET /helpdesk-pro/tickets?triage=pending&sort=created&order=asc. Инструменты MCP: triage_ticket, preview_merge и merge_ticket. ИИ-клиент должен вызвать preview_merge, показать причины, а затем вызвать merge_ticket с confirm.
События ticket.triaged и ticket.merged перечислены в разделе Расширение.