Salesforce konektor
Salesforce konektor
Prepoj svoj Salesforce CRM s Brevo cez Tajo pre enterprise synchronizáciu kontaktov, správu leadov, sledovanie príležitostí a marketingovú automatizáciu poháňanú dátami z CRM.
Prehľad
| Vlastnosť | Hodnota |
|---|---|
| Platforma | Salesforce |
| Kategória | CRM |
| Zložitosť nastavenia | Pokročilé |
| Oficiálna integrácia | Áno |
| Synchronizované dáta | Kontakty, Leady, Účty, Príležitosti, Udalosti |
| API Base URL | https://yourInstance.salesforce.com/services/data/vXX.0 |
Funkcie
- Obojsmerná synchronizácia kontaktov/leadov - Synchronizuj kontakty a leady Salesforce so zoznamami kontaktov v Brevo
- Sledovanie príležitostí - Namapuj fázy a sumy obchodov pre segmentáciu podľa príjmov
- Hierarchia účtov - Synchronizuj firemné účty pre account-based marketing v Brevo
- Mapovanie vlastných objektov - Namapuj vlastné objekty Salesforce na atribúty a udalosti v Brevo
- Synchronizácia členov kampane - Synchronizuj členov kampaní Salesforce so zoznamami v Brevo
- Sledovanie aktivít - Synchronizuj úlohy, udalosti a e-mailové aktivity pre hodnotenie zapojenia
- Streamovanie v reálnom čase - Použi Streaming API Salesforce pre okamžité aktualizácie dát
- Podpora SOQL dopytov - Filtruj synchronizované dáta pomocou vlastných SOQL dopytov
Predpoklady
Predtým, než začneš, uisti sa, že máš:
- Salesforce org (akékoľvek vydanie s API prístupom)
- Nakonfigurovanú Connected App v Salesforce Setup
- API prístup povolený pre tvoj profil používateľa Salesforce
- Brevo účet s API prístupom
- Tajo účet
Autentifikácia
OAuth 2.0 Web Server Flow (odporúčané)
Najlepšie pre produkčné integrácie s autorizáciou používateľa.
# Step 1: Authorizehttps://login.salesforce.com/services/oauth2/authorize? response_type=code& client_id={consumer_key}& redirect_uri={callback_url}
# Step 2: Exchange code for tokenscurl -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
Pre server-to-server integrácie bez interakcie používateľa.
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}"Bezpečnostný token
Salesforce vyžaduje pripojenie bezpečnostného tokenu k heslu pri použití username-password flow. Resetuj token cez Setup > My Personal Information > Reset My Security Token.
Konfigurácia
Základné nastavenie
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: 17Mapovanie polí
Namapuj polia Salesforce na atribúty kontaktov v Brevo:
Predvolené mapovania
| Parameter | Type | Description |
|---|---|---|
Email required | string | E-mail kontaktu/leadu (unikátny identifikátor pre Brevo) |
FirstName optional | string | Mapuje sa na atribút FIRSTNAME v Brevo |
LastName optional | string | Mapuje sa na atribút LASTNAME v Brevo |
Phone optional | string | Mapuje sa na atribút SMS pre správy WhatsApp/SMS |
Account.Name optional | string | Názov priradeného účtu/spoločnosti |
LeadSource optional | string | Zdroj akvizície leadu |
StageName optional | string | Fáza príležitosti pre sledovanie obchodov |
OwnerId optional | string | Priradený obchodný zástupca pre smerovanie |
Mapovanie vlastných polí
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_TIERAPI endpointy
REST API zdroje
| Metóda | Endpoint | Popis |
|---|---|---|
GET | /services/data/vXX.0/sobjects/Contact | Dopyt kontaktov |
POST | /services/data/vXX.0/sobjects/Contact | Vytvorenie kontaktu |
PATCH | /services/data/vXX.0/sobjects/Contact/{id} | Aktualizácia kontaktu |
GET | /services/data/vXX.0/sobjects/Lead | Dopyt leadov |
GET | /services/data/vXX.0/sobjects/Account | Dopyt účtov |
GET | /services/data/vXX.0/sobjects/Opportunity | Dopyt príležitostí |
GET | /services/data/vXX.0/query?q={SOQL} | Vykonanie SOQL dopytu |
POST | /services/data/vXX.0/composite/sobjects | Hromadné vytvorenie/aktualizácia |
Bulk API
| Metóda | Endpoint | Popis |
|---|---|---|
POST | /services/data/vXX.0/jobs/ingest | Vytvorenie hromadnej ingest úlohy |
PUT | /services/data/vXX.0/jobs/ingest/{jobId}/batches | Nahranie dávkových dát |
GET | /services/data/vXX.0/jobs/ingest/{jobId} | Kontrola stavu úlohy |
Streaming API
| Endpoint | Popis |
|---|---|
/cometd/XX.0 | CometD long-polling pre udalosti v reálnom čase |
| PushTopic | Prihlásenie na zmeny záznamov cez SOQL témy |
| Change Data Capture | Streamovanie jemných zmien na úrovni polí |
| Platform Events | Vlastná architektúra riadená udalosťami |
Udalosti
Udalosti záznamov (Change Data Capture)
| Udalosť | Trigger | Prípad použitia |
|---|---|---|
ContactChangeEvent | Kontakt vytvorený/aktualizovaný/odstránený | Synchronizácia kontaktov v reálnom čase |
LeadChangeEvent | Lead vytvorený/aktualizovaný/konvertovaný | Sledovanie životného cyklu leadu |
OpportunityChangeEvent | Zmena fázy príležitosti | Automatizácia pipeline obchodov |
AccountChangeEvent | Upravený záznam účtu | Synchronizácia dát spoločnosti |
Platform Events
| Udalosť | Trigger | Prípad použitia |
|---|---|---|
Lead_Converted__e | Lead konvertovaný na kontakt | Nurture po konverzii |
Deal_Won__e | Príležitosť uzavretá-vyhraná | Flow onboardingu zákazníka |
Deal_Lost__e | Príležitosť uzavretá-prehraná | Win-back kampane |
Ukážky kódu
Inicializácia konektora
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Salesforceawait 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});Synchronizácia kontaktov s SOQL filtrom
// Sync only qualified leads from Salesforceawait 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 statusconst status = await tajo.connectors.status('salesforce');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 18400,// leadsSynced: 7200,// opportunitiesSynced: 3100// }Streamovanie v reálnom čase
// Subscribe to Salesforce Change Data Captureawait 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 }});Obmedzenia rýchlosti
Limity Salesforce REST API závisia od tvojho vydania a počtu licencií:
| Vydanie | API požiadavky za 24 hodín |
|---|---|
| Developer | 15 000 |
| Enterprise | 1 000 na používateľskú licenciu (min 15 000) |
| Unlimited | 5 000 na používateľskú licenciu (min 15 000) |
| Performance | 5 000 na používateľskú licenciu (min 15 000) |
Ďalšie limity:
- Limit súbežných API: 25 dlhodobých požiadaviek
- Bulk API: 15 000 dávok za 24 hodín
- Streaming API: 2 000 udalostí za deň (možné zvýšiť)
- Composite API: 25 podpožiadaviek na composite požiadavku
Monitorovanie využitia API
Sleduj využitie API v Salesforce Setup > System Overview. Tajo používa Bulk API pre veľké synchronizácie na šetrenie API limitov.
Riešenie problémov
Bežné problémy
| Problém | Príčina | Riešenie |
|---|---|---|
| INVALID_SESSION_ID | Token vypršal | Automaticky obnov OAuth token |
| REQUEST_LIMIT_EXCEEDED | Denný limit API bol dosiahnutý | Použi Bulk API alebo zredukuj frekvenciu synchronizácie |
| FIELD_INTEGRITY_EXCEPTION | Chýbajúce povinné pole | Namapuj všetky povinné polia v konfigurácii |
| DUPLICATES_DETECTED | Aktívne pravidlá pre duplikáty | Nakonfiguruj predvoľby spracovania duplikátov |
| INSUFFICIENT_ACCESS | Chýbajúce oprávnenia objektu | Udeľ API prístup v profile Salesforce |
Debug režim
Zapni verbose logovanie:
connectors: salesforce: debug: true log_level: verbose log_api_calls: trueTest pripojenia
tajo connectors test salesforce# ✓ OAuth token valid# ✓ Contacts accessible# ✓ Leads accessible# ✓ Accounts accessible# ✓ Opportunities accessible# ✓ Bulk API enabledOdporúčané postupy
- Použi Bulk API pre veľké synchronizácie - Prepni na Bulk API 2.0 pre datasety nad 2 000 záznamov
- Implementuj Change Data Capture - Použi CDC pre synchronizáciu v reálnom čase namiesto pollingu
- Namapuj iba potrebné polia - Zredukuj využitie API synchronizáciou iba požadovaných polí
- Spravuj obnovu tokenov - Implementuj automatickú logiku obnovy OAuth tokenov
- Použi composite požiadavky - Kombinuj súvisiace API volania na zníženie počtu požiadaviek
- Testuj najprv v sandboxe - Použi sandbox org Salesforce pred nasadením do produkcie
Bezpečnosť
- OAuth 2.0 - Priemyselne štandardná autorizácia s viacerými grant typmi
- IP obmedzenia - Salesforce podporuje rozsahy prihlasovacích IP a nastavenia dôveryhodných IP
- TLS 1.2+ - Všetka API komunikácia šifrovaná s minimálnym TLS 1.2
- Bezpečnosť na úrovni polí - Jemná kontrola prístupu k poliam na profil
- Správa relácií - Konfigurovateľný timeout relácie a limity súbežných relácií