Salesforce Connector

Salesforce Connector

Forbind dit Salesforce CRM med Brevo via Tajo for kontaktsynkronisering på enterprise-niveau, lead-håndtering, opportunity-sporing og marketingautomatisering drevet af dine CRM-data.

Oversigt

EgenskabVærdi
PlatformSalesforce
KategoriCRM
OpsætningskompleksitetAvanceret
Officiel integrationJa
Synkroniserede dataKontakter, leads, accounts, opportunities, hændelser
API-base-URLhttps://yourInstance.salesforce.com/services/data/vXX.0

Funktioner

  • Tovejs kontakt-/lead-synkronisering - Synkronisér Salesforce-kontakter og leads med Brevo-kontaktlister
  • Opportunity-sporing - Kortlæg aftalestadier og beløb til omsætningsbaseret segmentering
  • Account-hierarki - Synkronisér virksomhedsaccounts til kontobaseret marketing i Brevo
  • Mapping af brugerdefinerede objekter - Kortlæg Salesforce-brugerdefinerede objekter til Brevo-attributter og -hændelser
  • Kampagnemedlemssynkronisering - Synkronisér Salesforce-kampagnemedlemmer med Brevo-lister
  • Aktivitetssporing - Synkronisér opgaver, hændelser og e-mailaktiviteter til engagementscoring
  • Streaming i realtid - Brug Salesforce Streaming API for øjeblikkelige dataopdateringer
  • Understøttelse af SOQL-forespørgsler - Filtrér synkroniserede data med brugerdefinerede SOQL-forespørgsler

Forudsætninger

Før du begynder, skal du sikre dig, at du har:

  1. En Salesforce-organisation (enhver udgave med API-adgang)
  2. En Connected App konfigureret i Salesforce Setup
  3. API-adgang aktiveret for din Salesforce-brugerprofil
  4. En Brevo-konto med API-adgang
  5. En Tajo-konto

Autentifikation

OAuth 2.0 Web Server Flow (anbefalet)

Bedst til produktionsintegrationer med brugerautorisation.

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 Flow

Til server-til-server-integrationer uden brugerinteraktion.

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

Sikkerhedstoken

Salesforce kræver, at du tilføjer dit sikkerhedstoken til din adgangskode i username-password-flowet. Nulstil dit token fra Setup > My Personal Information > Reset My Security Token.

Konfiguration

Grundlæggende opsætning

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

Feltmapping

Kortlæg Salesforce-felter til Brevo-kontaktattributter:

Standardmappinger

Parameter Type Description
Email required
string

Kontakt-/lead-e-mail (unik identifikator for Brevo)

FirstName optional
string

Kortlægges til FIRSTNAME-attribut i Brevo

LastName optional
string

Kortlægges til LASTNAME-attribut i Brevo

Phone optional
string

Kortlægges til SMS-attribut til WhatsApp/SMS-beskeder

Account.Name optional
string

Tilknyttet account-/virksomhedsnavn

LeadSource optional
string

Lead-anskaffelseskilde

StageName optional
string

Opportunity-stadie til aftalesporing

OwnerId optional
string

Tildelt sælger til routing

Mapping af brugerdefinerede felter

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-endpoints

REST API-ressourcer

MetodeEndpointBeskrivelse
GET/services/data/vXX.0/sobjects/ContactForespørg kontakter
POST/services/data/vXX.0/sobjects/ContactOpret en kontakt
PATCH/services/data/vXX.0/sobjects/Contact/{id}Opdatér en kontakt
GET/services/data/vXX.0/sobjects/LeadForespørg leads
GET/services/data/vXX.0/sobjects/AccountForespørg accounts
GET/services/data/vXX.0/sobjects/OpportunityForespørg opportunities
GET/services/data/vXX.0/query?q={SOQL}Udfør SOQL-forespørgsel
POST/services/data/vXX.0/composite/sobjectsBatch-opret/opdatér

Bulk API

MetodeEndpointBeskrivelse
POST/services/data/vXX.0/jobs/ingestOpret bulk ingest-job
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesUpload batch-data
GET/services/data/vXX.0/jobs/ingest/{jobId}Tjek jobstatus

Streaming API

EndpointBeskrivelse
/cometd/XX.0CometD long-polling til hændelser i realtid
PushTopicAbonnér på postændringer via SOQL-baserede topics
Change Data CaptureStream finkornede ændringer på feltniveau
Platform EventsBrugerdefineret hændelsesdrevet arkitektur

Hændelser

Posthændelser (Change Data Capture)

HændelseTriggerAnvendelse
ContactChangeEventKontakt oprettet/opdateret/slettetKontaktsynkronisering i realtid
LeadChangeEventLead oprettet/opdateret/konverteretSporing af lead-livscyklus
OpportunityChangeEventOpportunity-stadie ændretAutomatisering af aftalepipeline
AccountChangeEventAccount-post ændretSynkronisering af virksomhedsdata

Platform Events

HændelseTriggerAnvendelse
Lead_Converted__eLead konverteret til kontaktNurture efter konvertering
Deal_Won__eOpportunity lukket-vundetFlow til kunde-onboarding
Deal_Lost__eOpportunity lukket-tabtWin-back-kampagner

Kodeeksempler

Initialisér connector

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

Synkronisér kontakter med SOQL-filter

// 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 i realtid

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

Rate limits

Salesforce REST API-grænser afhænger af din udgave og licensantal:

UdgaveAPI-anmodninger pr. 24 timer
Developer15.000
Enterprise1.000 pr. brugerlicens (min. 15.000)
Unlimited5.000 pr. brugerlicens (min. 15.000)
Performance5.000 pr. brugerlicens (min. 15.000)

Yderligere grænser:

  • Samtidig API-grænse: 25 langtkørende anmodninger
  • Bulk API: 15.000 batches pr. 24 timer
  • Streaming API: 2.000 hændelser pr. dag (kan forhøjes)
  • Composite API: 25 underanmodninger pr. composite-anmodning

Overvågning af API-forbrug

Overvåg dit API-forbrug i Salesforce Setup > System Overview. Tajo bruger bulk-API til store synkroniseringer for at spare på dine API-grænser.

Fejlfinding

Almindelige problemer

ProblemÅrsagLøsning
INVALID_SESSION_IDToken udløbetOpdatér OAuth-token automatisk
REQUEST_LIMIT_EXCEEDEDDaglig API-grænse nåetBrug Bulk API eller reducér synkroniseringsfrekvens
FIELD_INTEGRITY_EXCEPTIONPåkrævet felt manglerKortlæg alle påkrævede felter i konfigurationen
DUPLICATES_DETECTEDDuplikatregler aktiveKonfigurér indstillinger for håndtering af duplikater
INSUFFICIENT_ACCESSManglende objekttilladelserGiv API-adgang i Salesforce-profilen

Debug-tilstand

Aktivér detaljeret logging:

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

Testforbindelse

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

Bedste praksis

  1. Brug Bulk API til store synkroniseringer - Skift til Bulk API 2.0 for datasæt over 2.000 poster
  2. Implementér Change Data Capture - Brug CDC til synkronisering i realtid i stedet for polling
  3. Kortlæg kun nødvendige felter - Reducér API-forbrug ved kun at synkronisere nødvendige felter
  4. Håndtér token-opdatering - Implementér automatisk logik til OAuth-token-opdatering
  5. Brug composite-anmodninger - Kombinér relaterede API-kald for at reducere antallet af anmodninger
  6. Test først i sandbox - Brug en Salesforce sandbox-organisation før produktionsudrulning

Sikkerhed

  • OAuth 2.0 - Industristandardautorisation med flere grant-typer
  • IP-begrænsninger - Salesforce understøtter login-IP-intervaller og indstillinger for betroede IP’er
  • TLS 1.2+ - Al API-kommunikation krypteres med minimum TLS 1.2
  • Sikkerhed på feltniveau - Granulær feltadgangskontrol pr. profil
  • Sessionsstyring - Konfigurérbar session-timeout og grænser for samtidige sessioner

Relaterede ressourcer

Subscribe to updates

developer-docs

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

AI-assistent

Hej! Spørg mig om dokumentationen.

Start gratis med Brevo