Salesforce Connector
Stanje konektorja: Načrtovano Še ni izdelano. Tajo danes ne poganja tega konektorja.
Ponazoritev · vzorčni podatki
Primer sinhronizacije
Vir
Salesforce
Stanje konektorja: Načrtovano
Cilj
Vaše drugo orodje
Stanje konektorja: Orodje po meri
Preslikava polj
| Izvorno polje | Ciljno polje | Vzorčna vrednost |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Osnutek
- Preglejte en zapis
- Odobrite to različico
Stanja veljajo za posamezne konektorje in ne zagotavljajo, da je ta sinhronizacija pripravljena. Polja so ponazoritvena. Pred zagonom sinhronizacije preverite dejansko shemo in dovoljenja.
Poveži svoj Salesforce CRM z Brevo prek Tajo za sinhronizacijo stikov na ravni podjetij, upravljanje potencialnih kupcev, sledenje priložnostim in marketinško avtomatizacijo na osnovi podatkov CRM.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | Salesforce |
| Kategorija | CRM |
| Zahtevnost nastavitve | Napredna |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Stiki, potencialni kupci, računi, priložnosti, dogodki |
| Osnovni URL API | https://yourInstance.salesforce.com/services/data/vXX.0 |
Funkcionalnosti
- Dvosmerna sinhronizacija stikov/potencialnih kupcev – sinhronizacija stikov in potencialnih kupcev Salesforce s seznami stikov Brevo
- Sledenje priložnostim – preslikaj faze poslov in zneske za segmentacijo na podlagi prihodkov
- Hierarhija računov – sinhronizacija računov podjetij za marketing na osnovi računov v Brevo
- Preslikava objektov po meri – preslikaj objekte po meri Salesforce v atribute in dogodke Brevo
- Sinhronizacija članov kampanje – sinhronizacija članov kampanje Salesforce s seznami Brevo
- Sledenje aktivnostim – sinhronizacija nalog, dogodkov in e-mail aktivnosti za ocenjevanje angažiranosti
- Pretakanje v realnem času – uporabi Streaming API Salesforce za takojšnje posodobitve podatkov
- Podpora za poizvedbe SOQL – filtriraj sinhronizirane podatke z lastnimi poizvedbami SOQL
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Salesforce org (katera koli izdaja z dostopom do API)
- Konfigurirana Connected App v Salesforce Setup
- Dostop do API omogočen za tvoj profil Salesforce
- Brevo račun z dostopom do API
- Tajo račun
Avtentikacija
OAuth 2.0 Web Server Flow (priporočeno)
Najboljše za produkcijske integracije s pooblastilom uporabnika.
# 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}"Tok z uporabniškim imenom in geslom
Za integracije med strežniki brez interakcije z uporabnikom.
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}"Varnostni žeton
Salesforce zahteva, da geslu pripneš varnostni žeton za tok z uporabniškim imenom in geslom. Ponastavi žeton v Setup > My Personal Information > Reset My Security Token.
Konfiguracija
Osnovna nastavitev
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: 17Preslikava polj
Preslikaj polja Salesforce v atribute stikov Brevo:
Privzete preslikave
| Parameter | Type | Description |
|---|---|---|
Email required | string | E-mail stika/potencialnega kupca (enolični identifikator za Brevo) |
FirstName optional | string | Preslika se v atribut FIRSTNAME v Brevo |
LastName optional | string | Preslika se v atribut LASTNAME v Brevo |
Phone optional | string | Preslika se v atribut SMS za sporočanje WhatsApp/SMS |
Account.Name optional | string | Ime povezanega računa/podjetja |
LeadSource optional | string | Vir pridobivanja potencialnih kupcev |
StageName optional | string | Faza priložnosti za sledenje poslom |
OwnerId optional | string | Dodeljeni prodajni predstavnik za usmerjanje |
Preslikava polj po meri
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_TIERKončne točke API
Viri REST API
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /services/data/vXX.0/sobjects/Contact | Poizvedba stikov |
POST | /services/data/vXX.0/sobjects/Contact | Ustvari stik |
PATCH | /services/data/vXX.0/sobjects/Contact/{id} | Posodobi stik |
GET | /services/data/vXX.0/sobjects/Lead | Poizvedba potencialnih kupcev |
GET | /services/data/vXX.0/sobjects/Account | Poizvedba računov |
GET | /services/data/vXX.0/sobjects/Opportunity | Poizvedba priložnosti |
GET | /services/data/vXX.0/query?q={SOQL} | Izvedi poizvedbo SOQL |
POST | /services/data/vXX.0/composite/sobjects | Paketno ustvarjanje/posodabljanje |
Bulk API
| Metoda | Končna točka | Opis |
|---|---|---|
POST | /services/data/vXX.0/jobs/ingest | Ustvari paketno opravilo vnosa |
PUT | /services/data/vXX.0/jobs/ingest/{jobId}/batches | Naloži paketne podatke |
GET | /services/data/vXX.0/jobs/ingest/{jobId} | Preveri status opravila |
Streaming API
| Končna točka | Opis |
|---|---|
/cometd/XX.0 | CometD dolgo anketiranje za dogodke v realnem času |
| PushTopic | Naroči se na spremembe zapisov prek tem na osnovi SOQL |
| Change Data Capture | Pretakanje natančnih sprememb na ravni polj |
| Platform Events | Arhitektura, ki temelji na dogodkih po meri |
Dogodki
Dogodki zapisov (Change Data Capture)
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
ContactChangeEvent | Stik ustvarjen/posodobljen/izbrisan | Sinhronizacija stikov v realnem času |
LeadChangeEvent | Potencialni kupec ustvarjen/posodobljen/konvertiran | Sledenje življenjskemu ciklu potencialnih kupcev |
OpportunityChangeEvent | Spremenjena faza priložnosti | Avtomatizacija prodajnega lijaka |
AccountChangeEvent | Spremenjen zapis računa | Sinhronizacija podatkov podjetja |
Platform Events
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
Lead_Converted__e | Potencialni kupec konvertiran v stik | Negovalna kampanja po konverziji |
Deal_Won__e | Priložnost zaprta-pridobljena | Tok uvajanja stranke |
Deal_Lost__e | Priložnost zaprta-izgubljena | Kampanje za pridobitev nazaj |
Primeri kode
Inicializacija konektorja
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});Sinhronizacija stikov s filtrom SOQL
// 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// }Pretakanje v realnem času
// 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 }});Omejitve hitrosti
Omejitve REST API Salesforce so odvisne od izdaje in števila licenc:
| Izdaja | Zahtevki API na 24 ur |
|---|---|
| Developer | 15.000 |
| Enterprise | 1.000 na licenco (min. 15.000) |
| Unlimited | 5.000 na licenco (min. 15.000) |
| Performance | 5.000 na licenco (min. 15.000) |
Dodatne omejitve:
- Sočasna omejitev API: 25 dolgotrajnih zahtevkov
- Bulk API: 15.000 paketov na 24 ur
- Streaming API: 2.000 dogodkov na dan (možno povečati)
- Composite API: 25 podzahtevkov na sestavljeni zahtevek
Spremljanje porabe API
Spremljaj porabo API v Salesforce Setup > System Overview. Tajo za velike sinhronizacije uporablja Bulk API, da ohrani omejitve API.
Odpravljanje težav
Pogoste težave
| Težava | Vzrok | Rešitev |
|---|---|---|
| INVALID_SESSION_ID | Žeton je potekel | Samodejno osveži OAuth žeton |
| REQUEST_LIMIT_EXCEEDED | Dosežena dnevna omejitev API | Uporabi Bulk API ali zmanjšaj pogostost sinhronizacije |
| FIELD_INTEGRITY_EXCEPTION | Manjkajoče obvezno polje | Preslikaj vsa zahtevana polja v konfiguraciji |
| DUPLICATES_DETECTED | Aktivna pravila podvajanja | Nastavi nastavitve za obravnavo podvojitev |
| INSUFFICIENT_ACCESS | Manjkajoča dovoljenja za objekt | Dodeli dostop do API v profilu Salesforce |
Način odpravljanja napak
Omogoči podrobno beleženje:
connectors: salesforce: debug: true log_level: verbose log_api_calls: truePreizkus povezave
tajo connectors test salesforce# ✓ OAuth token valid# ✓ Contacts accessible# ✓ Leads accessible# ✓ Accounts accessible# ✓ Opportunities accessible# ✓ Bulk API enabledNajboljše prakse
- Za velike sinhronizacije uporabi Bulk API – za nabore podatkov nad 2.000 zapisov preklopi na Bulk API 2.0
- Implementiraj Change Data Capture – za sinhronizacijo v realnem času namesto anketiranja
- Preslikaj samo potrebna polja – zmanjšaj porabo API s sinhronizacijo samo zahtevanih polj
- Obravnavaj osvežitev žetona – implementiraj samodejno logiko za osvežitev OAuth žetona
- Uporabi sestavljene zahtevke – združi sorodne klice API za zmanjšanje števila zahtevkov
- Najprej preizkusi v testnem okolju – pred produkcijsko namestitvijo uporabi testni org Salesforce
Varnost
- OAuth 2.0 – industrijski standard za avtorizacijo z več tipi dodelitev
- Omejitve IP – Salesforce podpira območja prijavnih IP in nastavitve zaupanja vrednih IP
- TLS 1.2+ – vsa komunikacija API šifrirana z minimalno različico TLS 1.2
- Varnost na ravni polj – natančen nadzor dostopa do polj na profil
- Upravljanje sej – nastavljiva časovna omejitev seje in omejitve sočasnih sej