Operators statistics
(UI-екран Family-меню) — таблиця заробітку операторів.
Продуктовий концепт — у statistics.
Суть
Таблиця операторів (або одного оператора + його TU) за місяць. Показує баланси, коли оператор був активний та виділені дні оператора.
Use cases
Кожна роль із доступом до сторінки бачить дані у межах своєї зони відповідальності. Деталі по ролях — у Доступах.
Toolbar (фільтри і режими)
| Контрол | Що робить | Ролі |
|---|---|---|
| Balance ↔ Online | Перемикач режиму даних у клітинках. Balance — $ що оператор заробив. Online — час онлайн оператора (на golden додатково можна показувати онлайн TU). | усі |
| Per: DAY / SHIFT | Як рахувати онлайн (актуально в режимі Online). DAY — у межах календарної доби. SHIFT — у межах зміни тімліда (наприклад 21:00–09:00 наступного дня сумує в одну клітинку). | усі |
| Month | Місяць за який дивимось. | усі |
| Role | Вібір ролі для списку Team: Teamlead / HR / TOP-manager. | director |
| Team | Вибір доступного юзера по ролі. Юзер який є заблокованим на кінець місяця відображається червоним. | director, top-manager, hr |
| Sum | Сума виділених клітинок. Виділяєш клітинки → знизу/зверху - тиснеш кнопку і бачиш суму виділеного діапазону. | усі крім operator |
| GNR | ”Generate” — застосувати фільтри і перерахувати таблицю. Натиснути після зміни фільтрів. | усі |
У
operatorзамість Sum — кнопкаDetails(попап з транзакціями дня TU, тільки golden). Деталі — у Details.
Кнопки днів (Day Off / Absenteeism / Internship / Excused Absence)
Виділяєш клітинки → тиснеш потрібну кнопку → клітинки маркуються.
| Кнопка | Що маркує | Колір клітинки | Ролі |
|---|---|---|---|
| Day Off | Вихідний | блакитний фон | director, top-manager, supervisor, hr |
| Absenteeism | Прогул | червона рамка | director, top-manager, supervisor, hr |
| Internship | Навчання | жовтий фон | director, top-manager, supervisor, hr |
| Excused Absence | Відпустка | фіолетовий фон | director, top-manager, hr (тімлід не може) |
| (система сама) | Auto-absenteeism — коли оператор наставив вихідних наперед, а потім був звільнений, і “не зароблені” вихідні автоматично перетворюються на прогули | червоний прямокутник із замальованим кутом | — |
Для вихідних (Day Off) є формула розрахунку скільки вихідних на місяць оператор заробив — живе на сервісі stack (TODO лінк коли опишемо).
Що бачимо
Таблиця: рядок = оператор, колонки = дні місяця (1..31), осередок = $ що оператор заробив у цей день.
Колонки зверху:
- № — порядковий
- Name — імʼя оператора (з кольором стану, див. нижче) + пошук
- Ladies — скільки TU зараз на операторі або на кінець місяця (якщо місяць завершився)
- All $ — сума за місяць
Знизу списку — рядок TOTAL з сумою по всіх показаних операторах.
Індикатор онлайну (live). Якщо оператор зараз онлайн, біля його імені зʼявляється іконка поточного стану: ▶ (play) — активний, ⏸ (pause) — у sleep mode. Офлайн — іконки нема.
3 базових стани
Один принцип для рядка (стан оператора зараз) і для клітинки (стан оператора у той день):
| Стан | Колір | На рядку | На клітинці |
|---|---|---|---|
| Активний | прозорий | оператор активний у цього юзера | звичайний робочий день |
| Не закріплений | сірий | переведений (вже не в цього юзера) | у цей день був закріплений за іншим юзером |
| Заблокований | рожевий | заблокований | день коли був заблокований |
Імена в лівій колонці слідують тим самим 3 станам, тільки кольором тексту (звичайний / сірий / червоний) замість фону.
Стани відносні до того хто дивиться. Той самий оператор у різних тімлідів виглядає по-різному: у попереднього — сірий/рожевий (бо пішов / заблокований після переходу), у нового — прозорий. Якщо переходів кілька — кожен бачить свою історію з ним.
Мітки днів (тільки на активних клітинках)
Поверх прозорої (активної) клітинки лягає маркер дня — Day Off / Absenteeism / Internship / Excused Absence / Auto-absenteeism. Кольори і хто проставляє — у секції “Кнопки днів” вище.
Доступи
Рядки — логіка. Колонки — ролі. ✓ — доступно. — — недоступно. Запити (роути) — у секції API нижче.
| # | Логіка | director | top-manager | supervisor | hr | operator |
|---|---|---|---|---|---|---|
| 1 | Усі оператори | ✓ | — | — | — | — |
| 2 | По тімліду | ✓ | — | ✓ | — | — |
| 3 | По тімліду + оператор | ✓ | — | ✓ | — | — |
| 4 | По топу + тімліду | ✓ | ✓ | — | — | — |
| 5 | По топу + тімліду + оператор | ✓ | ✓ | — | — | — |
| 6 | По HR | ✓ | — | — | ✓ | — |
| 7 | По оператору | ✓ | — | — | — | ✓ |
| 8 | Виставлення дня | ✓ | ✓ | без Excused | ✓ | — |
| 9 | Details дня TU | — | — | ✓ | — | ✓ |
Деталі по можливостях
1. Усі оператори
Default для director без Role-фільтра — вся фабрика операторів стеку.
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
golden | statistics/v2/operators | статистика по всіх операторах стеку |
prime | TODO | — |
udate | TODO | — |
chathouse | TODO | — |
2. По тімліду
director через Role=Teamlead → конкретного тімліда;
supervisor — одразу зі свого id (своя команда).
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
golden | statistics/v2/supervisor-operators | оператори тімліда за місяць |
prime | TODO | — |
udate | TODO | — |
chathouse | TODO | — |
3. По тімліду + оператор
Один оператор у команді тімліда. Відкривається кліком по імені оператора в режимі “По тімліду”. Доступно тим самим ролям що “По тімліду”.
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
golden | statistics/v2/supervisor-operator | один оператор у контексті тімліда |
prime | TODO | — |
udate | TODO | — |
chathouse | TODO | — |
4. По топу + тімліду
director через Role=TOP-manager → конкретного топа;
top-manager — одразу зі свого id. У дропдауні тімлідів — ALL (усі тімліди топа разом) або конкретний.
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
golden | statistics/v2/top-supervisors-operators | оператори топа (всі тімліди або один) |
prime | TODO | — |
udate | TODO | — |
chathouse | TODO | — |
5. По топу + тімліду + оператор
Один оператор у межах топа + тімліда (одного або всіх). Відкривається кліком по імені оператора в режимі “По топу + тімліду”. Доступно тим самим ролям що “По топу + тімліду”.
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
golden | statistics/v2/top-supervisors-operator | один оператор у контексті топа |
prime | TODO | — |
udate | TODO | — |
chathouse | TODO | — |
6. По HR
director через Role=HR → конкретного HR;
hr — одразу зі свого id. Бек повертає тільки список операторів — переходу на одного оператора для HR нема.
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
| усі | POST /statistics/getHrOperatorStatistics | оператори HR (stack — TODO Swagger); family у body |
7. По оператору
Для operator — стартовий і єдиний зріз: сторінка одразу відкривається з його рядком + списком його TU під ним (без проміжного списку операторів). Для director — клік по імені оператора в режимі “Усі оператори” відкриває одного оператора з його TU та блоком графіків.
Що видно на одному операторі:
- Список TU оператора з добовими бонусами (та сама структура клітинок, з тими ж кольорами)
- Блок графіків analytics — окремий концепт, див. analytics
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
golden | statistics/v2/operator | оператор + його TU за місяць |
prime | TODO | — |
udate | TODO | — |
chathouse | TODO | — |
8. Виставлення дня
Кнопки Day Off / Absenteeism / Internship / Excused Absence зверху таблиці. У supervisor кнопки Excused Absence нема — фіксовано у фронті. Деталі і кольори — у Кнопки днів.
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
| усі | POST /statistics/setOperatorDays | проставити день оператора (stack — TODO Swagger); family у body |
9. Details дня TU
Попап з транзакціями і розкладкою $ за день TU. Відкривається у режимі одного оператора (зрізи “По оператору”, “По тімліду + оператор”, “По топу + тімліду + оператор”): тиснеш кнопку Details у toolbar → клік по клітинці дня TU розкриває попап. Тільки на golden, тільки для supervisor і operator.
Попап містить:
- Список транзакцій за день: дата+час, ID клієнта (
Man), тип (EmailRead/EmailSend/TextChat/VideoChat/ …), $ - Total — підсумок $ за день (= значення клітинки)
- Balance — % розподіл $ за день по типах (TextChat / VideoChat / EmailSend / EmailRead / other)
- Mails —
Find A New Man: N,Not Active Favorites: N(TODO уточнити сенс метрик) - Invites —
Agency list&Online: N,Contact list: N(TODO уточнити сенс метрик)
Endpoints:
| Family | Endpoint | Що робить |
|---|---|---|
golden | statistics/showDetails | транзакції за день TU |
prime | — | нема Details |
udate | — | нема Details |
chathouse | — | нема Details |
Analytics
При відкритті одного оператора (зрізи 3, 5, 7) під його TU рендериться блок графіків analytics. Набір графіків залежить від ролі × family — не скрізь є все.
Графіки:
online_time— онлайн час оператора по годинах. Ділить онлайн на Total (зелений) і Sleep mode (червоний, всередині total); тултіп показує Total і Sleep mode (хв/сек) + % сну від totaltasks— кількість тасківon_time— % завершених вчасноspeed— середня швидкість обробкиsend— мануальні відправки
| Роль / Family | online | tasks | on_time | speed | send |
|---|---|---|---|---|---|
director | |||||
| golden | ✓ | ✓ | ✓ | ✓ | ✓ |
| prime / udate / chathouse | — | — | — | — | — |
supervisor | |||||
| golden | ✓ | ✓ | ✓ | ✓ | — |
| prime | ✓ | ✓ | ✓ | ✓ | ✓ |
| udate | ✓ | ✓ | ✓ | ✓ | ✓ |
| chathouse | — | — | — | — | ✓ |
top-manager | |||||
| golden | — | — | — | — | — |
| prime | ✓ | ✓ | ✓ | ✓ | ✓ |
| udate | — | — | ✓ | ✓ | ✓ |
| chathouse | — | — | — | — | ✓ |
operator | |||||
| golden | ✓ | ✓ | ✓ | ✓ | — |
| prime | ✓ | ✓ | ✓ | ✓ | — |
| udate | — | — | ✓ | ✓ | ✓ |
| chathouse | — | — | — | — | — |
Деталі контракту і опис графіків — у analytics.
Endpoints:
online_time
| Family | Endpoint |
|---|---|
golden | analyst/getOnlineOperatorDayByDate |
prime | analyst/getOnlineOperatorDayByDate |
udate | analyst/getOnlineOperatorDayByDate |
chathouse | — |
tasks
| Family | Endpoint |
|---|---|
golden | analyst/getCreatedAndAnsweredTasksByDay |
prime | analyst/getCreatedAndAnsweredTasksByDay |
udate | analyst/getCreatedAndAnsweredTasksByDay |
chathouse | — |
on_time
| Family | Endpoint |
|---|---|
golden | analyst/getPercentageCompletedTasksMonthByDate |
prime | analyst/getPercentageCompletedTasksMounthByDate (sic: Mounth) |
udate | analyst/getPercentageCompletedTasksMounthByDate (sic: Mounth) |
chathouse | — |
speed
| Family | Endpoint |
|---|---|
golden | analyst/getAverageProcessingSpeedMonthByDate |
prime | analyst/getAverageProcessingSpeedMounthByDate (sic: Mounth) |
udate | analyst/getAverageProcessingSpeedMounthByDate (sic: Mounth) |
chathouse | — |
send
| Family | Endpoint |
|---|---|
golden | operator/getManualActionOperator |
prime | operator/getManualActionOperator |
udate | operator/getManualActionOperator |
chathouse | operator/getManualActionOperator |
sic: Mounth — у prime/udate URL містить опечатку
MounthзамістьMonth(на golden — без опечатки). Це факт у коді — не виправляти один сервіс ізольовано, бо зламає інший.
Ladies extension online (по TU оператора)
Окремий графік над набором analytics. Показує добовий розклад по кожній TU оператора у вигляді кольорових стрічок (Online / Messages / Stream / Kick).
| Сегмент | Колір | Що означає |
|---|---|---|
| Online | синій | онлайн анкети через API партнерського сайту |
| Messages 40+ | рожевий | сесії з 40+ повідомленнями (TODO уточнити — це по сендеру?) |
| Messages 1-39 | світло-рожевий | сесії з 1-39 повідомленнями (TODO уточнити) |
| Stream | зелений | стрім |
| Kick | червоний | кіки |
Доступний: тільки на golden, для director / supervisor / operator. На top-manager — нема (на жодному family); на prime / udate / chathouse — нема для всіх ролей.
Endpoint: POST /golden/statistics/showOnlineDetails (той самий що Details дня TU, але з іншим набором параметрів — повертає 24-годинну стрічку по кожній TU оператора).
Зв’язки
- statistics — продуктовий концепт фічі