Атестаційні завдання K2 ERP/Облік IP-телефонії: відмінності між версіями

Первинна публікація
 
Немає опису редагування
 
Рядок 1: Рядок 1:
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Облік IP-телефонії}}


= Модуль обліку дзвінків, внутрішніх номерів і аналітики IP-телефонії =
'''Атестаційне завдання K2 ERP — Облік IP-телефонії''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля обліку дзвінків, внутрішніх номерів, записів розмов, аналітики телефонії та інтеграції з CRM.
 
Модуль має забезпечувати імпорт або прийом даних із IP-телефонії, збереження журналу дзвінків, автоматичну прив’язку дзвінків до клієнтів, облік внутрішніх номерів співробітників, прослуховування записів, контроль пропущених дзвінків, аналітику по менеджерах і звіти для керівництва.
 
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
'''Коротко.''' Потрібно реалізувати модуль IP-телефонії: клієнти, співробітники, внутрішні SIP-номери, журнал дзвінків, CDR-імпорт, API або webhook-інтеграція, записи розмов, пропущені дзвінки, прив’язка до CRM, фільтрація, аналітика й звіти.
</div>
 
__TOC__
 
== Назва завдання ==
 
'''Модуль обліку дзвінків, внутрішніх номерів і аналітики IP-телефонії'''.
 
== Мета завдання ==
 
Мета завдання — створити в K2 ERP модуль для автоматизації обліку телефонних комунікацій компанії.
 
Система повинна дозволяти:
 
* вести клієнтів і їхні номери телефонів;
* вести співробітників;
* вести внутрішні SIP-номери;
* вести зовнішні номери компанії;
* імпортувати дзвінки з IP-телефонії;
* приймати дані дзвінків через API або webhook;
* зберігати журнал вхідних, вихідних і внутрішніх дзвінків;
* автоматично визначати клієнта за номером телефону;
* прив’язувати дзвінок до менеджера;
* прив’язувати дзвінок до клієнта, заявки, угоди або тікета;
* зберігати тривалість дзвінка;
* зберігати статус дзвінка;
* зберігати посилання на запис розмови;
* дозволяти прослуховувати записи розмов;
* фіксувати результат дзвінка;
* контролювати пропущені дзвінки;
* створювати нагадування передзвонити;
* формувати аналітику по співробітниках;
* формувати звіти по дзвінках, клієнтах, менеджерах і якості обслуговування.
 
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
'''Головний принцип.''' Кожен дзвінок має бути зафіксований, пов’язаний із клієнтом або співробітником і доступний для аналізу. Пропущений дзвінок не повинен залишитися без подальшої дії.
</div>


== Реальний бізнес-контекст ==
== Реальний бізнес-контекст ==
Компанія використовує IP-телефонію — SIP, Asterisk, FreePBX тощо — для:


* прийому вхідних дзвінків;
Компанія використовує IP-телефонію для прийому вхідних дзвінків, здійснення вихідних дзвінків, роботи відділу продажу, підтримки клієнтів, кол-центру або сервісної служби.
* здійснення вихідних дзвінків;
 
* ведення обліку комунікацій із клієнтами;
IP-телефонія може бути побудована на:
* оцінки ефективності співробітників:
 
** за кількістю дзвінків;
* SIP;
** за тривалістю розмов.
* Asterisk;
* FreePBX;
* Zadarma;
* Binotel;
* Ringostat;
* 3CX;
* внутрішній корпоративній телефонії;
* іншій VoIP-платформі.
 
Для бізнесу важливо знати:
 
* скільки дзвінків приймає компанія;
* які дзвінки були пропущені;
* хто зі співробітників відповідає клієнтам;
* скільки тривають розмови;
* які клієнти часто телефонують;
* чи передзвонили по пропущених дзвінках;
* які менеджери ефективно працюють із клієнтами;
* чи можна прослухати запис розмови для контролю якості.
 
== Основний бізнес-процес ==
 
Типовий процес роботи модуля IP-телефонії виглядає так:
 
# клієнт телефонує на номер компанії;
# телефонія приймає дзвінок і передає його на внутрішній номер співробітника;
# система отримує інформацію про дзвінок через API, webhook або CDR-імпорт;
# K2 ERP зберігає дзвінок у журналі;
# система визначає клієнта за номером телефону;
# система визначає співробітника за внутрішнім номером;
# дзвінок прив’язується до клієнта, угоди, заявки або тікета;
# якщо є запис розмови — зберігається посилання на файл;
# менеджер може додати коментар або результат дзвінка;
# пропущений дзвінок потрапляє в список для передзвону;
# керівник переглядає аналітику й звіти.
 
== Основні об’єкти модуля ==
 
{| class="wikitable" style="width:100%;"
! Об’єкт
! Призначення
|-
| Клієнти
| Контрагенти або фізичні особи, з якими відбуваються дзвінки
|-
| Телефони клієнтів
| Номери, за якими система розпізнає клієнта
|-
| Співробітники
| Менеджери, оператори, спеціалісти підтримки
|-
| Внутрішні номери
| SIP extension співробітників
|-
| Зовнішні номери
| Номери компанії для вхідних і вихідних дзвінків
|-
| Дзвінки
| Основний журнал телефонних подій
|-
| Записи розмов
| Аудіофайли або посилання на записи
|-
| Пропущені дзвінки
| Дзвінки, які потребують подальшої реакції
|-
| Результати дзвінків
| Підсумок розмови: консультація, продаж, передзвонити тощо
|-
| CRM-прив’язки
| Зв’язок дзвінка з клієнтом, угодою, заявкою або тікетом
|-
| Аналітика
| Показники ефективності дзвінків
|-
| Звіти
| Дані для керівника, продажів і підтримки
|}
 
== Довідник «Клієнти» ==
 
Довідник клієнтів містить компанії або фізичних осіб, з якими ведеться комунікація.
 
== Поля клієнта ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва компанії або ПІБ
| Ім’я клієнта або назва організації
|-
| Телефон
| Основний телефон клієнта
|-
| Додаткові телефони
| Інші номери для розпізнавання
|-
| Email
| Електронна адреса
|-
| Менеджер
| Відповідальний співробітник
|-
| Статус
| Активний, потенційний, архівний
|-
| Примітки
| Додаткова інформація
|}
 
== Довідник «Співробітники» ==
 
Довідник співробітників містить працівників, які користуються телефонією.
 
== Поля співробітника ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| ПІБ
| Повне ім’я співробітника
|-
| Посада
| Менеджер, оператор, техпідтримка, керівник
|-
| Відділ
| Продажі, підтримка, бухгалтерія, сервіс
|-
| Внутрішній номер
| SIP extension
|-
| Телефон
| Особистий або службовий номер
|-
| Email
| Робоча адреса
|-
| Статус
| Активний, заблокований, звільнений
|}
 
== Довідник «Внутрішні номери» ==
 
Внутрішній номер використовується для зв’язку дзвінка зі співробітником.
 
== Поля внутрішнього номера ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| SIP extension
| Наприклад: 101, 102, 205
|-
| Співробітник
| Кому належить номер
|-
| Відділ
| До якого відділу належить номер
|-
| Статус
| Активний або неактивний
|-
| Коментар
| Службова інформація
|}
 
== Довідник «Номери телефонів компанії» ==


Необхідно:
Цей довідник містить зовнішні номери компанії.


* зберігати інформацію про всі дзвінки:
== Поля номера ==
** вхідні;
** вихідні;
* пов'язувати дзвінки з клієнтами;
* відображати статистику дзвінків;
* забезпечити прослуховування записів дзвінків, якщо доступно.


== Основні завдання ==
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Номер телефону
| Зовнішній номер компанії
|-
| Оператор
| SIP-провайдер або мобільний оператор
|-
| Тип номера
| SIP, мобільний, стаціонарний, багатоканальний
|-
| Напрямок
| Продажі, підтримка, бухгалтерія, загальний номер
|-
| Вартість хвилини
| Для розрахунку витрат, опціонально
|-
| Статус
| Активний або неактивний
|}


=== 1. Структура довідників ===
== База «Дзвінки» ==


==== Довідник «Клієнти» ====
Журнал дзвінків є головним об’єктом модуля.
Поля довідника:


* назва компанії або ПІБ;
== Колонки журналу дзвінків ==
* телефон або телефони;
* email;
* менеджер — відповідальний співробітник.


==== Довідник «Співробітники» ====
{| class="wikitable" style="width:100%;"
Поля довідника:
! Колонка
! Опис
|-
| Дата і час
| Коли відбувся дзвінок
|-
| Напрямок
| Вхідний, вихідний, внутрішній
|-
| Номер клієнта
| Зовнішній номер співрозмовника
|-
| Внутрішній номер
| SIP extension співробітника
|-
| Співробітник
| Хто прийняв або здійснив дзвінок
|-
| Клієнт
| Автоматично визначений або вручну прив’язаний клієнт
|-
| Статус
| Відповіли, не відповіли, зайнято, скасовано
|-
| Тривалість
| Тривалість розмови в секундах
|-
| Запис
| Посилання на аудіозапис
|-
| Коментар
| Коментар менеджера
|}


* ПІБ;
== Поля дзвінка ==
* посада;
* внутрішній номер — SIP extension;
* статус:
** активний;
** заблокований.


==== Довідник «Номери телефонів» ====
{| class="wikitable" style="width:100%;"
Поля довідника:
! Поле
! Опис
|-
| Унікальний ID дзвінка
| Ідентифікатор із телефонії або внутрішній ID
|-
| Дата початку
| Початок дзвінка
|-
| Дата завершення
| Завершення дзвінка
|-
| Напрямок
| Вхідний, вихідний, внутрішній
|-
| Caller ID
| Номер того, хто телефонує
|-
| Called number
| Номер, на який телефонують
|-
| Внутрішній номер
| SIP extension співробітника
|-
| Співробітник
| Відповідальний користувач системи
|-
| Клієнт
| Розпізнаний або вручну вибраний клієнт
|-
| Статус дзвінка
| Відповіли, не відповіли, зайнято, скасовано
|-
| Тривалість розмови
| Чистий час розмови
|-
| Загальна тривалість
| Час від початку виклику до завершення
|-
| Запис розмови
| Посилання на файл або потокове відтворення
|-
| Результат дзвінка
| Підсумок розмови
|-
| Коментар
| Примітка менеджера
|}
 
== Напрямки дзвінків ==
 
{| class="wikitable" style="width:100%;"
! Напрямок
! Значення
|-
| Вхідний
| Клієнт телефонує в компанію
|-
| Вихідний
| Співробітник телефонує клієнту
|-
| Внутрішній
| Дзвінок між співробітниками
|-
| Переадресований
| Дзвінок був переведений на інший номер
|}


* оператор;
== Статуси дзвінків ==
* тип номера:
** мобільний;
** SIP;
** стаціонарний;
* вартість хвилини — для розрахунку витрат.


=== 2. База «Дзвінки» ===
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Відповіли
| Розмова відбулася
|-
| Не відповіли
| Дзвінок пропущено
|-
| Зайнято
| Лінія була зайнята
|-
| Скасовано
| Дзвінок завершено до відповіді
|-
| Помилка
| Дзвінок не відбувся через технічну причину
|-
| Голосова пошта
| Клієнт залишив повідомлення, якщо підтримується
|}


==== Колонки бази ====
== Імпорт дзвінків ==


* дата і час дзвінка;
Модуль має підтримувати отримання дзвінків із телефонної системи.
* внутрішній номер співробітника;
 
* номер клієнта;
== Варіанти імпорту ==
* напрямок:
 
** вхідний;
* API телефонії;
** вихідний;
* webhook;
* статус дзвінка:
* CDR-файли;
** відповіли;
* CSV-імпорт;
** не відповіли;
* пряме підключення до бази CDR, якщо дозволено;
** зайнято;
* ручний імпорт файлу адміністратором.
** скасовано;
 
* тривалість дзвінка — секунди;
== Дані CDR ==
* запис розмови — посилання на файл, опціонально;
 
* пов'язаний клієнт;
CDR — це запис про телефонний дзвінок.
* коментар менеджера — опціонально.
 
== Основні поля CDR ==
 
* дата і час початку;
* номер абонента;
* номер призначення;
* внутрішній номер;
* напрямок;
* статус;
* тривалість;
* унікальний ID дзвінка;
* посилання на запис;
* код завершення дзвінка.
 
== Автоматичне розпізнавання клієнта ==
 
Система повинна визначати клієнта за номером телефону.
 
== Логіка розпізнавання ==
 
# система отримує номер із дзвінка;
# очищає номер від пробілів, дужок, дефісів;
# приводить номер до єдиного формату;
# шукає номер у довіднику клієнтів;
# якщо номер знайдено — прив’язує дзвінок до клієнта;
# якщо номер не знайдено — залишає дзвінок як невідомий;
# менеджер може вручну створити клієнта або прив’язати номер до існуючого.
 
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;">
'''Важливо.''' Номери телефонів потрібно нормалізувати. Один і той самий номер може надходити у форматах +380, 380, 0XX або з розділювачами.
</div>
 
== Пропущені дзвінки ==
 
Пропущений дзвінок потребує окремого контролю.
 
== Що має робити система ==
 
* визначати пропущені вхідні дзвінки;
* показувати їх у окремому списку;
* визначати клієнта, якщо номер знайдено;
* призначати відповідального менеджера;
* створювати задачу або нагадування передзвонити;
* змінювати статус після передзвону;
* показувати, скільки часу минуло з моменту пропущеного дзвінка.
 
== Статуси пропущеного дзвінка ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Новий
| Дзвінок пропущено, реакції ще не було
|-
| В роботі
| Менеджер узяв дзвінок у роботу
|-
| Передзвонили
| Клієнту передзвонили
|-
| Не дозвонились
| Спроба передзвону була невдалою
|-
| Закрито
| Питання по дзвінку завершено
|}
 
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Критично.''' Пропущені вхідні дзвінки не повинні губитися. Система має показувати їх окремо і дозволяти контролювати факт передзвону.
</div>
 
== Записи розмов ==
 
Якщо телефонія надає записи розмов, система повинна зберігати посилання на них.
 
== Функції роботи із записами ==
 
Система повинна дозволяти:
 
* бачити, чи є запис у дзвінка;
* прослухати запис через HTML5 audio;
* обмежувати доступ до записів за правами;
* завантажити запис, якщо це дозволено;
* зберігати посилання на файл;
* показувати тривалість запису;
* фіксувати, хто прослуховував запис, опціонально.
 
== Результат дзвінка ==
 
Менеджер може вказати результат дзвінка.
 
== Приклади результатів ==
 
* консультація;
* успішний продаж;
* передзвонити пізніше;
* клієнт не зацікавлений;
* створено заявку;
* створено угоду;
* створено тікет підтримки;
* питання вирішено;
* потрібна ескалація.


==== Функціонал ====
== CRM-прив’язка ==


* імпорт даних дзвінків із системи телефонії:
Дзвінок може бути пов’язаний з об’єктами CRM.
** через API;
** через CDR-файли;
* автоматичне розпізнавання клієнта за номером телефону;
* можливість додати коментар або результат дзвінка.


=== 3. Аналітика і звіти ===
== Можливі прив’язки ==
Показники аналітики:


* кількість дзвінків за співробітником за період;
* клієнт;
* загальна тривалість дзвінків;
* контактна особа;
* вартість дзвінків — опціонально, якщо налаштовані тарифи;
* лід;
* середня тривалість розмови;
* угода;
* рівень відповіді на дзвінки — відповіді / спроби.
* замовлення;
* заявка;
* тікет HelpDesk;
* задача;
* рахунок.
 
== Пошук і фільтрація дзвінків ==


=== 4. Пошук і фільтрація дзвінків ===
Журнал дзвінків повинен мати зручні фільтри.


==== Параметри фільтрації ====
== Параметри фільтрації ==


* дата / період;
* дата або період;
* вхідні / вихідні;
* напрямок дзвінка;
* статус дзвінка;
* співробітник;
* співробітник;
* внутрішній номер;
* клієнт;
* клієнт;
* тривалість:
* номер телефону;
** від;
* тривалість від;
** до.
* тривалість до;
* наявність запису;
* результат дзвінка;
* пропущені дзвінки;
* дзвінки без прив’язки до клієнта.


Реалізація через AJAX без перезавантаження.
== Аналітика дзвінків ==


=== 5. Додаткові функції ===
Аналітика допомагає оцінювати роботу співробітників і якість обслуговування.


* прослуховування записів дзвінків прямо зі списку дзвінків;
== Основні показники ==
* прив'язка дзвінків до угод у CRM, якщо інтегровано;
 
* автоматичне оновлення статусів дзвінків через webhook з IP-телефонії;
* кількість вхідних дзвінків;
* реєстрація пропущених дзвінків із подальшим нагадуванням про необхідність передзвонити — опціонально.
* кількість вихідних дзвінків;
* кількість пропущених дзвінків;
* кількість успішних розмов;
* середня тривалість розмови;
* загальна тривалість дзвінків;
* рівень відповіді;
* кількість дзвінків по співробітниках;
* кількість дзвінків по клієнтах;
* кількість дзвінків без прив’язки до клієнта;
* вартість дзвінків, якщо налаштовані тарифи.
 
== Формула рівня відповіді ==
 
<pre>
Рівень відповіді = Кількість дзвінків з відповіддю / Загальна кількість вхідних дзвінків × 100%
</pre>
 
== Формула середньої тривалості ==
 
<pre>
Середня тривалість = Загальна тривалість розмов / Кількість розмов
</pre>
 
== Вартість дзвінків ==
 
Опціонально можна рахувати витрати на телефонію.
 
<pre>
Вартість дзвінка = Тривалість у хвилинах × Тариф за хвилину
</pre>
 
== Звіти ==
 
== Звіт «Дзвінки за період» ==
 
Звіт показує всі дзвінки за вибраний період.
 
У звіті потрібно відображати:
 
* дату;
* напрямок;
* клієнта;
* співробітника;
* номер телефону;
* статус;
* тривалість;
* наявність запису.
 
== Звіт «Ефективність співробітників» ==
 
Звіт показує телефонну активність працівників.
 
У звіті потрібно відображати:
 
* співробітника;
* кількість вхідних дзвінків;
* кількість вихідних дзвінків;
* кількість пропущених дзвінків;
* загальну тривалість;
* середню тривалість;
* рівень відповіді.
 
== Звіт «Пропущені дзвінки» ==
 
Звіт показує всі пропущені дзвінки.
 
У звіті потрібно відображати:
 
* дату і час;
* номер клієнта;
* клієнта, якщо визначено;
* відповідального менеджера;
* статус передзвону;
* час реакції;
* результат.
 
== Звіт «Дзвінки по клієнтах» ==
 
Звіт показує активність комунікацій із клієнтами.
 
У звіті потрібно відображати:
 
* клієнта;
* кількість дзвінків;
* останній дзвінок;
* відповідального менеджера;
* загальну тривалість;
* кількість пропущених дзвінків.
 
== Звіт «Вартість телефонії» ==
 
Якщо налаштовані тарифи, звіт показує витрати.
 
У звіті потрібно відображати:
 
* період;
* оператора;
* номер компанії;
* кількість дзвінків;
* загальну тривалість;
* суму витрат.
 
== AJAX-інтерактив ==
 
Інтерфейс має працювати швидко та зручно для менеджера, керівника і оператора.
 
Через AJAX мають працювати:
 
* фільтрація дзвінків;
* пошук номера;
* прив’язка дзвінка до клієнта;
* додавання коментаря;
* зміна результату дзвінка;
* прослуховування запису;
* оновлення статусу пропущеного дзвінка;
* створення задачі передзвонити;
* оновлення аналітики;
* оновлення звітів.
 
== Логування змін ==
 
Модуль повинен фіксувати важливі дії.
 
Журнал змін має зберігати:
 
* хто імпортував дзвінки;
* коли отримано дзвінок через API або webhook;
* хто вручну прив’язав дзвінок до клієнта;
* хто змінив результат дзвінка;
* хто додав коментар;
* хто прослухав запис, якщо це потрібно;
* хто змінив статус пропущеного дзвінка;
* хто створив задачу передзвонити;
* дату й час дії;
* старе та нове значення, якщо це можливо.
 
== Права доступу ==
 
Модуль має підтримувати розмежування прав.
 
{| class="wikitable" style="width:100%;"
! Роль
! Можливості
|-
| Менеджер
| Бачить свої дзвінки, додає коментарі, прив’язує клієнтів, обробляє пропущені дзвінки
|-
| Оператор кол-центру
| Працює з журналом дзвінків, результатами дзвінків і передзвонами
|-
| Керівник відділу
| Бачить дзвінки свого відділу, аналітику й звіти
|-
| Керівник компанії
| Бачить загальну статистику, звіти і якість обслуговування
|-
| Адміністратор телефонії
| Налаштовує внутрішні номери, імпорт, API, webhook, записи розмов
|-
| Адміністратор системи
| Налаштовує права доступу, довідники, службові параметри і інтеграції
|}


== Технічні вимоги ==
== Технічні вимоги ==
{| class="wikitable"
 
!Параметр
{| class="wikitable" style="width:100%;"
!Опис
! Параметр
! Опис
|-
| Бекенд
| K2 Cloud ERP на Python або PHP
|-
|-
|Бекенд
| База даних
|K2 Cloud ERP на Python або PHP
| PostgreSQL або MySQL
|-
|-
|БД
| Фронтенд
|PostgreSQL або MySQL
| HTML5, JavaScript
|-
|-
|Фронтенд
| AJAX
|HTML5, JavaScript, AJAX, Fetch API або Axios
| Fetch API або Axios
|-
|-
|UI-компоненти
| UI-компоненти
|DataTables для журналу дзвінків, Select2 для фільтрації
| DataTables для журналу дзвінків, Select2 для фільтрації
|-
|-
|Медіа
| Телефонія
|Підтримка потокового відтворення записів дзвінків через HTML5 audio
| SIP, Asterisk, FreePBX або інша IP-телефонія
|-
|-
|Друк
| Імпорт
|Генерація звітів у PDF або Excel, опціонально
| API, webhook, CDR або CSV
|-
| Медіа
| HTML5 audio для прослуховування записів розмов
|-
| Друк / експорт
| PDF або Excel для звітів, опціонально
|}
|}


== Критерії оцінки ==
== Рекомендовані сутності бази даних ==
{| class="wikitable"
 
!Критерій
Для реалізації задачі доцільно передбачити такі сутності:
!Бали
 
* клієнти;
* телефони клієнтів;
* співробітники;
* внутрішні номери;
* зовнішні номери компанії;
* дзвінки;
* статуси дзвінків;
* напрямки дзвінків;
* записи розмов;
* результати дзвінків;
* пропущені дзвінки;
* задачі передзвону;
* CRM-прив’язки;
* тарифи телефонії;
* імпорт CDR;
* webhook-події;
* аналітика;
* журнал змін;
* звіти;
* права доступу.
 
== Практичне завдання ==
 
У межах атестації потрібно продемонструвати робочий сценарій.
 
Мінімальний сценарій:
 
# створити клієнта з номером телефону;
# створити співробітника;
# створити внутрішній SIP-номер;
# створити зовнішній номер компанії;
# імпортувати кілька дзвінків через CDR або створити тестові записи;
# автоматично розпізнати клієнта за номером;
# прив’язати дзвінок до співробітника;
# додати дзвінок без відомого клієнта;
# вручну прив’язати невідомий дзвінок до клієнта;
# додати посилання на запис розмови;
# прослухати запис через інтерфейс;
# створити пропущений дзвінок;
# створити задачу передзвонити;
# змінити статус пропущеного дзвінка на '''«Передзвонили»''';
# додати результат дзвінка;
# відфільтрувати дзвінки за періодом;
# відфільтрувати дзвінки по співробітнику;
# сформувати звіт дзвінків за період;
# сформувати звіт ефективності співробітників;
# сформувати звіт пропущених дзвінків;
# сформувати звіт дзвінків по клієнтах;
# перевірити журнал змін.
 
== Критерії оцінювання ==
 
{| class="wikitable" style="width:100%;"
! Критерій
! Бали
! Що перевіряється
|-
| Реалізація бази клієнтів, співробітників і дзвінків
| 20
| Клієнти, телефони, співробітники, внутрішні номери, зовнішні номери, журнал дзвінків
|-
|-
|Реалізація бази клієнтів, співробітників і дзвінків
| Механізм імпорту дзвінків і прив’язки до клієнтів
|20
| 20
| CDR/API/webhook, нормалізація номерів, автоматичне розпізнавання клієнта, ручна прив’язка
|-
|-
|Механізм імпорту дзвінків і прив'язки до клієнтів
| Фільтрація і пошук дзвінків
|20
| 20
| Пошук за номером, клієнтом, співробітником, періодом, статусом, напрямком і тривалістю
|-
|-
|Фільтрація і пошук дзвінків
| Прослуховування записів розмов
|20
| 20
| Зберігання посилань, HTML5 audio, права доступу до записів, наявність запису в журналі
|-
|-
|Прослуховування записів розмов, за наявності
| Інтерактивність через AJAX і аналітика дзвінків
|20
| 20
| AJAX-фільтри, коментарі, результати дзвінків, пропущені дзвінки, аналітика й звіти
|-
|-
|Інтерактивність через AJAX і аналітика дзвінків
! Разом
|20
! 100
! Максимальна оцінка
|}
|}
== Шкала оцінювання ==
{| class="wikitable" style="width:100%;"
! Бали
! Рівень
! Опис
|-
| 90–100
| Відмінно
| Модуль повністю працює: клієнти, співробітники, SIP-номери, імпорт дзвінків, прив’язка до клієнтів, записи, пропущені дзвінки, аналітика й звіти реалізовані коректно
|-
| 75–89
| Добре
| Основна логіка працює, є незначні недоліки, які не руйнують процес обліку дзвінків
|-
| 60–74
| Зараховано
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
|-
| 0–59
| Не зараховано
| Відсутня критична логіка: журнал дзвінків, клієнти, співробітники, імпорт, прив’язка або аналітика
|}
== Критичні помилки ==
Критичними помилками вважаються ситуації, коли:
* неможливо створити клієнта;
* неможливо створити співробітника;
* неможливо створити внутрішній номер;
* неможливо зберегти дзвінок;
* імпорт CDR не створює записи дзвінків;
* дзвінки не мають дати й часу;
* дзвінки не мають напрямку;
* номер клієнта не нормалізується;
* клієнт не розпізнається за наявним номером;
* дзвінок не прив’язується до співробітника;
* пропущені дзвінки не відображаються окремо;
* статус пропущеного дзвінка не змінюється;
* записи розмов не відкриваються, якщо функція заявлена;
* користувач без прав може прослухати чужі записи;
* фільтри по дзвінках працюють неправильно;
* звіти не відповідають фактичним дзвінкам;
* зміни прив’язки, коментарів або статусів не логуються.
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл IP-телефонії: дзвінок → імпорт → розпізнавання клієнта → прив’язка до співробітника → запис у журналі → аналітика → звіт.
</div>
== Очікуваний результат ==
У результаті виконання атестаційного завдання має бути створений модуль обліку IP-телефонії в K2 ERP.
Модуль має підтримувати клієнтів, телефони клієнтів, співробітників, внутрішні SIP-номери, зовнішні номери компанії, журнал дзвінків, CDR/API/webhook-імпорт, автоматичне розпізнавання клієнтів, ручну прив’язку, записи розмов, пропущені дзвінки, задачі передзвону, CRM-прив’язки, аналітику, звіти, AJAX-інтерактив і логування змін.


== Примітка ==
== Примітка ==
Облік дзвінків через IP-телефонію — маст-хев для:


* сучасних CRM-систем;
Облік IP-телефонії потрібен CRM-системам, кол-центрам, відділам продажу, сервісним службам і технічній підтримці.
* кол-центрів;
 
* відділів продажу;
Такий модуль дозволяє контролювати якість комунікації з клієнтами, оцінювати ефективність менеджерів, швидко реагувати на пропущені дзвінки та зберігати повну історію телефонних контактів.
* відділів підтримки.
 
== Коротко ==
 
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Модуль обліку дзвінків IP-телефонії
|-
| Які довідники потрібні?
| Клієнти, телефони, співробітники, внутрішні номери, зовнішні номери
|-
| Який головний об’єкт?
| Дзвінок у журналі телефонії
|-
| Як дзвінки потрапляють у систему?
| Через API, webhook, CDR або CSV-імпорт
|-
| Що має робити система з номером клієнта?
| Нормалізувати номер і знайти клієнта в базі
|-
| Що важливо для пропущених дзвінків?
| Окремий контроль і задача передзвонити
|-
| Які звіти потрібні?
| Дзвінки за період, ефективність співробітників, пропущені дзвінки, дзвінки по клієнтах
|-
| Що є критичною вимогою?
| Кожен дзвінок має бути збережений, знайдений у журналі й доступний для аналізу
|}
 
== Див. також ==


Це дозволяє:
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[CRM]]
* [[HelpDesk]]
* [[IP-телефонія]]
* [[SIP]]
* [[Asterisk]]
* [[FreePBX]]
* [[Кол-центр]]
* [[Дзвінок]]
* [[Пропущений дзвінок]]
* [[Запис розмови]]
* [[AJAX]]


* оцінювати ефективність роботи менеджерів;
[[Категорія:K2 ERP]]
* контролювати якість обслуговування клієнтів.
[[Категорія:Атестаційні завдання K2]]
[[Категорія:IP-телефонія]]
[[Категорія:CRM]]
[[Категорія:Кол-центр]]
[[Категорія:HelpDesk]]
[[Категорія:Корпоративна Wiki]]