Существует действующая 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.