Salesforce-kobling

Salesforce-kobling

Koble Salesforce CRM til Brevo via Tajo for enterprise-grade kontaktsynkronisering, lead-håndtering, opportunity-sporing og markedsføringsautomatisering drevet av CRM-dataene dine.

Oversikt

EgenskapVerdi
PlattformSalesforce
KategoriCRM
OppsettskompleksitetAvansert
Offisiell integrasjonJa
Synkroniserte dataKontakter, leads, accounts, opportunities, hendelser
API Base URLhttps://yourInstance.salesforce.com/services/data/vXX.0

Funksjoner

  • Toveis kontakt-/lead-synkronisering - Synkroniser Salesforce-kontakter og leads med Brevo-kontaktlister
  • Opportunity-sporing - Mapp avtaletrinn og beløp for inntektsbasert segmentering
  • Account-hierarki - Synkroniser selskaps-accounts for account-based marketing i Brevo
  • Mapping av egendefinerte objekter - Mapp Salesforce egendefinerte objekter til Brevo-attributter og -hendelser
  • Synkronisering av kampanjemedlemmer - Synkroniser Salesforce-kampanjemedlemmer med Brevo-lister
  • Aktivitetssporing - Synkroniser oppgaver, hendelser og e-postaktiviteter for engasjementspoeng
  • Sanntids-streaming - Bruk Salesforce Streaming API for umiddelbare dataoppdateringer
  • SOQL-spørringsstøtte - Filtrer synkroniserte data med egendefinerte SOQL-spørringer

Forutsetninger

Før du begynner, sørg for at du har:

  1. En Salesforce-org (enhver edition med API-tilgang)
  2. En Connected App konfigurert i Salesforce Setup
  3. API-tilgang aktivert for Salesforce-brukerprofilen din
  4. En Brevo-konto med API-tilgang
  5. En Tajo-konto

Autentisering

OAuth 2.0 Web Server Flow (anbefalt)

Best for produksjonsintegrasjoner med brukerautorisering.

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

For server-til-server-integrasjoner uten brukerinteraksjon.

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

Security Token

Salesforce krever at du legger til security-tokenet ditt etter passordet i username-password-flyten. Tilbakestill tokenet ditt fra Setup > My Personal Information > Reset My Security Token.

Konfigurasjon

Grunnleggende oppsett

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

Mapp Salesforce-felter til Brevo-kontaktattributter:

Standardmappinger

Parameter Type Description
Email required
string

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

FirstName optional
string

Mappes til FIRSTNAME-attributtet i Brevo

LastName optional
string

Mappes til LASTNAME-attributtet i Brevo

Phone optional
string

Mappes til SMS-attributtet for WhatsApp/SMS-meldinger

Account.Name optional
string

Tilknyttet account-/selskapsnavn

LeadSource optional
string

Kilde for lead-anskaffelse

StageName optional
string

Opportunity-trinn for avtalesporing

OwnerId optional
string

Tildelt salgsrepresentant for routing

Mapping av egendefinerte felt

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

REST API-ressurser

MetodeEndepunktBeskrivelse
GET/services/data/vXX.0/sobjects/ContactSpør kontakter
POST/services/data/vXX.0/sobjects/ContactOpprett en kontakt
PATCH/services/data/vXX.0/sobjects/Contact/{id}Oppdater en kontakt
GET/services/data/vXX.0/sobjects/LeadSpør leads
GET/services/data/vXX.0/sobjects/AccountSpør accounts
GET/services/data/vXX.0/sobjects/OpportunitySpør opportunities
GET/services/data/vXX.0/query?q={SOQL}Kjør SOQL-spørring
POST/services/data/vXX.0/composite/sobjectsBatch opprett/oppdater

Bulk API

MetodeEndepunktBeskrivelse
POST/services/data/vXX.0/jobs/ingestOpprett bulk ingest-jobb
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesLast opp batch-data
GET/services/data/vXX.0/jobs/ingest/{jobId}Sjekk jobbstatus

Streaming API

EndepunktBeskrivelse
/cometd/XX.0CometD long-polling for sanntidshendelser
PushTopicAbonner på endringer i poster via SOQL-baserte temaer
Change Data CaptureStream fingranulerte endringer på feltnivå
Platform EventsEgendefinert hendelsesdrevet arkitektur

Hendelser

Post-hendelser (Change Data Capture)

HendelseTriggerBruksområde
ContactChangeEventKontakt opprettet/oppdatert/slettetSanntids kontaktsynkronisering
LeadChangeEventLead opprettet/oppdatert/konvertertSporing av lead-livssyklus
OpportunityChangeEventOpportunity-trinn endretPipelineautomatisering
AccountChangeEventAccount-post endretSynkronisering av selskapsdata

Platform Events

HendelseTriggerBruksområde
Lead_Converted__eLead konvertert til kontaktNurture etter konvertering
Deal_Won__eOpportunity closed-wonOnboarding-flyt for kunder
Deal_Lost__eOpportunity closed-lostWin-back-kampanjer

Kodeeksempler

Initialiser kobling

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

Synkroniser 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
// }

Sanntids-streaming

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

Hastighetsgrenser

Salesforce REST API-grenser avhenger av din edition og antall lisenser:

EditionAPI-forespørsler per 24 timer
Developer15 000
Enterprise1 000 per brukerlisens (min 15 000)
Unlimited5 000 per brukerlisens (min 15 000)
Performance5 000 per brukerlisens (min 15 000)

Ytterligere grenser:

  • Samtidig API-grense: 25 long-running-forespørsler
  • Bulk API: 15 000 batcher per 24 timer
  • Streaming API: 2 000 hendelser per dag (kan økes)
  • Composite API: 25 subforespørsler per composite-forespørsel

Overvåking av API-bruk

Overvåk API-bruken din i Salesforce Setup > System Overview. Tajo bruker bulk API for store synkroniseringer for å spare på API-grensene dine.

Feilsøking

Vanlige problemer

ProblemÅrsakLøsning
INVALID_SESSION_IDToken utløptOppdater OAuth-token automatisk
REQUEST_LIMIT_EXCEEDEDDaglig API-grense nåddBruk Bulk API eller reduser synkroniseringsfrekvens
FIELD_INTEGRITY_EXCEPTIONPåkrevd felt manglerMapp alle påkrevde felter i konfigurasjonen
DUPLICATES_DETECTEDDuplikatregler aktiveKonfigurer preferanser for duplikathåndtering
INSUFFICIENT_ACCESSManglende objekttillatelserGi API-tilgang i Salesforce-profilen

Feilsøkingsmodus

Aktiver detaljert logging:

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

Test tilkobling

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

Beste praksis

  1. Bruk Bulk API for store synkroniseringer - Bytt til Bulk API 2.0 for datasett over 2 000 poster
  2. Implementer Change Data Capture - Bruk CDC for sanntidssynkronisering i stedet for polling
  3. Mapp kun nødvendige felter - Reduser API-bruk ved å synkronisere kun påkrevde felter
  4. Håndter token-oppdatering - Implementer automatisk OAuth token-oppdateringslogikk
  5. Bruk composite-forespørsler - Kombiner relaterte API-kall for å redusere antall forespørsler
  6. Test i sandbox først - Bruk en Salesforce-sandbox-org før produksjonsutrulling

Sikkerhet

  • OAuth 2.0 - Industristandard autorisering med flere grant-typer
  • IP-restriksjoner - Salesforce støtter innloggings-IP-områder og betrodde IP-innstillinger
  • TLS 1.2+ - All API-kommunikasjon kryptert med minimum TLS 1.2
  • Sikkerhet på feltnivå - Granulær feltilgangskontroll per profil
  • Sesjonshåndtering - Konfigurerbar sesjonstimeout og grenser for samtidige sesjoner

Relaterte ressurser

Subscribe to updates

developer-docs

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

AI-assistent

Hei! Spør meg om dokumentasjonen.

Start gratis med Brevo