Конектор Salesforce

Конектор Salesforce

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

Преглед

СвойствоСтойност
ПлатформаSalesforce
КатегорияCRM
Сложност на настройкаРазширена
Официална интеграцияДа
Синхронизирани данниКонтакти, лийдове, акаунти, възможности, събития
API Base URLhttps://yourInstance.salesforce.com/services/data/vXX.0

Функции

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

Предварителни условия

Преди да започнете, уверете се, че имате:

  1. Salesforce org (всяко издание с 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}"

Токен за сигурност

Salesforce изисква добавяне на вашия токен за сигурност към паролата ви за 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

Имейл на контакта/лийда (уникален идентификатор за 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 ресурси

MethodEndpointОписание
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

MethodEndpointОписание
POST/services/data/vXX.0/jobs/ingestСъздаване на bulk ingest задача
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesКачване на batch данни
GET/services/data/vXX.0/jobs/ingest/{jobId}Проверка на статуса на задачата

Streaming API

EndpointОписание
/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Възможност closed-wonПоток за onboarding на клиенти
Deal_Lost__eВъзможност closed-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
}
});

Лимити на заявки

Лимитите на Salesforce REST API зависят от вашето издание и броя лицензи:

ИзданиеAPI заявки за 24 часа
Developer15 000
Enterprise1000 за потребителски лиценз (мин. 15 000)
Unlimited5000 за потребителски лиценз (мин. 15 000)
Performance5000 за потребителски лиценз (мин. 15 000)

Допълнителни лимити:

  • Лимит на конкурентни API заявки: 25 дълготрайни заявки
  • Bulk API: 15 000 batch заявки за 24 часа
  • Streaming API: 2000 събития дневно (може да бъде увеличено)
  • Composite API: 25 подзаявки на composite заявка

Мониторинг на 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 профила

Debug режим

Активирайте подробно логиране:

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 за набори от данни над 2000 записа
  2. Имплементирайте Change Data Capture – Използвайте CDC за синхронизация в реално време вместо допитване
  3. Мапвайте само необходимите полета – Намалете API употребата, като синхронизирате само нужните полета
  4. Обработвайте обновяването на токена – Имплементирайте автоматична логика за refresh на OAuth токена
  5. Използвайте composite заявки – Комбинирайте свързани API повиквания за намаляване на броя заявки
  6. Тествайте първо в sandbox – Използвайте Salesforce sandbox org преди продукционно разгръщане

Сигурност

  • OAuth 2.0 – Индустриален стандарт за оторизация с множество grant типове
  • IP ограничения – Salesforce поддържа IP диапазони за login и настройки за доверени 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