ТЕХНІЧНЕ ЗАВДАННЯ (ТЗ)
Інтеграція облікової системи з платформою InBoost
1. Мета інтеграції
Автоматизувати обмін даними між обліковою системою компанії та платформою InBoost для:
- ведення клієнтської бази
- роботи бонусної програми
- передачі подій покупок
- уникнення дублювання даних
- контролю коректності синхронізації
2. Синхронізація клієнтів
2.1 Логіка роботи
1. Система повинна періодично виконувати пошук клієнтів у InBoost.
2. Якщо клієнт існує у InBoost, але відсутній в обліковій системі — необхідно створити клієнта в обліковій системі.
3. Якщо клієнт існує в обох системах:
- передати історію покупок за останні 3 місяці (без дублювання);
- передати актуальний баланс бонусів.
2.2 Ідентифікація клієнтів
Ідентифікація клієнтів виконується за номером телефону.
3. Бонусна програма
3.1 Оновлення бонусів
При зміні балансу бонусів в обліковій системі необхідно:
- відправляти нову кількість бонусів у InBoost
- використовувати API InBoost
Передача повинна виконуватися при кожній зміні бонусного балансу.
4. Нарахування бонусів
При нарахуванні бонусів система повинна:
- відправляти код нарахування бонусів на Webhook InBoost.
Вимоги:
- реалізувати захист від дублювання
- код нарахування передається лише один раз.
5. Списання бонусів
При списанні бонусів система повинна:
- відправляти код списання бонусів на Webhook InBoost.
Вимоги:
- реалізувати захист від дублювання
- код списання передається лише один раз.
6. Події після покупки
Після здійснення покупки необхідно:
1. відправити подію покупки на Webhook InBoost;
2. виконати окремий API-запит із деталями покупки.
Вимоги:
- подія передається лише один раз
- дублювання подій не допускається.
7. Інформування про згорання бонусів
Система повинна:
1. сформувати список клієнтів, у яких бонуси скоро згорять;
2. сформувати один webhook-запит;
3. передати перелік номерів телефонів клієнтів.
8. Дані клієнта (мапінг полів)
При створенні або оновленні клієнта необхідно зберігати:
- номер телефону
- ім’я
- прізвище
- дата народження
- джерело залучення
- спеціальність
9. Технічні вимоги
Інтеграція повинна використовувати:
- REST API InBoost
- Webhook події.
10. Логування
Необхідно реалізувати:
- логування всіх API-запитів
- логування помилок
- логування випадків дублювання подій.
11. Захист від дублювання
Для наступних подій має використовуватись унікальний ID події:
- покупки
- нарахування бонусів
- списання бонусів
Це необхідно для уникнення повторної обробки подій.
12. Періодичність синхронізації
Рекомендована частота роботи системи:
- синхронізація клієнтів — кожні 10–30 хвилин
- передача бонусів — у реальному часі
- передача подій покупок — у реальному часі.
13. Очікуваний результат
Після реалізації інтеграції повинно бути забезпечено:
- автоматичну синхронізацію клієнтів
- коректну роботу бонусної програми
- передачу подій покупок у систему
- відсутність дублювання даних
- стабільну інтеграцію між системами.