Задача и моя работа.
Нужно было получать заказы из RetailCRM, приводить их к общей структуре, показывать сводку и уведомлять о заказах по заданному условию.
- Реализовал получение заказов через API с пагинацией и нормализацией полей.
- Настроил обновление записей в Supabase по идентификатору заказа из CRM.
- Собрал веб-дашборд и Телеграм-бота с подтверждением уведомлений.
- Разобрал ограничения API RetailCRM при загрузке заказов и сохранении дополнительных полей.
Ключевые решения.
Проверять сохранённые поля после записи в CRM.
При работе с API обнаружил, что дополнительные поля требуют предварительной настройки в RetailCRM. Успешный ответ на запрос ещё не подтверждал сохранение UTM. Разобрал причину и подготовил восстановление данных из исходной выгрузки.
Отделить заказ от события уведомления.
Заказы обновляются по CRM ID, а отправка и подтверждение уведомлений хранятся в отдельном журнале. Перед отправкой бот проверяет ранее созданные записи.
Как устроен процесс.
- Получить заказы из CRM
API возвращает страницы заказов. Поля приводятся к согласованной структуре.
- Обновить базу и аналитику
Данные записываются в Supabase и используются веб-дашбордом.
- Уведомить и подтвердить
Бот проверяет условие по сумме, журнал уведомлений и сохраняет подтверждение сотрудника.
Реализация и пример работы.
Схема демонстрационной интеграции. Показывает передачу заказов между CRM, базой данных, дашбордом и ботом.
СХЕМА РЕАЛИЗОВАННОЙ СИСТЕМЫ
- RetailCRM API
Заказы, статусы, состав, сумма и дополнительные поля.
- Python → Supabase
Получение страниц, нормализация и обновление по CRM ID.
- Веб-дашборд + Телеграм
Просмотр показателей, карточка заказа и подтверждение уведомления.
Архитектурная схема по проекту. Рабочие данные и подключения здесь не показаны.
Результат проекта.
Заказы из RetailCRM доступны в Supabase и веб-дашборде. Бот отправляет уведомления и сохраняет подтверждения пользователя отдельно от статуса заказа.
Технологии и детали реализации
Python, RetailCRM REST API, Supabase/PostgreSQL, JavaScript/Chart.js, Vercel и Телеграм Bot API. В интеграции предусмотрены пагинация, таймауты и обработка ограничений API.
Обсудим вашу задачу.
Укажите CRM, сервисы для обмена, нужные поля и событие, которое должно запускать процесс. Проверим возможности API и состав интеграции.
Обсудить интеграцию CRM ↗