Conector Salesforce

Conector Salesforce

Conectați Salesforce CRM la Brevo prin Tajo pentru sincronizare de nivel enterprise a contactelor, gestionarea lead-urilor, urmărirea oportunităților și automatizare de marketing bazată pe datele dvs. CRM.

Prezentare generală

ProprietateValoare
PlatformăSalesforce
CategorieCRM
Complexitate configurareAvansată
Integrare oficialăDa
Date sincronizateContacte, Lead-uri, Conturi, Oportunități, Evenimente
URL de bază APIhttps://yourInstance.salesforce.com/services/data/vXX.0

Funcționalități

  • Sincronizare bidirecțională contacte/lead-uri - Sincronizați contactele și lead-urile Salesforce cu listele de contacte Brevo
  • Urmărire oportunități - Mapați etapele și sumele ofertelor pentru segmentare bazată pe venituri
  • Ierarhie de conturi - Sincronizați conturile de companie pentru marketing bazat pe cont în Brevo
  • Mapare obiecte personalizate - Mapați obiectele personalizate Salesforce la atributele și evenimentele Brevo
  • Sincronizare membri campanie - Sincronizați membrii campaniei Salesforce cu listele Brevo
  • Urmărire activități - Sincronizați sarcini, evenimente și activități e-mail pentru scorarea implicării
  • Streaming în timp real - Utilizați Salesforce Streaming API pentru actualizări instantanee ale datelor
  • Suport interogări SOQL - Filtrați datele sincronizate cu interogări SOQL personalizate

Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

  1. O organizație Salesforce (orice ediție cu acces API)
  2. O aplicație conectată configurată în Salesforce Setup
  3. Acces API activat pentru profilul de utilizator Salesforce
  4. Un cont Brevo cu acces API
  5. Un cont Tajo

Autentificare

Flux OAuth 2.0 Web Server (Recomandat)

Ideal pentru integrări de producție cu autorizare utilizator.

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

Flux cu nume de utilizator și parolă

Pentru integrări server-la-server fără interacțiunea utilizatorului.

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 de securitate

Salesforce necesită adăugarea tokenului de securitate la parolă pentru fluxul cu nume de utilizator și parolă. Resetați tokenul din Setup > My Personal Information > Reset My Security Token.

Configurare

Configurare de bază

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

Mapare câmpuri

Mapați câmpurile Salesforce la atributele de contact Brevo:

Mapări implicite

Parameter Type Description
Email required
string

E-mailul contactului/lead-ului (identificator unic pentru Brevo)

FirstName optional
string

Mapează la atributul FIRSTNAME în Brevo

LastName optional
string

Mapează la atributul LASTNAME în Brevo

Phone optional
string

Mapează la atributul SMS pentru mesaje WhatsApp/SMS

Account.Name optional
string

Numele contului/companiei asociate

LeadSource optional
string

Sursa de achiziție a lead-ului

StageName optional
string

Etapa oportunității pentru urmărirea ofertelor

OwnerId optional
string

Reprezentantul de vânzări atribuit pentru rutare

Mapare câmpuri personalizate

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

Puncte finale API

Resurse API REST

MetodăPunct finalDescriere
GET/services/data/vXX.0/sobjects/ContactInterogare contacte
POST/services/data/vXX.0/sobjects/ContactCreează un contact
PATCH/services/data/vXX.0/sobjects/Contact/{id}Actualizează un contact
GET/services/data/vXX.0/sobjects/LeadInterogare lead-uri
GET/services/data/vXX.0/sobjects/AccountInterogare conturi
GET/services/data/vXX.0/sobjects/OpportunityInterogare oportunități
GET/services/data/vXX.0/query?q={SOQL}Execută interogare SOQL
POST/services/data/vXX.0/composite/sobjectsCreare/actualizare în lot

Bulk API

MetodăPunct finalDescriere
POST/services/data/vXX.0/jobs/ingestCreează job de ingestie în bloc
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesÎncarcă date în lot
GET/services/data/vXX.0/jobs/ingest/{jobId}Verifică statusul job-ului

Streaming API

Punct finalDescriere
/cometd/XX.0Long-polling CometD pentru evenimente în timp real
PushTopicAbonați-vă la modificări ale înregistrărilor prin topicuri bazate pe SOQL
Change Data CaptureTransmiteți modificări granulare la nivel de câmp
Platform EventsArhitectură personalizată bazată pe evenimente

Evenimente

Evenimente înregistrare (Change Data Capture)

EvenimentDeclanșatorCaz de utilizare
ContactChangeEventContact creat/actualizat/ștersSincronizare contact în timp real
LeadChangeEventLead creat/actualizat/convertitUrmărire ciclu de viață lead
OpportunityChangeEventEtapă oportunitate schimbatăAutomatizare pipeline oferte
AccountChangeEventÎnregistrare cont modificatăSincronizare date companie

Evenimente de platformă

EvenimentDeclanșatorCaz de utilizare
Lead_Converted__eLead convertit în contactNurturing post-conversie
Deal_Won__eOportunitate câștigatăFlux de onboarding client
Deal_Lost__eOportunitate pierdutăCampanii de câștigare înapoi

Exemple de cod

Inițializare conector

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

Sincronizare contacte cu filtru 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 în timp real

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

Limite de rată

Limitele API REST Salesforce depind de ediția și numărul de licențe:

EdițieCereri API per 24 de ore
Developer15.000
Enterprise1.000 per licență utilizator (minim 15.000)
Unlimited5.000 per licență utilizator (minim 15.000)
Performance5.000 per licență utilizator (minim 15.000)

Limite suplimentare:

  • Limită API concurent: 25 cereri cu durată lungă
  • Bulk API: 15.000 loturi per 24 de ore
  • Streaming API: 2.000 evenimente pe zi (poate fi majorat)
  • Composite API: 25 subcereri per cerere compusă

Monitorizare utilizare API

Monitorizați utilizarea API în Salesforce Setup > System Overview. Tajo utilizează Bulk API pentru sincronizări mari pentru a economisi limitele API.

Depanare

Probleme frecvente

ProblemăCauzăSoluție
INVALID_SESSION_IDToken expiratActualizați automat tokenul OAuth
REQUEST_LIMIT_EXCEEDEDLimită API zilnică atinsăUtilizați Bulk API sau reduceți frecvența sincronizării
FIELD_INTEGRITY_EXCEPTIONCâmp obligatoriu lipsăMapați toate câmpurile obligatorii în configurare
DUPLICATES_DETECTEDReguli de duplicate activeConfigurați preferințele de gestionare a duplicatelor
INSUFFICIENT_ACCESSPermisiuni obiect lipsăAcordați acces API în profilul Salesforce

Modul de depanare

Activați jurnalizarea verbosă:

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

Testare conexiune

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

Bune practici

  1. Utilizați Bulk API pentru sincronizări mari - Treceți la Bulk API 2.0 pentru seturi de date cu mai mult de 2.000 înregistrări
  2. Implementați Change Data Capture - Utilizați CDC pentru sincronizare în timp real în loc de interogare
  3. Mapați doar câmpurile necesare - Reduceți utilizarea API sincronizând doar câmpurile necesare
  4. Gestionați reîmprospătarea tokenului - Implementați logica automată de reîmprospătare a tokenului OAuth
  5. Utilizați cereri compuse - Combinați apeluri API corelate pentru a reduce numărul de cereri
  6. Testați mai întâi în sandbox - Utilizați un org sandbox Salesforce înainte de implementarea în producție

Securitate

  • OAuth 2.0 - Autorizare standard industrie cu mai multe tipuri de grant
  • Restricții IP - Salesforce suportă intervale IP de autentificare și setări IP de încredere
  • TLS 1.2+ - Toată comunicarea API criptată cu minim TLS 1.2
  • Securitate la nivel de câmp - Control granular al accesului la câmpuri per profil
  • Gestionare sesiuni - Timeout de sesiune configurabil și limite de sesiuni concurente

Resurse conexe

Subscribe to updates

developer-docs

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

Asistent AI

Bună! Întreabă-mă orice despre documentație.

Începe gratuit cu Brevo