Є діюча CRM-система для автоматизації бізнесу з доставки води. CRM використовується для роботи з клієнтами, замовленнями, доставками, товарами, оплатами, менеджерами, кур'єрами та внутрішніми бізнес-процесами.
Потрібно розробити API для CRM-системи та підготувати архітектуру для зовнішніх інтеграцій.
Мета проєкту:
створити масштабовану систему інтеграцій, щоб у майбутньому CRM могла працювати з:
- платіжними системами;
- бухгалтерськими системами;
- сервісами податкових накладних;
- електронним документообігом;
- складським обліком;
- банківськими сервісами;
- SMS;
- Telegram;
- телефонією;
- іншими зовнішніми сервісами.
Важливо:
потрібно не просто “зашити” одну інтеграцію, а створити правильну API-архітектуру та інтеграційний шар для подальшого масштабування системи.
Архітектура, яка потрібна
Бажана логіка:
CRM → API CRM → інтеграційний шар → зовнішні сервіси.
Інтеграції не повинні бути жорстко вбудовані в CRM.
Потрібно зробити архітектуру так, щоб у майбутньому можна було окремо підключати:
- нові платіжні системи;
- нові бухгалтерські системи;
- складський облік;
- SMS;
- Telegram;
- інші сервіси без переробки ядра CRM.
Основні задачі
1. Технічний аудит CRM
Перед початком розробки потрібно:
- вивчити поточну CRM;
- визначити стек технологій;
- оцінити архітектуру;
- оцінити структуру бази даних;
- визначити поточні сутності;
- перевірити, чи є вже API;
- визначити слабкі місця;
- оцінити ризики;
- запропонувати оптимальну архітектуру API та інтеграційного шару.
2. Формування списку необхідної інформації
Після аналізу CRM виконавець має:
- визначити, якої інформації не вистачає;
- підготувати структурований список того, що потрібно від замовника;
- описати, які доступи та дані необхідні для реалізації API та інтеграцій.
3. Проєктування API CRM
Потрібно створити API для роботи з:
Клієнтами
- фізичні особи;
- юридичні особи;
- ПІБ / назва компанії;
- ЄДРПОУ / ІПН;
- контакти;
- адреси доставки;
- статус платника ПДВ.
Замовленнями
- номер замовлення;
- дата;
- товари;
- кількість;
- ціна;
- ПДВ;
- суми;
- статуси;
- доставка;
- відповідальні менеджери.
Товарами
- назва;
- артикул;
- ціна;
- одиниці виміру;
- ставки ПДВ;
- категорії.
Оплатами
- сума;
- статус;
- дата;
- спосіб оплати;
- ID транзакції;
- помилки платежу.
Документами
- рахунки;
- акти;
- видаткові накладні;
- податкові накладні;
- статуси документів;
- помилки;
- посилання на документи.
Складськими даними
- залишки;
- списання;
- рух товарів;
- повернення тари;
- складські статуси.
4. Реалізація API
Потрібно реалізувати або підготувати структуру REST API.
Бажано:
- версіонування API;
- JSON;
- стандартизовані відповіді;
- обробка помилок;
- логування;
- масштабована структура.
5. Webhooks та callback
CRM повинна:
## Відправляти події:
- client.created
- client.updated
- order.created
- order.updated
- order.paid
- order.cancelled
- order.delivered
- payment.created
- payment.success
- payment.failed
- document.created
- document.status_changed
- stock.updated
Приймати callback / webhook:
- успішна оплата;
- помилка оплати;
- створення документа;
- реєстрація документа;
- помилка документа;
- оновлення складських залишків;
- інші статуси.
6. Інтеграція з платіжними системами
API має бути підготовлене до інтеграцій з:
- LiqPay;
- ПриватБанк;
- WayForPay;
- Fondy;
- Stripe;
- іншими платіжними сервісами.
Логіка:
клієнт оплачує → платіжна система повертає callback → CRM оновлює статус замовлення та оплати.
7. Інтеграція з бухгалтерською системою
У результаті роботи має бути реалізована мінімум одна робоча інтеграція з бухгалтерською системою.
Бажаний варіант:
- Вчасно;
- або M.E.Doc;
- або BAS.
Фінальний вибір визначається після аналізу CRM та бізнес-процесів.
8. Що має працювати в першій інтеграції
Потрібно реалізувати мінімум:
- передачу клієнта;
- передачу замовлення;
- передачу товарів;
- передачу оплат;
- передачу статусу оплати;
- створення документа;
- отримання статусу документа;
- повернення статусу в CRM;
- логування помилок та успішних операцій.
Бажано:
- підтримка ПДВ;
- юридичних осіб;
- рахунків;
- видаткових накладних;
- податкових накладних.
9. Інтеграція зі складським обліком
API має бути підготовлене до майбутньої інтеграції зі складськими системами.
Потрібно передбачити:
- залишки;
- рух товарів;
- списання;
- повернення тари;
- оновлення залишків;
- синхронізацію складу.
10. Авторизація та безпека
Потрібно реалізувати:
- API-ключі або OAuth;
- окремі ключі для інтеграцій;
- ролі та права доступу;
- HTTPS;
- логування API-запитів;
- тестове та production-середовище;
- захист персональних даних;
- можливість відкликання API-ключів.
11. Документація
Потрібно підготувати:
- Swagger / OpenAPI документацію або Postman Collection;
- приклади запитів;
- приклади відповідей;
- опис помилок;
- опис webhook;
- інструкцію для підключення нових інтеграцій.
Важливі умови
Усі роботи мають виконуватись на тестовій копії CRM або staging-середовищі.
Production-система не повинна постраждати під час розробки.
Без погодження не можна:
- проводити реальні платежі;
- створювати реальні податкові накладні;
- відправляти реальні SMS або email;
- змінювати бойову базу даних.
Що потрібно від виконавця
При відповіді на проєкт прохання вказати:
- який досвід маєте зі створення API;
- досвід інтеграцій з CRM / ERP / SaaS;
- досвід інтеграцій з платіжними системами;
- досвід інтеграцій з BAS / M.E.Doc / Вчасно;
- яку архітектуру пропонуєте;
- яку бухгалтерську систему рекомендуєте для першої інтеграції та чому саме її;
- які дані потрібні для старту;
- орієнтовну оцінку по часу;
- орієнтовну вартість;
- можливі ризики;
- приклади схожих проєктів.
Що буде надано від замовника
Після аналізу CRM виконавець має сформувати список необхідної інформації.
- приклади клієнтів;
- приклади замовлень;
- приклади оплат;
- приклади товарів;
- приклади документів;
- опис бізнес-процесів;
Очікуваний результат
Після завершення роботи має бути:
- працююче API CRM;
- документація API;
- webhooks;
- callback-обробка;
- логування інтеграцій;
- тестові API-ключі;
- підготовлена архітектура для масштабування;
- мінімум одна працююча інтеграція з бухгалтерською системою;
- можливість подальшого підключення платіжних, складських та інших сервісів без переробки CRM.