Коннектор Iterable

Подключите платформу growth-маркетинга Iterable к Brevo для единого вовлечения клиентов, координации кросс-канальных кампаний и консолидированной аналитики по маркетинговым инструментам.

Обзор

СвойствоЗначение
ПлатформаIterable
КатегорияMarketing
Сложность настройкиСредняя
Официальная интеграцияНет
Синхронизируемые данныеПользователи, события, кампании, каталоги
Тип APIREST API
АутентификацияAPI Key
Базовый URLhttps://api.iterable.com/api/

Возможности

  • Синхронизация профилей пользователей, двунаправленная синхронизация данных пользователей с контактами Brevo
  • Аналитика кампаний, синхронизация метрик отправки, открытий и кликов кампаний для единой отчётности
  • Данные экспериментов, отслеживание результатов A/B-тестов и выигрышных вариантов
  • Синхронизация каталога, синхронизация каталогов товаров и контента между платформами
  • События рабочих процессов, пересылка событий триггеров и завершений рабочих процессов в Brevo
  • Синхронизация предпочтений каналов, репликация коммуникационных предпочтений пользователей в Brevo

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

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

  1. Аккаунт Iterable с доступом к API
  2. API-ключ Iterable с необходимыми разрешениями
  3. ID вашего проекта Iterable
  4. Аккаунт Brevo с доступом к API
  5. Аккаунт Tajo с активной подпиской

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

Iterable использует аутентификацию по API-ключу, передаваемому в заголовке запроса.

Создание API Key

  1. Войдите в дашборд Iterable
  2. Перейдите в Integrations > API Keys
  3. Нажмите New API Key
  4. Назовите его “Tajo Integration”
  5. Выберите тип ключа Server-side
  6. Предоставьте следующие разрешения:
Users: Read/Write
Events: Read/Write
Campaigns: Read
Lists: Read/Write
Catalogs: Read
Experiments: Read
Workflows: Read
Templates: Read
Channels: Read
Message Types: Read

Тип ключа имеет значение

Всегда используйте Server-side API-ключ для интеграции с Tajo. Мобильные и JavaScript-ключи имеют ограниченные разрешения и не могут получить доступ ко всем необходимым эндпоинтам.

Подключение к Tajo

Terminal window
tajo connectors install iterable \
--api-key $ITERABLE_API_KEY

Конфигурация

Базовая настройка

connectors:
iterable:
enabled: true
sync:
users: true
events: true
campaigns: true
catalogs: true
experiments: true
lists:
all_users: 16
engaged_users: 17
inactive_users: 18

Сопоставление полей

Сопоставьте поля пользователей Iterable с атрибутами контактов Brevo:

field_mapping:
# Стандартные поля
userId: ITERABLE_ID
email: email
firstName: FIRSTNAME
lastName: LASTNAME
phoneNumber: SMS
# Данные вовлечённости
signupDate: SIGNUP_DATE
totalPurchases: TOTAL_PURCHASES
lastPurchaseDate: LAST_PURCHASE
# Пользовательские поля
plan_name: PLAN_NAME
company_size: COMPANY_SIZE
preferred_channel: PREFERRED_CHANNEL
lifecycle_stage: LIFECYCLE_STAGE

Конфигурация событий

event_mapping:
# Событие Iterable -> Событие Brevo
purchase: ORDER_PLACED
addToCart: CART_UPDATED
pageView: PAGE_VIEWED
appOpen: APP_OPENED
pushOpen: PUSH_ENGAGED

Эндпоинты API

Tajo интегрируется со следующими эндпоинтами Iterable API:

ЭндпоинтМетодНазначение
/users/updatePOSTОбновление профилей пользователей
/users/{email}GETПолучить пользователя по email
/users/bulkUpdatePOSTПакетное обновление пользователей
/events/trackPOSTТрекинг пользовательских событий
/events/trackBulkPOSTПакетный трекинг событий
/campaignsGETСписок всех кампаний
/campaigns/metricsGETДанные об эффективности кампаний
/experiments/metricsGETРезультаты экспериментов
/listsGETСписок всех пользовательских списков
/lists/subscribePOSTДобавление пользователей в список
/lists/unsubscribePOSTУдаление пользователей из списка
/catalogs/{catalogName}/itemsGETПолучение элементов каталога
/channelsGETСписок каналов рассылок
/export/data.jsonGETЭкспорт сырых данных событий

Примеры кода

Инициализация коннектора

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('iterable', {
apiKey: process.env.ITERABLE_API_KEY
});

Синхронизация пользователей

// Инкрементальная синхронизация пользователей Iterable в Brevo
await tajo.connectors.sync('iterable', {
type: 'incremental',
resources: ['users'],
since: '2024-01-01',
batchSize: 50
});
const status = await tajo.connectors.status('iterable');
console.log(status);
// {
// connected: true,
// lastSync: '2024-03-15T09:45:00Z',
// usersCount: 58700,
// campaignsTracked: 42,
// eventsProcessed: 210000
// }

Трекинг событий

// Пересылка событий Iterable в Brevo
await tajo.connectors.handleEvent('iterable', {
type: 'custom_event',
payload: {
eventName: 'subscription_upgraded',
dataFields: {
previousPlan: 'starter',
newPlan: 'pro',
mrr: 99.00
}
}
});

Обработчик вебхуков

// Обработка системных вебхуков Iterable
app.post('/webhooks/iterable', async (req, res) => {
const event = req.body;
await tajo.connectors.handleWebhook('iterable', {
type: event.eventName,
payload: event
});
res.status(200).send('OK');
});

Ограничения скорости

Iterable устанавливает ограничения скорости в зависимости от плана:

ПланЛимитЛимит для bulk-эндпоинтов
Growth500 запросов/сек500 запросов/сек
EnterpriseИндивидуальныйИндивидуальный

Ограничения для конкретных эндпоинтов:

ЭндпоинтЛимит
/users/update500 запр/сек
/users/bulkUpdate500 запр/сек (1 000 пользователей в запросе)
/events/track500 запр/сек
/events/trackBulk500 запр/сек (8 000 событий в запросе)
/export/data.json4 параллельных запроса

Bulk-эндпоинты

Tajo автоматически группирует обновления пользователей (до 1 000 в вызове) и трекинг событий (до 8 000 в вызове) для максимальной пропускной способности в пределах лимитов.

Устранение неполадок

Частые проблемы

ПроблемаПричинаРешение
401 UnauthorizedНедействительный API-ключПроверьте ключ в Iterable > Integrations > API Keys
Пользователи не синхронизируютсяНесоответствие типа ключаУбедитесь, что используется Server-side API-ключ
Отсутствуют данные кампанииНедостаточно разрешенийДобавьте разрешение Campaigns Read к API-ключу
Таймаут экспортаБольшой объём данныхИспользуйте фильтры диапазона дат для уменьшения объёма экспорта
Дублирующиеся пользователиНесогласованные идентификаторыПоследовательно используйте email как основной идентификатор

Режим отладки

connectors:
iterable:
debug: true
log_level: verbose
log_api_calls: true

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

Terminal window
tajo connectors test iterable
# ✓ API connection successful
# ✓ User data accessible
# ✓ Campaign list readable
# ✓ Event tracking operational
# ✓ List management available

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

  1. Используйте bulk-эндпоинты, всегда предпочитайте bulkUpdate и trackBulk для больших объёмов данных
  2. Дедуплицируйте по email, используйте email как согласованный идентификатор в Iterable и Brevo
  3. Синхронизируйте инкрементально, используйте диапазоны дат во избежание повторной обработки исторических данных
  4. Маппируйте предпочтения каналов, синхронизируйте статусы подписки для соблюдения требований
  5. Мониторьте задания экспорта, крупные экспорты могут занимать время; настройте опрос статуса
  6. Тестируйте на не-продакшн проекте, проверяйте маппинги перед синхронизацией продакшн-данных

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

  • Аутентификация по API Key, Server-side ключи с гранулярными разрешениями
  • Только HTTPS, все API-коммуникации зашифрованы через TLS 1.2+
  • Ротация ключей, поддержка нескольких активных API-ключей во время ротации
  • Зашифрованное хранение, API-учётные данные зашифрованы при хранении в Tajo
  • JWT-подписи вебхуков, полезные нагрузки вебхуков подписаны JWT для верификации

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

Subscribe to updates

developer-docs

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

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

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