Salesforce Connector

Salesforce Connector

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

LastnostVrednost
PlatformaSalesforce
KategorijaCRM
Zahtevnost nastavitveNapredna
Uradna integracijaDa
Sinhronizirani podatkiStiki, potencialni kupci, računi, priložnosti, dogodki
Osnovni URL APIhttps://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š:

  1. Salesforce org (katera koli izdaja z dostopom do API)
  2. Konfigurirana Connected App v Salesforce Setup
  3. Dostop do API omogočen za tvoj profil Salesforce
  4. Brevo račun z dostopom do API
  5. Tajo račun

Avtentikacija

OAuth 2.0 Web Server Flow (priporočeno)

Najboljše za produkcijske integracije s pooblastilom uporabnika.

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

Tok z uporabniškim imenom in geslom

Za integracije med strežniki brez interakcije z uporabnikom.

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

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: 17

Preslikava 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_TIER

Končne točke API

Viri REST API

MetodaKončna točkaOpis
GET/services/data/vXX.0/sobjects/ContactPoizvedba stikov
POST/services/data/vXX.0/sobjects/ContactUstvari stik
PATCH/services/data/vXX.0/sobjects/Contact/{id}Posodobi stik
GET/services/data/vXX.0/sobjects/LeadPoizvedba potencialnih kupcev
GET/services/data/vXX.0/sobjects/AccountPoizvedba računov
GET/services/data/vXX.0/sobjects/OpportunityPoizvedba priložnosti
GET/services/data/vXX.0/query?q={SOQL}Izvedi poizvedbo SOQL
POST/services/data/vXX.0/composite/sobjectsPaketno ustvarjanje/posodabljanje

Bulk API

MetodaKončna točkaOpis
POST/services/data/vXX.0/jobs/ingestUstvari paketno opravilo vnosa
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesNaloži paketne podatke
GET/services/data/vXX.0/jobs/ingest/{jobId}Preveri status opravila

Streaming API

Končna točkaOpis
/cometd/XX.0CometD dolgo anketiranje za dogodke v realnem času
PushTopicNaroči se na spremembe zapisov prek tem na osnovi SOQL
Change Data CapturePretakanje natančnih sprememb na ravni polj
Platform EventsArhitektura, ki temelji na dogodkih po meri

Dogodki

Dogodki zapisov (Change Data Capture)

DogodekSprožilecPrimer uporabe
ContactChangeEventStik ustvarjen/posodobljen/izbrisanSinhronizacija stikov v realnem času
LeadChangeEventPotencialni kupec ustvarjen/posodobljen/konvertiranSledenje življenjskemu ciklu potencialnih kupcev
OpportunityChangeEventSpremenjena faza priložnostiAvtomatizacija prodajnega lijaka
AccountChangeEventSpremenjen zapis računaSinhronizacija podatkov podjetja

Platform Events

DogodekSprožilecPrimer uporabe
Lead_Converted__ePotencialni kupec konvertiran v stikNegovalna kampanja po konverziji
Deal_Won__ePriložnost zaprta-pridobljenaTok uvajanja stranke
Deal_Lost__ePriložnost zaprta-izgubljenaKampanje 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 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
});

Sinhronizacija stikov s filtrom 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
// }

Pretakanje v realnem času

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

Omejitve hitrosti

Omejitve REST API Salesforce so odvisne od izdaje in števila licenc:

IzdajaZahtevki API na 24 ur
Developer15.000
Enterprise1.000 na licenco (min. 15.000)
Unlimited5.000 na licenco (min. 15.000)
Performance5.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žavaVzrokRešitev
INVALID_SESSION_IDŽeton je potekelSamodejno osveži OAuth žeton
REQUEST_LIMIT_EXCEEDEDDosežena dnevna omejitev APIUporabi Bulk API ali zmanjšaj pogostost sinhronizacije
FIELD_INTEGRITY_EXCEPTIONManjkajoče obvezno poljePreslikaj vsa zahtevana polja v konfiguraciji
DUPLICATES_DETECTEDAktivna pravila podvajanjaNastavi nastavitve za obravnavo podvojitev
INSUFFICIENT_ACCESSManjkajoča dovoljenja za objektDodeli 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: true

Preizkus povezave

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

Najboljše prakse

  1. Za velike sinhronizacije uporabi Bulk API – za nabore podatkov nad 2.000 zapisov preklopi na Bulk API 2.0
  2. Implementiraj Change Data Capture – za sinhronizacijo v realnem času namesto anketiranja
  3. Preslikaj samo potrebna polja – zmanjšaj porabo API s sinhronizacijo samo zahtevanih polj
  4. Obravnavaj osvežitev žetona – implementiraj samodejno logiko za osvežitev OAuth žetona
  5. Uporabi sestavljene zahtevke – združi sorodne klice API za zmanjšanje števila zahtevkov
  6. 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

Povezani viri

Subscribe to updates

developer-docs

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

AI pomočnik

Živjo! Vprašajte me o dokumentaciji.

Začnite brezplačno z Brevo