Чат — это долгоживущий канал пары участников. Одна пара — один чат со сквозной историей через все заказы. Контекст (заказ, доставка, тикет) живёт на каждом сообщении.
ВсеНепрочитанные 3
АА
Айгерим А. · клиент14:32
#4821 Вы уже близко?2
Boomerang Go · служба14:31
D-7301 Уже выехал, будет через 5 мин
Бакыт Т. · курьервиртуальный
Нет сообщений — написать первым
ДМ
Данияр М. · клиент14:18
#4818 Можно без лука, пожалуйста?1
НС
Нурай С. · клиент13:40
#4809 Спасибо, всё получила 🙏1
ТК
Тимур К. · клиент12:15
#4802 Заказ уже в пути
АА
Айгерим А.
в сети · Клиент · сквозной канал
Заказ #4821✕опциональный видпоказаны сообщения одного заказаПоказать всю переписку
Один канал Вендор ↔ Boomerang Go на все доставки. Включён фильтр по доставке D-7301 — новые сообщения авто-тегируются активным контекстом.
ВсеНепрочитанные 3
АА
Айгерим А. · клиент14:32
#4821 Вы уже близко?2
Boomerang Go · служба14:31
D-7301 Уже выехал, будет через 5 мин
Бакыт Т. · курьервиртуальный
Нет сообщений — написать первым
ДМ
Данияр М. · клиент14:18
#4818 Можно без лука, пожалуйста?1
Нет соединения — переподключение…
Boomerang Go
в сети · Служба доставки · сквозной канал
Доставка D-7301✕опциональный видпоказаны сообщения одной доставкиПоказать всю переписку
КлиентСлужбаКурьерв контексте #4821
Ранее сегодня
Boomerang Go · Нурлан
Заказ #4818 передан курьеру, выехал к клиенту.
D-7288 13:52
Айзада
Спасибо!
D-7288 13:53
Сегодня
Курьер назначен · Бакыт Т.
Boomerang Go · Нурлан
На заказ #4821 назначен курьер Бакыт. Подъедет за заказом к 14:25.
D-7301 14:15
Айзада
Принято. Заказ будет готов к 14:25, упакуем горячим.
D-7301 14:24
Boomerang Go · Нурлан
Курьер на месте, забирает заказ.
D-7301 14:28
Айзада
Курьер задерживается? Клиент спрашивает, где заказ.
D-7301 14:30
Boomerang Go · Нурлан
Уже выехал, будет у клиента через 5 минут.
D-7301 14:31
Отвечаете как Тандыр · Айзада→ D-7301
Сообщение…
Все переписки
Полный список каналов пар, включая давние. Завершение заказа не закрывает канал — с клиентом, службой или курьером можно написать снова в любой момент.
Поиск по имени или контексту
АА
Айгерим А. · клиент14:32
#4821 Вы уже близко?
Boomerang Go · служба14:31
D-7301 Уже выехал, будет через 5 мин
ГС
Гульнара С. · клиент2 июля
#4520 Спасибо, всё вкусно!
ТК
Тимур К. · клиент28 июня
#4705 Оставьте у двери, спасибо
Марат О. · курьер20 июня
D-6980 Заказ забрал, выехал
ГС
Гульнара С.
не в сети · Клиент · канал открыт
2 июля
Здравствуйте, а сегодня работаете до скольки?
#4520 18:20
Айзада
Здравствуйте! До 23:00, ждём вас.
#4520 18:21
Заказ #4520 доставлен · 19:34
Спасибо, всё вкусно!
19:40
Отвечаете как Тандыр · Айзада→ без контекста
Сообщение…
Тикеты поддержки
Вендор — служба поддержки своих клиентов. Тикет опирается на канал с клиентом: лента тикета — это фильтр того же чата по ticketId.
Открытые
2
требуют ответа
Первый ответ · ср.
9 мин
SLA цель — 15 мин
Просрочено SLA
1
нужен ответ сейчас
Решено за неделю
14
+3 к прошлой
ВсеОткрытыеВ работеРешённыеЗакрытые
Поиск по теме или клиенту
ID
Тема
Клиент
Статус
Приоритет
Агент
SLA · первый ответ
Создан
TS-102
Не начислился кешбек
Айгерим А.
открыт
средний
Айзада
06:12
сегодня 14:05
TS-104
Долго не везут, курьер не отвечает
Данияр М.
открыт
высокий
не назначен
просрочен
сегодня 13:38
TS-103
Вопрос по брони столика
Тимур К.
в работе
низкий
Марат
отвечено
сегодня 13:40
TS-101
Ошибка в заказе — положили не тот соус
Нурай С.
решён
средний
Айзада
4 мин
вчера 19:12
TS-100
Жалоба на опоздание
Данияр М.
закрыт
средний
Айзада
7 мин
вчера 18:40
Тикет — это фильтр канала. Клиент Айгерим — тот же чат, что и в заказных переписках. Лента тикета показывает только сообщения с его ticketId (чип «TS-102»). Чат один, тикет — представление поверх него со статусом, приоритетом и SLA.
Клиент: Айгерим А. · категория «Лояльность» · создан сегодня 14:05. Это тот же канал, что и заказные чаты с клиентом — лента отфильтрована по тикету.
АА
Айгерим А.
в сети · Клиент · сквозной канал
Тикет TS-102✕Показаны сообщения тикета · фильтр по ticketIdОткрыть весь канал клиента
Тикет создан · 14:05
Здравствуйте! Я оплатила заказ #4821, но кешбек так и не начислился на баланс. Помогите, пожалуйста.
TS-102 14:05
Айзада
Здравствуйте, Айгерим! Уже проверяю ваш заказ, вернусь с ответом в течение нескольких минут.
TS-102 14:07
Спасибо! Жду.
TS-102 14:08
Отвечаете как Тандыр · Айзада→ TS-102
Ответ клиенту…
Как это работает
Модель чатов v3: чат — это долгоживущий канал пары участников. Контекст (заказ, доставка, тикет) живёт на каждом сообщении, а не на чате.
Утверждённые решения (v3)
Вход из заказа = вся история. Открывая тред из контекста заказа, вендор видит весь канал пары (сообщения прошлых заказов, напр. #4700, видны). Фильтр «только этот заказ» — опциональный вид, включается тапом по чипу.
Unread — на канал. Непрочитанное считается на канал пары, а не на контекст. В табах собеседников это точка «есть непрочитанные», в списке тредов — число.
Клиент ↔ Курьер — только при активной доставке. Прямой канал клиента с курьером доступен, пока доставка в процессе; по её завершении переписка с курьером не продолжается.
Поддержка — в том же канале. vendor_support живёт внутри канала Клиент ↔ Вендор: тикет не создаёт отдельный чат, а фильтрует существующий по ticketId.
Чат — это канал пары
Одна пара участников — один чат со сквозной историей через все заказы. Чат не привязан к заказу и не закрывается по его завершении. Вендор ведёт до трёх каналов.
Вендор ↔ Клиент
Один канал на все заказы клиента. Доступен сразу.
Вендор ↔ Служба
Один канал со службой на все доставки. После назначения.
Вендор ↔ Курьер
Канал с конкретным курьером — только при активной доставке.
Прямой канал Клиент ↔ Курьер тоже доступен лишь пока доставка активна. Каналы вендора со службой и курьером открываются после назначения доставки.
Контекст живёт на сообщении
Сообщение несёт свой контекст: message = { chatId, orderId?, orderShortId?, deliveryId?, ticketId? }. На сообщении рисуется чип — «#4821», «D-7301», «TS-102». Клик по чипу включает фильтр-режим.
Можно добавить пахлаву к заказу?
#4700 вчера
Айзада
Добавили!
#4821 сегодня
Курьер уже выехал?
D-7301 14:31
Кешбек не начислился
TS-102 14:05
Один канал — сообщения из разных заказов, доставок и тикетов, каждое со своим чипом.
Два вида чата. (а) дефолт — вся история пары с чипами на сообщениях; (б) опциональный вид — фильтр по заказу/доставке, чип-фильтр в шапке «Заказ #4821 ✕», лента сужена до одного контекста.
Композер авто-тегирует всегда. Даже в полной истории у поля виден чип «→ #4821» — новые сообщения получают контекст того заказа, из которого открыт тред. Фильтр — отдельная опция, авто-тег от него не зависит.
Тикет — это фильтр канала
канал
vendor_support живёт в канале Клиент ↔ Вендор. У Айгерим один чат с вендором — заказные сообщения и обращения в поддержку вместе.
фильтр по ticketId
Лента тикета TS-102 — это тот же канал, суженный до сообщений с его ticketId. Отдельного чата у тикета нет.
надстройка
Статус, приоритет, категория, SLA и назначение — метаданные поверх канала. Ответ уходит в общий чат клиента.
Типы участников
Тип
Идентификатор
Кто это
Клиент
userId
Покупатель из C2C
Вендор
orgId + memberId
Ресторан; пишет сотрудник от имени организации
Курьерская служба
orgId + memberId
Напр. «Boomerang Go»; пишет диспетчер
Курьер
courierId
Конкретный курьер на доставке
SuperAdmin
userId · Batele
Сотрудник поддержки платформы Batele
SuperOrg
orgId · Batele
Платформенная организация поддержки
SuperAdmin и SuperOrg — для поддержки платформы: могут подключаться к каналам как отдельная сторона, когда нужно разобрать спор между вендором, службой и клиентом.
Ленивое создание и подпись сотрудника
Пара показывается виртуально
Доступный собеседник виден сразу, даже без переписки — с пометкой «виртуальный · написать первым».
Канал создаётся при первом сообщении
Реальный чат материализуется лениво, когда одна из сторон пишет первой. Дальше это единый канал пары.
Подпись автора · senderMemberId
Со стороны вендора собеседник — организация. Любой сотрудник с правом «Чаты» пишет от имени «Тандыр», но фиксируется реальный автор: исходящее — «Айзада», входящее от службы — «Boomerang Go · Нурлан».
Право «Чаты» в ролях
Роль «Менеджер зала»
✓Заказы
✓Меню и каталог
✓Чатыновое право
✓Финансынет в плане
✓Аналитиканет в плане
Право «Чаты» НЕ бэкфиллится на существующие роли. Право добавляется в каталог, но после релиза его выдают вручную — старые роли не получают доступ к чатам автоматически.
Заглушка «Нет права на чаты». Сотрудник без права видит раздел заблокированным: «У вас нет доступа к чатам. Обратитесь к администратору организации».
Realtime и пограничные состояния
Печатает-индикатор, статусы прочтения (✓✓), presence «в сети» и непрочитанное — по WebSocket. Unread считается на канал (не на контекст сообщения): в табах собеседников это точка, в списке тредов — число. Если получатель офлайн — уходит push.
Нет активных чатовПереписки появятся, когда клиент или служба напишут.
Нет соединения — переподключение…
Баннер поверх треда при потере WebSocket. Сообщения ждут реконнекта.
Сотрудник офлайн — клиенту всё равно уйдёт push. Доставка сообщения не зависит от того, открыт ли веб-кабинет вендора: получатель на другой стороне получит уведомление, а сообщение дождётся сотрудника в инбоксе.
Отчёт SLA
Соблюдение времени первого ответа и решения по тикетам поддержки. Раздел в проработке.
Первый ответ · ср.
9 мин
цель 15 мин
Соблюдение SLA
92%
за 7 дней
Просрочено
1
из 15 тикетов
Решение · ср.
1 ч 48 мин
цель 4 ч
Графики и выгрузка — скороДинамика SLA по агентам и категориям, разбивка просрочек и экспорт в CSV появятся после утверждения раздела.