Conector Salesforce
Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.
Ilustrație · date de exemplu
Exemplu de sincronizare
Sursă
Salesforce
Starea conectorului: Planificat
Destinație
Celălalt instrument al tău
Starea conectorului: Instrument personalizat
Maparea câmpurilor
| Câmp sursă | Câmp destinație | Valoare exemplu |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Ciornă
- Verifică o înregistrare
- Aprobă această versiune
Stările se referă la fiecare conector și nu garantează că această sincronizare este pregătită. Câmpurile sunt ilustrative. Verifică schema și permisiunile reale înainte de sincronizare.
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ă
| Proprietate | Valoare |
|---|---|
| Platformă | Salesforce |
| Categorie | CRM |
| Complexitate configurare | Avansată |
| Integrare oficială | Nu |
| Date sincronizate | Contacte, Lead-uri, Conturi, Oportunități, Evenimente |
| URL de bază API | https://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:
- O organizație Salesforce (orice ediție cu acces API)
- O aplicație conectată configurată în Salesforce Setup
- Acces API activat pentru profilul de utilizator Salesforce
- Un cont Brevo cu acces API
- Un cont Tajo
Autentificare
Flux OAuth 2.0 Web Server (Recomandat)
Ideal pentru integrări de producție cu autorizare utilizator.
# 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}"Flux cu nume de utilizator și parolă
Pentru integrări server-la-server fără interacțiunea utilizatorului.
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: 17Mapare 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_TIERPuncte finale API
Resurse API REST
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /services/data/vXX.0/sobjects/Contact | Interogare contacte |
POST | /services/data/vXX.0/sobjects/Contact | Creează un contact |
PATCH | /services/data/vXX.0/sobjects/Contact/{id} | Actualizează un contact |
GET | /services/data/vXX.0/sobjects/Lead | Interogare lead-uri |
GET | /services/data/vXX.0/sobjects/Account | Interogare conturi |
GET | /services/data/vXX.0/sobjects/Opportunity | Interogare oportunități |
GET | /services/data/vXX.0/query?q={SOQL} | Execută interogare SOQL |
POST | /services/data/vXX.0/composite/sobjects | Creare/actualizare în lot |
Bulk API
| Metodă | Punct final | Descriere |
|---|---|---|
POST | /services/data/vXX.0/jobs/ingest | Creează 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 final | Descriere |
|---|---|
/cometd/XX.0 | Long-polling CometD pentru evenimente în timp real |
| PushTopic | Abonați-vă la modificări ale înregistrărilor prin topicuri bazate pe SOQL |
| Change Data Capture | Transmiteți modificări granulare la nivel de câmp |
| Platform Events | Arhitectură personalizată bazată pe evenimente |
Evenimente
Evenimente înregistrare (Change Data Capture)
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
ContactChangeEvent | Contact creat/actualizat/șters | Sincronizare contact în timp real |
LeadChangeEvent | Lead creat/actualizat/convertit | Urmărire ciclu de viață lead |
OpportunityChangeEvent | Etapă oportunitate schimbată | Automatizare pipeline oferte |
AccountChangeEvent | Înregistrare cont modificată | Sincronizare date companie |
Evenimente de platformă
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
Lead_Converted__e | Lead convertit în contact | Nurturing post-conversie |
Deal_Won__e | Oportunitate câștigată | Flux de onboarding client |
Deal_Lost__e | Oportunitate 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 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});Sincronizare contacte cu filtru 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// }Streaming în timp real
// 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 }});Limite de rată
Limitele API REST Salesforce depind de ediția și numărul de licențe:
| Ediție | Cereri API per 24 de ore |
|---|---|
| Developer | 15.000 |
| Enterprise | 1.000 per licență utilizator (minim 15.000) |
| Unlimited | 5.000 per licență utilizator (minim 15.000) |
| Performance | 5.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_ID | Token expirat | Actualizați automat tokenul OAuth |
| REQUEST_LIMIT_EXCEEDED | Limită API zilnică atinsă | Utilizați Bulk API sau reduceți frecvența sincronizării |
| FIELD_INTEGRITY_EXCEPTION | Câmp obligatoriu lipsă | Mapați toate câmpurile obligatorii în configurare |
| DUPLICATES_DETECTED | Reguli de duplicate active | Configurați preferințele de gestionare a duplicatelor |
| INSUFFICIENT_ACCESS | Permisiuni 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: trueTestare conexiune
tajo connectors test salesforce# ✓ OAuth token valid# ✓ Contacts accessible# ✓ Leads accessible# ✓ Accounts accessible# ✓ Opportunities accessible# ✓ Bulk API enabledBune practici
- 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
- Implementați Change Data Capture - Utilizați CDC pentru sincronizare în timp real în loc de interogare
- Mapați doar câmpurile necesare - Reduceți utilizarea API sincronizând doar câmpurile necesare
- Gestionați reîmprospătarea tokenului - Implementați logica automată de reîmprospătare a tokenului OAuth
- Utilizați cereri compuse - Combinați apeluri API corelate pentru a reduce numărul de cereri
- 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