Konektor Salesforce

Konektor Salesforce

Połącz swój Salesforce CRM z Brevo przez Tajo, aby uzyskać synchronizację kontaktów klasy enterprise, zarządzanie leadami, śledzenie szans sprzedaży i automatyzację marketingu opartą na danych CRM.

Przegląd

WłaściwośćWartość
PlatformaSalesforce
KategoriaCRM
Poziom konfiguracjiZaawansowany
Integracja oficjalnaTak
Synchronizowane daneKontakty, Leady, Konta, Szanse sprzedaży, Zdarzenia
Bazowy URL APIhttps://yourInstance.salesforce.com/services/data/vXX.0

Funkcje

  • Dwukierunkowa synchronizacja kontaktów/leadów - Synchronizuj kontakty i leady Salesforce z listami kontaktów Brevo
  • Śledzenie szans sprzedaży - Mapuj etapy i kwoty transakcji dla segmentacji opartej na przychodach
  • Hierarchia kont - Synchronizuj konta firmowe dla marketingu opartego na kontach w Brevo
  • Mapowanie obiektów niestandardowych - Mapuj obiekty niestandardowe Salesforce na atrybuty i zdarzenia Brevo
  • Synchronizacja członków kampanii - Synchronizuj członków kampanii Salesforce z listami Brevo
  • Śledzenie aktywności - Synchronizuj zadania, zdarzenia i aktywności e-mailowe dla oceny zaangażowania
  • Streaming w czasie rzeczywistym - Używaj Salesforce Streaming API dla natychmiastowych aktualizacji danych
  • Obsługa zapytań SOQL - Filtruj synchronizowane dane niestandardowymi zapytaniami SOQL

Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

  1. Organizację Salesforce (dowolna edycja z dostępem do API)
  2. Skonfigurowaną aplikację Connected App w konfiguracji Salesforce
  3. Dostęp do API włączony dla profilu użytkownika Salesforce
  4. Konto Brevo z dostępem do API
  5. Konto Tajo

Uwierzytelnianie

Przepływ Web Server OAuth 2.0 (zalecane)

Najlepszy dla integracji produkcyjnych z autoryzacją użytkownika.

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}"

Przepływ Username-Password

Dla integracji serwer-serwer bez interakcji użytkownika.

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}"

Token bezpieczeństwa

Salesforce wymaga dołączenia tokenu bezpieczeństwa do hasła w przepływie username-password. Zresetuj token z Setup > My Personal Information > Reset My Security Token.

Konfiguracja

Podstawowa konfiguracja

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

Mapowanie pól

Mapuj pola Salesforce na atrybuty kontaktów Brevo:

Domyślne mapowania

Parameter Type Description
Email required
string

E-mail kontaktu/leada (unikalny identyfikator dla Brevo)

FirstName optional
string

Mapuje się na atrybut FIRSTNAME w Brevo

LastName optional
string

Mapuje się na atrybut LASTNAME w Brevo

Phone optional
string

Mapuje się na atrybut SMS dla wiadomości WhatsApp/SMS

Account.Name optional
string

Nazwa powiązanego konta/firmy

LeadSource optional
string

Źródło pozyskania leada

StageName optional
string

Etap szansy sprzedaży do śledzenia transakcji

OwnerId optional
string

Przypisany przedstawiciel handlowy do routingu

Niestandardowe mapowanie pól

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

Endpointy API

Zasoby REST API

MetodaEndpointOpis
GET/services/data/vXX.0/sobjects/ContactZapytanie o kontakty
POST/services/data/vXX.0/sobjects/ContactUtwórz kontakt
PATCH/services/data/vXX.0/sobjects/Contact/{id}Aktualizuj kontakt
GET/services/data/vXX.0/sobjects/LeadZapytanie o leady
GET/services/data/vXX.0/sobjects/AccountZapytanie o konta
GET/services/data/vXX.0/sobjects/OpportunityZapytanie o szanse sprzedaży
GET/services/data/vXX.0/query?q={SOQL}Wykonaj zapytanie SOQL
POST/services/data/vXX.0/composite/sobjectsZbiorcze tworzenie/aktualizacja

Bulk API

MetodaEndpointOpis
POST/services/data/vXX.0/jobs/ingestUtwórz zadanie importu zbiorczego
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesPrześlij dane wsadowe
GET/services/data/vXX.0/jobs/ingest/{jobId}Sprawdź status zadania

Streaming API

EndpointOpis
/cometd/XX.0Długie odpytywanie CometD dla zdarzeń w czasie rzeczywistym
PushTopicSubskrybuj zmiany rekordów przez tematy oparte na SOQL
Change Data CaptureStrumieniuj szczegółowe zmiany na poziomie pól
Platform EventsNiestandardowa architektura sterowana zdarzeniami

Zdarzenia

Zdarzenia rekordów (Change Data Capture)

ZdarzenieWyzwalaczZastosowanie
ContactChangeEventKontakt utworzony/zaktualizowany/usuniętySynchronizacja kontaktów w czasie rzeczywistym
LeadChangeEventLead utworzony/zaktualizowany/przekonwertowanyŚledzenie cyklu życia leada
OpportunityChangeEventZmiana etapu szansy sprzedażyAutomatyzacja lejka transakcji
AccountChangeEventRekord konta zmodyfikowanySynchronizacja danych firmy

Zdarzenia platformy

ZdarzenieWyzwalaczZastosowanie
Lead_Converted__eLead przekonwertowany na kontaktNurturing po konwersji
Deal_Won__eSzansa sprzedaży zamknięta-wygranaPrzepływ onboardingu klienta
Deal_Lost__eSzansa sprzedaży zamknięta-przegranaKampanie win-back

Przykłady kodu

Inicjalizacja konektora

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
});

Synchronizuj kontakty z filtrem 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
// }

Streaming w czasie rzeczywistym

// 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
}
});

Limity API

Limity REST API Salesforce zależą od twojej edycji i liczby licencji:

EdycjaŻądania API na 24 godziny
Developer15 000
Enterprise1 000 na licencję użytkownika (min. 15 000)
Unlimited5 000 na licencję użytkownika (min. 15 000)
Performance5 000 na licencję użytkownika (min. 15 000)

Dodatkowe limity:

  • Limit współbieżnych API: 25 długotrwałych żądań
  • Bulk API: 15 000 partii na 24 godziny
  • Streaming API: 2 000 zdarzeń dziennie (można zwiększyć)
  • Composite API: 25 podzapytań na żądanie złożone

Monitorowanie użycia API

Monitoruj użycie API w Salesforce Setup > System Overview. Tajo używa Bulk API dla dużych synchronizacji, aby oszczędzać limity API.

Rozwiązywanie problemów

Typowe problemy

ProblemPrzyczynaRozwiązanie
INVALID_SESSION_IDToken wygasłAutomatycznie odśwież token OAuth
REQUEST_LIMIT_EXCEEDEDDzienny limit API przekroczonyUżywaj Bulk API lub zmniejsz częstotliwość synchronizacji
FIELD_INTEGRITY_EXCEPTIONBrak wymaganego polaZmapuj wszystkie wymagane pola w konfiguracji
DUPLICATES_DETECTEDAktywne reguły duplikatówSkonfiguruj preferencje obsługi duplikatów
INSUFFICIENT_ACCESSBrak uprawnień do obiektuPrzyznaj dostęp do API w profilu Salesforce

Tryb debug

Włącz szczegółowe logowanie:

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

Test połączenia

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

Najlepsze praktyki

  1. Używaj Bulk API dla dużych synchronizacji - Przełącz na Bulk API 2.0 dla zbiorów danych powyżej 2 000 rekordów
  2. Wdrożyj Change Data Capture - Używaj CDC dla synchronizacji w czasie rzeczywistym zamiast odpytywania
  3. Mapuj tylko potrzebne pola - Zmniejsz użycie API, synchronizując tylko wymagane pola
  4. Obsługuj odświeżanie tokenów - Wdrożyj automatyczną logikę odświeżania tokenów OAuth
  5. Używaj żądań złożonych - Łącz powiązane wywołania API, aby zmniejszyć liczbę żądań
  6. Najpierw testuj w sandbox - Używaj organizacji sandbox Salesforce przed wdrożeniem produkcyjnym

Bezpieczeństwo

  • OAuth 2.0 - Branżowy standard autoryzacji z wieloma typami przydziału
  • Ograniczenia IP - Salesforce obsługuje zakresy IP logowania i zaufane ustawienia IP
  • TLS 1.2+ - Cała komunikacja API zaszyfrowana z minimalnym TLS 1.2
  • Bezpieczeństwo na poziomie pól - Granularna kontrola dostępu do pól na profil
  • Zarządzanie sesjami - Konfigurowalne limity czasu sesji i limity sesji współbieżnych

Powiązane zasoby

Subscribe to updates

developer-docs

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

Asystent AI

Cześć! Zapytaj mnie o dokumentację.

Zacznij za darmo z Brevo