Коннектор Mailchimp
Подключите аккаунт Mailchimp к Brevo через Tajo для бесшовной миграции аудиторий, синхронизации данных кампаний и унифицированной маркетинговой автоматизации на обеих платформах.
Обзор
| Свойство | Значение |
|---|---|
| Платформа | Mailchimp |
| Категория | Marketing |
| Сложность настройки | Простая |
| Официальная интеграция | Да |
| Синхронизируемые данные | Контакты, кампании, автоматизации, события |
| Базовый URL API | https://{dc}.api.mailchimp.com/3.0 |
Возможности
- Синхронизация аудиторий, миграция и синхронизация аудиторий Mailchimp со списками контактов Brevo
- Данные кампаний, синхронизация данных эффективности кампаний для единой отчётности
- Миграция автоматизаций, маппинг автоматизаций Mailchimp на рабочие процессы Brevo
- Метрики вовлечённости, синхронизация открытий, кликов и данных об отказах в атрибуты Brevo
- Маппинг сегментов, репликация сегментов Mailchimp как списков или сегментов Brevo
- Данные e-commerce, синхронизация магазина, товаров и данных заказов из e-commerce Mailchimp
- Синхронизация тегов, маппинг тегов Mailchimp в атрибуты или списки контактов Brevo
- Миграция шаблонов, экспорт шаблонов Mailchimp для использования в кампаниях Brevo
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Аккаунт Mailchimp (Free, Essentials, Standard или Premium)
- API-ключ Mailchimp или OAuth-приложение
- Аккаунт Brevo с доступом к API
- Аккаунт Tajo
Аутентификация
Аутентификация по API Key
Сгенерируйте API-ключ в Mailchimp Account > Extras > API Keys.
curl https://{dc}.api.mailchimp.com/3.0/ping \ --user "anystring:{api_key}" \ -H "Content-Type: application/json"Префикс {dc} дата-центра, это последняя часть вашего API-ключа (например, us21).
OAuth 2.0
Для интеграций с несколькими аккаунтами:
# URL авторизацииhttps://login.mailchimp.com/oauth2/authorize? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}
# Обмен токенаcurl -X POST https://login.mailchimp.com/oauth2/token \ -d "grant_type=authorization_code" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "redirect_uri={redirect_uri}" \ -d "code={auth_code}"Дата-центр
Всегда извлекайте дата-центр из вашего API-ключа или эндпоинта метаданных OAuth. Использование неверного дата-центра приведёт к ошибкам аутентификации.
Конфигурация
Базовая настройка
connectors: mailchimp: enabled: true api_key: "${MAILCHIMP_API_KEY}" data_center: "us21"
# Параметры синхронизации данных sync: audiences: true campaigns: true automations: true ecommerce: true
# Сопоставление аудиторий со списками Brevo audience_mapping: "Main Audience": 40 "Newsletter": 41 "Customers": 42Сопоставление полей
Сопоставьте поля слияния Mailchimp с атрибутами контактов Brevo:
Сопоставления по умолчанию
| Parameter | Type | Description |
|---|---|---|
email_address required | string | Email подписчика (уникальный идентификатор) |
FNAME optional | string | Поле слияния имени, сопоставляется с FIRSTNAME |
LNAME optional | string | Поле слияния фамилии, сопоставляется с LASTNAME |
PHONE optional | string | Поле слияния телефона, сопоставляется с SMS |
status optional | string | Статус подписки (subscribed, unsubscribed, cleaned, pending) |
tags optional | array | Теги подписчика для сегментации |
stats.avg_open_rate optional | number | Средний показатель открытий email |
stats.avg_click_rate optional | number | Средний показатель кликов по email |
Сопоставление пользовательских полей слияния
field_mapping: # Стандартные поля email_address: email FNAME: FIRSTNAME LNAME: LASTNAME PHONE: SMS
# Метрики вовлечённости stats.avg_open_rate: AVG_OPEN_RATE stats.avg_click_rate: AVG_CLICK_RATE member_rating: ENGAGEMENT_SCORE
# Поля e-commerce ecommerce_data.total_revenue: TOTAL_REVENUE ecommerce_data.number_of_orders: ORDER_COUNT
# Пользовательские поля слияния MMERGE5: COMPANY_NAME MMERGE6: CUSTOMER_TYPEЭндпоинты API
Аудитории (списки)
| Метод | Эндпоинт | Описание |
|---|---|---|
GET | /3.0/lists | Список всех аудиторий |
GET | /3.0/lists/{list_id} | Детали аудитории |
GET | /3.0/lists/{list_id}/members | Участники аудитории |
POST | /3.0/lists/{list_id}/members | Добавление участника |
PUT | /3.0/lists/{list_id}/members/{hash} | Обновление участника |
POST | /3.0/lists/{list_id} | Пакетная подписка/отписка |
Кампании
| Метод | Эндпоинт | Описание |
|---|---|---|
GET | /3.0/campaigns | Список кампаний |
GET | /3.0/campaigns/{id} | Детали кампании |
GET | /3.0/reports/{id} | Отчёт по кампании |
GET | /3.0/reports/{id}/email-activity | Активность по email |
Автоматизации
| Метод | Эндпоинт | Описание |
|---|---|---|
GET | /3.0/automations | Список автоматизаций |
GET | /3.0/automations/{id} | Детали автоматизации |
GET | /3.0/automations/{id}/emails | Список email автоматизации |
E-commerce
| Метод | Эндпоинт | Описание |
|---|---|---|
GET | /3.0/ecommerce/stores | Список подключённых магазинов |
GET | /3.0/ecommerce/stores/{id}/customers | Клиенты магазина |
GET | /3.0/ecommerce/stores/{id}/orders | Заказы магазина |
GET | /3.0/ecommerce/stores/{id}/products | Товары магазина |
События
События кампаний
| Событие | Триггер | Сценарий использования |
|---|---|---|
campaign.sent | Кампания доставлена | Отслеживание эффективности |
campaign.opened | Email открыт | Скоринг вовлечённости |
campaign.clicked | Кликнута ссылка | Отслеживание интереса |
campaign.bounced | Email отклонён | Гигиена списков |
События подписчиков
| Событие | Триггер | Сценарий использования |
|---|---|---|
subscribe | Добавлен новый подписчик | Приветственный поток |
unsubscribe | Подписчик отписался | Управление предпочтениями |
profile | Профиль обновлён | Синхронизация атрибутов |
cleaned | Email очищен (отклонён) | Обслуживание списков |
События e-commerce
| Событие | Триггер | Сценарий использования |
|---|---|---|
ecommerce.order | Оформлен заказ | Постпокупочный поток |
ecommerce.cart | Обновлена корзина | Восстановление брошенной корзины |
Примеры кода
Инициализация коннектора
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Подключение Mailchimpawait tajo.connectors.connect('mailchimp', { apiKey: process.env.MAILCHIMP_API_KEY});Миграция аудиторий в Brevo
// Полная миграция аудиторий из Mailchimp в Brevoawait tajo.connectors.sync('mailchimp', { type: 'full', resources: ['audiences', 'campaigns', 'ecommerce'], options: { preserveTags: true, migrateSegments: true, includeUnsubscribed: false }});
// Проверка статуса миграцииconst status = await tajo.connectors.status('mailchimp');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 52000,// campaignsSynced: 245,// segmentsMapped: 18// }Синхронизация данных вовлечённости кампаний
// Синхронизация эффективности кампаний с атрибутами Brevoawait tajo.connectors.sync('mailchimp', { type: 'incremental', resources: ['campaigns'], options: { syncEngagement: true, updateContactMetrics: true, since: '2024-01-01' }});Ограничения скорости
Ограничения скорости Mailchimp Marketing API:
| Тип | Лимит | Детали |
|---|---|---|
| Стандартный | 10 параллельных запросов | На API-ключ |
| Пакетные операции | 500 операций в пакете | На запрос |
| Лимит экспорта | 1 параллельный экспорт | На аккаунт |
| Транзакционный | 25 запросов/сек | На API-ключ |
Стратегия ограничений скорости
Mailchimp ограничивает параллельные соединения, а не запросы в секунду. Используйте batch-эндпоинты и реализуйте логику повторных попыток с экспоненциальной задержкой при ответах 429.
Устранение неполадок
Частые проблемы
| Проблема | Причина | Решение |
|---|---|---|
| 401 Unauthorized | Недействительный API-ключ или неверный дата-центр | Проверьте API-ключ и извлеките правильный префикс dc |
| Участник уже существует | Email уже в аудитории | Используйте PUT вместо POST для обновления существующих участников |
| Состояние соответствия | Удаление по GDPR не позволяет повторно добавить | Контакт должен повторно подписаться через форму регистрации |
| Таймаут пакета | Большая пакетная операция | Разбейте на меньшие пакеты по 500 операций |
| Отсутствующие поля слияния | Пользовательские поля не созданы | Создайте поля слияния в Mailchimp перед маппингом |
Режим отладки
Включение подробного логирования:
connectors: mailchimp: debug: true log_level: verbose log_api_calls: trueПроверка подключения
tajo connectors test mailchimp# ✓ API connection successful# ✓ Audiences readable# ✓ Campaigns readable# ✓ E-commerce data accessible# ✓ Webhook configuredЛучшие практики
- Используйте пакетные операции, применяйте batch-подписку/отписку для массовых обновлений
- Сохраняйте статус подписчика, уважайте согласие на подписку при миграции
- Сначала маппируйте поля слияния, создайте соответствующие атрибуты Brevo перед синхронизацией
- Синхронизируйте данные вовлечённости, импортируйте показатели открытий/кликов для исторической сегментации
- Обрабатывайте состояния соответствия, соблюдайте состояния GDPR и постоянного удаления
- Используйте инкрементальную синхронизацию, синхронизируйте только изменения с момента последней синхронизации для экономии API-вызовов
Безопасность
- Аутентификация по API Key, секретный ключ передаётся как пароль HTTP Basic Auth
- OAuth 2.0, авторизация на основе токенов для доступа к нескольким аккаунтам
- TLS-шифрование, все API-коммуникации зашифрованы через HTTPS
- Верификация вебхуков, валидация источника вебхука с помощью общего секрета
- Изоляция дата-центра, данные хранятся в региональных дата-центрах