Задание: Python. интеграция amoCRM → Яндекс Диск (Дистанционная работа)
ТЗ: интеграция amoCRM → Яндекс Диск Ищу разработчика с опытом amoCRM API/Webhook, Python/FastAPI и Yandex Disk API. Необходимо разработать надёжную интеграцию между amoCRM и Яндекс Диском. 1. Создание папки при создании сделки При создании новой сделки в amoCRM создавать папку: /Дела в работе/{Название сделки} Название папки должно точно совпадать с названием сделки в amoCRM. Если такая папка уже существует — повторно её не создавать. 2. Перевод сделки в «Возврат страховки досудебный» Отслеживать перевод существующей сделки из: Воронка продаж — ID 6970574 Продажи ИНСТ — ID 11239058 в: Возврат страховки досудебный — ID 6970694 При таком переходе необходимо создать новую папку с названием сделки: /Дела в работе/{Название сделки} Важно: при этом не нужно перемещать уже существующую папку — именно создать папку в «Дела в работе». Если папка уже существует, повторно её не создавать. 3. Завершение сделки При переходе сделки в статусы: «Успешно реализовано» «Закрыто без результата» соответствующую папку необходимо переместить: /Дела в работе/{Название сделки} → /Завершенные дела/{Название сделки} Если папка уже находится в «Завершенные дела», повторное перемещение выполнять не нужно. 4. Повторные Webhook Один переход в amoCRM может вызвать несколько одинаковых webhook-событий. Необходимо реализовать идемпотентную обработку: не создавать дубли папок; не выдавать ошибку при повторном событии; не перемещать папку повторно; корректно обрабатывать повторную доставку одного webhook. 5. Работа с amoCRM Сервис должен: Получать webhook от amoCRM. Определять ID сделки. При необходимости получать актуальные данные сделки через amoCRM API. Получать название сделки. Определять воронку/статус. Выполнять соответствующее действие с папкой на Яндекс Диске. 6. Работа с Яндекс Диском Использовать Yandex Disk API. Необходимые операции: создание папки; проверка существования; перемещение папки; обработка уже существующей папки; обработка уже выполненного перемещения. 7. Ошибки и логирование Предусмотреть обработку: повторных webhook; отсутствия сделки; отсутствия папки; уже выполненного действия; ошибок amoCRM API; ошибок Yandex Disk API; ошибок авторизации. Ошибки должны записываться в понятный лог. 8. Технические требования Предпочтительно: Python 3.x FastAPI REST API Webhook amoCRM API Yandex Disk API Архитектура должна позволять в дальнейшем добавлять новые воронки, статусы и действия без полной переработки системы. 9. Что необходимо передать полностью рабочий исходный код; настроенную интеграцию; настройку webhook; безопасное хранение токенов/ключей через переменные окружения; инструкцию по запуску и обслуживанию; инструкцию по просмотру логов; инструкцию по изменению ID воронок/статусов; результаты тестирования. 10. Обязательно протестировать: Создание новой сделки → создание папки в «Дела в работе». Воронка продаж (6970574) → Возврат страховки досудебный (6970694) → создание папки. Продажи ИНСТ (11239058) → Возврат страховки досудебный (6970694) → создание папки. «Успешно реализовано» → перемещение папки в «Завершенные дела». «Закрыто без результата» → перемещение папки в «Завершенные дела». Повторный одинаковый webhook → отсутствие дублей и ошибок. В отклике прошу указать: опыт с amoCRM API/Webhook; опыт с Yandex Disk API; опыт Python/FastAPI; как будет реализована защита от повторных webhook; стоимость и срок; какие доступы понадобятся; примеры аналогичных интеграций. Исходный код и все разработанные компоненты должны быть переданы заказчику.