Salesforce konektor

Salesforce konektor

Poveži svoj Salesforce CRM sa Brevo putem Tajo za enterprise-grade sinhronizaciju kontakata, upravljanje leadovima, praćenje mogućnosti i marketing automatizaciju pokretanu tvojim CRM podacima.

Pregled

SvojstvoVrednost
PlatformaSalesforce
KategorijaCRM
Složenost podešavanjaNapredno
Zvanična integracijaDa
Sinhronizovani podaciKontakti, Leadovi, Nalozi, Mogućnosti, Događaji
Osnovni URL API-jahttps://yourInstance.salesforce.com/services/data/vXX.0

Karakteristike

  • Dvosrna sinhronizacija kontakata/leadova - Sinhronizuj Salesforce kontakte i leadove sa Brevo listama kontakata
  • Praćenje mogućnosti - Mapiranje faza i iznosa poslova za segmentaciju zasnovanu na prihodu
  • Hijerarhija naloga - Sinhronizuj poslovne naloge za account-based marketing u Brevo
  • Mapiranje prilagođenih objekata - Mapiranje Salesforce prilagođenih objekata na Brevo atribute i događaje
  • Sinhronizacija članova kampanje - Sinhronizuj Salesforce članove kampanje sa Brevo listama
  • Praćenje aktivnosti - Sinhronizuj zadatke, događaje i email aktivnosti za ocenjivanje angažovanja
  • Streaming u realnom vremenu - Koristi Salesforce Streaming API za trenutna ažuriranja podataka
  • Podrška za SOQL upite - Filtriraj sinhronizovane podatke prilagođenim SOQL upitima

Preduslovi

Pre nego što započneš, proveri da imaš:

  1. Salesforce organizaciju (bilo koje izdanje sa API pristupom)
  2. Konfigurisanu Connected App u Salesforce Setup
  3. API pristup omogućen za tvoj Salesforce korisnički profil
  4. Brevo nalog sa API pristupom
  5. Tajo nalog

Autentifikacija

OAuth 2.0 Web Server tok (preporučeno)

Najbolje za produkcione integracije sa autorizacijom korisnika.

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 tok

Za server-to-server integracije bez interakcije korisnika.

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

Bezbednosni token

Salesforce zahteva dodavanje bezbednosnog tokena na lozinku za username-password tok. Resetuj token iz Setup > My Personal Information > Reset My Security Token.

Konfiguracija

Osnovno podešavanje

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

Mapiranje polja

Mapiranje Salesforce polja na Brevo atribute kontakta:

Default Mappings

Parameter Type Description
Email required
string

Email kontakta/leada (jedinstveni identifikator za Brevo)

FirstName optional
string

Mapira se na FIRSTNAME atribut u Brevo

LastName optional
string

Mapira se na LASTNAME atribut u Brevo

Phone optional
string

Mapira se na SMS atribut za WhatsApp/SMS poruke

Account.Name optional
string

Naziv pridruženog naloga/kompanije

LeadSource optional
string

Izvor akvizicije leada

StageName optional
string

Faza mogućnosti za praćenje poslova

OwnerId optional
string

Dodeljeni prodajni predstavnik za rutiranje

Mapiranje prilagođenih polja

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 endpointi

REST API resursi

MetodaEndpointOpis
GET/services/data/vXX.0/sobjects/ContactUpit kontakata
POST/services/data/vXX.0/sobjects/ContactKreiranje kontakta
PATCH/services/data/vXX.0/sobjects/Contact/{id}Ažuriranje kontakta
GET/services/data/vXX.0/sobjects/LeadUpit leadova
GET/services/data/vXX.0/sobjects/AccountUpit naloga
GET/services/data/vXX.0/sobjects/OpportunityUpit mogućnosti
GET/services/data/vXX.0/query?q={SOQL}Izvršavanje SOQL upita
POST/services/data/vXX.0/composite/sobjectsGrupno kreiranje/ažuriranje

Bulk API

MetodaEndpointOpis
POST/services/data/vXX.0/jobs/ingestKreiranje bulk ingest posla
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesOtpremanje batch podataka
GET/services/data/vXX.0/jobs/ingest/{jobId}Provera statusa posla

Streaming API

EndpointOpis
/cometd/XX.0CometD long-polling za događaje u realnom vremenu
PushTopicPretplata na promene zapisa putem SOQL tema
Change Data CaptureStriming finih promena na nivou polja
Platform EventsPrilagođena arhitektura zasnovana na događajima

Događaji

Događaji zapisa (Change Data Capture)

DogađajOkidačPrimer upotrebe
ContactChangeEventKontakt kreiran/ažuriran/obrisanSinhronizacija kontakata u realnom vremenu
LeadChangeEventLead kreiran/ažuriran/konvertovanPraćenje životnog ciklusa leada
OpportunityChangeEventFaza mogućnosti promenjenaAutomatizacija deal pipelinea
AccountChangeEventZapis naloga izmenjenSinhronizacija podataka kompanije

Platform Events

DogađajOkidačPrimer upotrebe
Lead_Converted__eLead konvertovan u kontaktNurture nakon konverzije
Deal_Won__eMogućnost zatvorena-dobijenaTok onboardinga kupca
Deal_Lost__eMogućnost zatvorena-izgubljenaWin-back kampanje

Primeri koda

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

Sinhronizacija kontakata sa SOQL filterom

// 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 u realnom vremenu

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

Ograničenja brzine

Salesforce REST API limiti zavise od tvog izdanja i broja licenci:

IzdanjeAPI zahtevi na 24 sata
Developer15.000
Enterprise1.000 po korisničkoj licenci (min 15.000)
Unlimited5.000 po korisničkoj licenci (min 15.000)
Performance5.000 po korisničkoj licenci (min 15.000)

Dodatna ograničenja:

  • Limit istovremenih API zahteva: 25 dugotrajnih zahteva
  • Bulk API: 15.000 batch-eva na 24 sata
  • Streaming API: 2.000 događaja dnevno (može se povećati)
  • Composite API: 25 podzahteva po composite zahtevu

Praćenje korišćenja API-ja

Prati korišćenje API-ja u Salesforce Setup > System Overview. Tajo koristi bulk API za velike sinhronizacije kako bi sačuvao tvoje API limite.

Rešavanje problema

Česti problemi

ProblemUzrokRešenje
INVALID_SESSION_IDToken istekaoAutomatski osvježi OAuth token
REQUEST_LIMIT_EXCEEDEDDostignut dnevni API limitKoristi Bulk API ili smanji učestalost sinhronizacije
FIELD_INTEGRITY_EXCEPTIONNedostaje obavezno poljeMapiraj sva obavezna polja u konfiguraciji
DUPLICATES_DETECTEDAktivna pravila za duplikateKonfiguriši podešavanja za obradu duplikata
INSUFFICIENT_ACCESSNedostaju dozvole za objekatDodeli API pristup u Salesforce profilu

Debug režim

Uključi detaljno logovanje:

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

Testiraj vezu

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

Najbolje prakse

  1. Koristi Bulk API za velike sinhronizacije - Prebaci se na Bulk API 2.0 za skupove podataka veće od 2.000 zapisa
  2. Implementiraj Change Data Capture - Koristi CDC za sinhronizaciju u realnom vremenu umesto ispitivanja
  3. Mapiraj samo potrebna polja - Smanji korišćenje API-ja sinhronizovanjem samo potrebnih polja
  4. Obrada osvežavanja tokena - Implementiraj automatsku logiku osvežavanja OAuth tokena
  5. Koristi composite zahteve - Kombinuj srodne API pozive kako bi smanjio broj zahteva
  6. Prvo testiraj u sandbox okruženju - Koristi Salesforce sandbox organizaciju pre produkcijskog postavljanja

Bezbednost

  • OAuth 2.0 - Standardna autorizacija sa više tipova dozvola
  • IP ograničenja - Salesforce podržava login IP opsege i podešavanja pouzdanih IP adresa
  • TLS 1.2+ - Sva API komunikacija enkriptovana sa minimalnim TLS 1.2
  • Bezbednost na nivou polja - Granularna kontrola pristupa polju po profilu
  • Upravljanje sesijom - Konfigurisano isticanje sesije i ograničenja istovremenih sesija

Povezani resursi

Subscribe to updates

developer-docs

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

AI асистент

Здраво! Питајте ме о документацији.

Započnite besplatno sa Brevo