Коннектор Salesforce

Коннектор Salesforce

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

Обзор

СвойствоЗначение
ПлатформаSalesforce
КатегорияCRM
Сложность настройкиПродвинутая
Официальная интеграцияДа
Синхронизируемые данныеКонтакты, лиды, аккаунты, возможности, события
Базовый URL APIhttps://yourInstance.salesforce.com/services/data/vXX.0

Возможности

  • Двусторонняя синхронизация контактов/лидов, синхронизация контактов и лидов Salesforce со списками контактов Brevo
  • Отслеживание возможностей, сопоставляйте стадии сделок и суммы для сегментации по выручке
  • Иерархия аккаунтов, синхронизируйте компании-аккаунты для account-based маркетинга в Brevo
  • Сопоставление кастомных объектов, сопоставляйте кастомные объекты Salesforce с атрибутами и событиями Brevo
  • Синхронизация участников кампаний, синхронизируйте участников кампаний Salesforce со списками Brevo
  • Отслеживание активности, синхронизируйте задачи, события и email-активности для оценки вовлечённости
  • Стриминг в реальном времени, используйте Salesforce Streaming API для мгновенных обновлений данных
  • Поддержка SOQL-запросов, фильтруйте синхронизируемые данные кастомными SOQL-запросами

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

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

  1. Salesforce org (любой edition с доступом к API)
  2. Connected App, настроенное в Salesforce Setup
  3. Включённый API-доступ для профиля пользователя Salesforce
  4. Аккаунт Brevo с доступом к API
  5. Аккаунт Tajo

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

OAuth 2.0 Web Server Flow (рекомендуется)

Лучший вариант для продакшен-интеграций с авторизацией пользователя.

Terminal window
# Step 1: Authorize
https://login.salesforce.com/services/oauth2/authorize?
response_type=code&
client_id={consumer_key}&
redirect_uri={callback_url}
# Step 2: Exchange code for tokens
curl -X POST https://login.salesforce.com/services/oauth2/token \
-d "grant_type=authorization_code" \
-d "code={auth_code}" \
-d "client_id={consumer_key}" \
-d "client_secret={consumer_secret}" \
-d "redirect_uri={callback_url}"

Username-Password Flow

Для интеграций server-to-server без участия пользователя.

Terminal window
curl -X POST https://login.salesforce.com/services/oauth2/token \
-d "grant_type=password" \
-d "client_id={consumer_key}" \
-d "client_secret={consumer_secret}" \
-d "username={username}" \
-d "password={password}{security_token}"

Security Token

Salesforce требует добавлять security token к паролю для username-password flow. Сбросьте токен в Setup > My Personal Information > Reset My Security Token.

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

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

connectors:
salesforce:
enabled: true
instance_url: "https://yourorg.my.salesforce.com"
api_version: "v59.0"
auth:
type: oauth2
consumer_key: "${SF_CONSUMER_KEY}"
consumer_secret: "${SF_CONSUMER_SECRET}"
refresh_token: "${SF_REFRESH_TOKEN}"
# Data sync options
sync:
contacts: true
leads: true
accounts: true
opportunities: true
campaigns: true
# Sync direction
direction: salesforce_to_brevo
# Brevo list assignment
lists:
all_leads: 15
qualified_leads: 16
customers: 17

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

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

Сопоставления по умолчанию

Parameter Type Description
Email required
string

Email контакта/лида (уникальный идентификатор для Brevo)

FirstName optional
string

Сопоставляется с атрибутом FIRSTNAME в Brevo

LastName optional
string

Сопоставляется с атрибутом LASTNAME в Brevo

Phone optional
string

Сопоставляется с атрибутом SMS для WhatsApp/SMS-сообщений

Account.Name optional
string

Название связанного аккаунта/компании

LeadSource optional
string

Источник привлечения лида

StageName optional
string

Стадия возможности для отслеживания сделок

OwnerId optional
string

Назначенный менеджер по продажам для маршрутизации

Сопоставление кастомных полей

field_mapping:
# Standard fields
Email: email
FirstName: FIRSTNAME
LastName: LASTNAME
Phone: SMS
# CRM fields
LeadSource: LEAD_SOURCE
Lead_Score__c: LEAD_SCORE
Account.Name: COMPANY_NAME
Account.Industry: INDUSTRY
# Opportunity fields
Amount: DEAL_VALUE
StageName: DEAL_STAGE
CloseDate: EXPECTED_CLOSE_DATE
# Custom fields
Preferred_Channel__c: PREFERRED_CHANNEL
Customer_Tier__c: VIP_TIER

Эндпоинты API

Ресурсы REST API

МетодЭндпоинтОписание
GET/services/data/vXX.0/sobjects/ContactЗапрос контактов
POST/services/data/vXX.0/sobjects/ContactСоздать контакт
PATCH/services/data/vXX.0/sobjects/Contact/{id}Обновить контакт
GET/services/data/vXX.0/sobjects/LeadЗапрос лидов
GET/services/data/vXX.0/sobjects/AccountЗапрос аккаунтов
GET/services/data/vXX.0/sobjects/OpportunityЗапрос возможностей
GET/services/data/vXX.0/query?q={SOQL}Выполнить SOQL-запрос
POST/services/data/vXX.0/composite/sobjectsПакетное создание/обновление

Bulk API

МетодЭндпоинтОписание
POST/services/data/vXX.0/jobs/ingestСоздать bulk ingest job
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesЗагрузить пакет данных
GET/services/data/vXX.0/jobs/ingest/{jobId}Проверить статус job

Streaming API

ЭндпоинтОписание
/cometd/XX.0CometD long-polling для событий в реальном времени
PushTopicПодписка на изменения записей через SOQL-топики
Change Data CaptureСтриминг детальных изменений на уровне полей
Platform EventsКастомная event-driven архитектура

События

События записей (Change Data Capture)

СобытиеТриггерСценарий использования
ContactChangeEventКонтакт создан/обновлён/удалёнСинхронизация контактов в реальном времени
LeadChangeEventЛид создан/обновлён/сконвертированОтслеживание жизненного цикла лида
OpportunityChangeEventИзменена стадия возможностиАвтоматизация воронки сделок
AccountChangeEventИзменена запись аккаунтаСинхронизация данных компаний

Platform Events

СобытиеТриггерСценарий использования
Lead_Converted__eЛид сконвертирован в контактПост-конверсионное взращивание
Deal_Won__eВозможность закрыта как wonПроцесс онбординга клиента
Deal_Lost__eВозможность закрыта как lostWin-back кампании

Примеры кода

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

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Salesforce
await tajo.connectors.connect('salesforce', {
instanceUrl: 'https://yourorg.my.salesforce.com',
consumerKey: process.env.SF_CONSUMER_KEY,
consumerSecret: process.env.SF_CONSUMER_SECRET,
refreshToken: process.env.SF_REFRESH_TOKEN
});

Синхронизация контактов с SOQL-фильтром

// Sync only qualified leads from Salesforce
await tajo.connectors.sync('salesforce', {
type: 'filtered',
resources: ['leads'],
filter: "SELECT Id, Email, FirstName, LastName, LeadScore__c FROM Lead WHERE Status = 'Qualified' AND Email != null",
brevoListId: 16
});
// Check sync status
const status = await tajo.connectors.status('salesforce');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// contactsSynced: 18400,
// leadsSynced: 7200,
// opportunitiesSynced: 3100
// }

Стриминг в реальном времени

// Subscribe to Salesforce Change Data Capture
await tajo.connectors.stream('salesforce', {
channels: [
'/data/ContactChangeEvent',
'/data/LeadChangeEvent',
'/data/OpportunityChangeEvent'
],
handler: async (event) => {
console.log(`Change detected: ${event.entity} ${event.changeType}`);
// Automatically synced to Brevo by Tajo
}
});

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

Лимиты REST API Salesforce зависят от вашего edition и количества лицензий:

EditionAPI-запросы за 24 часа
Developer15 000
Enterprise1 000 на пользовательскую лицензию (минимум 15 000)
Unlimited5 000 на пользовательскую лицензию (минимум 15 000)
Performance5 000 на пользовательскую лицензию (минимум 15 000)

Дополнительные ограничения:

  • Лимит параллельных API-вызовов: 25 долгих запросов
  • Bulk API: 15 000 пакетов за 24 часа
  • Streaming API: 2 000 событий в день (можно увеличить)
  • Composite API: 25 подзапросов на композитный запрос

Мониторинг использования API

Отслеживайте использование API в Salesforce Setup > System Overview. Tajo использует Bulk API для крупных синхронизаций, чтобы экономить ваши API-лимиты.

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

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

ПроблемаПричинаРешение
INVALID_SESSION_IDТокен истёкАвтоматически обновите OAuth-токен
REQUEST_LIMIT_EXCEEDEDПревышен дневной API-лимитИспользуйте Bulk API или уменьшите частоту синхронизации
FIELD_INTEGRITY_EXCEPTIONОтсутствует обязательное полеСопоставьте все обязательные поля в конфигурации
DUPLICATES_DETECTEDАктивны правила дубликатовНастройте предпочтения обработки дубликатов
INSUFFICIENT_ACCESSОтсутствуют разрешения на объектПредоставьте API-доступ в профиле Salesforce

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

Включите подробное логирование:

connectors:
salesforce:
debug: true
log_level: verbose
log_api_calls: true

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

Terminal window
tajo connectors test salesforce
# ✓ OAuth token valid
# ✓ Contacts accessible
# ✓ Leads accessible
# ✓ Accounts accessible
# ✓ Opportunities accessible
# ✓ Bulk API enabled

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

  1. Используйте Bulk API для крупных синхронизаций, переключайтесь на Bulk API 2.0 для наборов данных свыше 2 000 записей
  2. Внедряйте Change Data Capture, используйте CDC для синхронизации в реальном времени вместо опроса
  3. Сопоставляйте только нужные поля, снижайте нагрузку на API, синхронизируя только необходимые поля
  4. Обрабатывайте обновление токенов, реализуйте автоматическую логику обновления OAuth-токенов
  5. Используйте composite-запросы, объединяйте связанные API-вызовы, чтобы уменьшить количество запросов
  6. Сначала тестируйте в sandbox, используйте Salesforce sandbox org перед развёртыванием в продакшен

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

  • OAuth 2.0, отраслевой стандарт авторизации с несколькими типами grant
  • Ограничения по IP, Salesforce поддерживает диапазоны IP для входа и trusted IP
  • TLS 1.2+, все API-коммуникации зашифрованы минимум TLS 1.2
  • Безопасность на уровне полей, детальный контроль доступа к полям по профилям
  • Управление сессиями, настраиваемый таймаут сессии и лимиты параллельных сессий

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

Subscribe to updates

developer-docs

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

AI-ассистент

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

Начните бесплатно с Brevo