Синхронизация контактов CRM с рассылкой
База для рассылок обновляется из CRM сама, с защитой от дублей и понятными ошибками.
Задача
Базу для email-рассылок собирали руками: выгружали контакты из CRM, чистили и заливали в сервис рассылок. Отставала от реальности на недели, дубли копились.
Что сделал
- Скрипт забирает контакты из CRM и раскладывает их по спискам сервиса рассылок
- Добавил обязательные поля и защиту от повторной отправки одного и того же контакта
- Обработал ограничения API: пакетная отправка, лимиты, повтор при ошибке
- Логи: при сбое видно, на каком контакте остановились и что вернул сервис
Результат
База обновляется без ручной работы. Если сервис недоступен, следующий запуск продолжает с места сбоя, а не начинает заново.
Что оказалось важно в API рассылки
Метод ждёт не просто массив контактов, а три отдельные структуры: список полей, строки данных и идентификаторы списков, в которые их добавить. Если передать «как удобно», запрос выглядит успешным, но ничего не добавляет.