Коннектор Mailchimp

Подключите аккаунт Mailchimp к Brevo через Tajo для бесшовной миграции аудиторий, синхронизации данных кампаний и унифицированной маркетинговой автоматизации на обеих платформах.

Обзор

СвойствоЗначение
ПлатформаMailchimp
КатегорияMarketing
Сложность настройкиПростая
Официальная интеграцияДа
Синхронизируемые данныеКонтакты, кампании, автоматизации, события
Базовый URL APIhttps://{dc}.api.mailchimp.com/3.0

Возможности

  • Синхронизация аудиторий, миграция и синхронизация аудиторий Mailchimp со списками контактов Brevo
  • Данные кампаний, синхронизация данных эффективности кампаний для единой отчётности
  • Миграция автоматизаций, маппинг автоматизаций Mailchimp на рабочие процессы Brevo
  • Метрики вовлечённости, синхронизация открытий, кликов и данных об отказах в атрибуты Brevo
  • Маппинг сегментов, репликация сегментов Mailchimp как списков или сегментов Brevo
  • Данные e-commerce, синхронизация магазина, товаров и данных заказов из e-commerce Mailchimp
  • Синхронизация тегов, маппинг тегов Mailchimp в атрибуты или списки контактов Brevo
  • Миграция шаблонов, экспорт шаблонов Mailchimp для использования в кампаниях Brevo

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  1. Аккаунт Mailchimp (Free, Essentials, Standard или Premium)
  2. API-ключ Mailchimp или OAuth-приложение
  3. Аккаунт Brevo с доступом к API
  4. Аккаунт Tajo

Аутентификация

Аутентификация по API Key

Сгенерируйте API-ключ в Mailchimp Account > Extras > API Keys.

Terminal window
curl https://{dc}.api.mailchimp.com/3.0/ping \
--user "anystring:{api_key}" \
-H "Content-Type: application/json"

Префикс {dc} дата-центра, это последняя часть вашего API-ключа (например, us21).

OAuth 2.0

Для интеграций с несколькими аккаунтами:

Terminal window
# 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.openedEmail открытСкоринг вовлечённости
campaign.clickedКликнута ссылкаОтслеживание интереса
campaign.bouncedEmail отклонёнГигиена списков

События подписчиков

СобытиеТриггерСценарий использования
subscribeДобавлен новый подписчикПриветственный поток
unsubscribeПодписчик отписалсяУправление предпочтениями
profileПрофиль обновлёнСинхронизация атрибутов
cleanedEmail очищен (отклонён)Обслуживание списков

События 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
});
// Подключение Mailchimp
await tajo.connectors.connect('mailchimp', {
apiKey: process.env.MAILCHIMP_API_KEY
});

Миграция аудиторий в Brevo

// Полная миграция аудиторий из Mailchimp в Brevo
await 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
// }

Синхронизация данных вовлечённости кампаний

// Синхронизация эффективности кампаний с атрибутами Brevo
await 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

Проверка подключения

Terminal window
tajo connectors test mailchimp
# ✓ API connection successful
# ✓ Audiences readable
# ✓ Campaigns readable
# ✓ E-commerce data accessible
# ✓ Webhook configured

Лучшие практики

  1. Используйте пакетные операции, применяйте batch-подписку/отписку для массовых обновлений
  2. Сохраняйте статус подписчика, уважайте согласие на подписку при миграции
  3. Сначала маппируйте поля слияния, создайте соответствующие атрибуты Brevo перед синхронизацией
  4. Синхронизируйте данные вовлечённости, импортируйте показатели открытий/кликов для исторической сегментации
  5. Обрабатывайте состояния соответствия, соблюдайте состояния GDPR и постоянного удаления
  6. Используйте инкрементальную синхронизацию, синхронизируйте только изменения с момента последней синхронизации для экономии API-вызовов

Безопасность

  • Аутентификация по API Key, секретный ключ передаётся как пароль HTTP Basic Auth
  • OAuth 2.0, авторизация на основе токенов для доступа к нескольким аккаунтам
  • TLS-шифрование, все API-коммуникации зашифрованы через HTTPS
  • Верификация вебхуков, валидация источника вебхука с помощью общего секрета
  • Изоляция дата-центра, данные хранятся в региональных дата-центрах

Связанные ресурсы

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-ассистент

Привет! Спрашивайте меня о документации.