Salesforce-koppling

Salesforce-koppling

Anslut ditt Salesforce CRM till Brevo via Tajo för kontaktsynkronisering på företagsnivå, leadhantering, uppföljning av affärsmöjligheter och marknadsautomation driven av din CRM-data.

Översikt

EgenskapVärde
PlattformSalesforce
KategoriCRM
InstallationskomplexitetAvancerad
Officiell integrationJa
Data som synkasKontakter, leads, konton, affärsmöjligheter, händelser
API bas-URLhttps://yourInstance.salesforce.com/services/data/vXX.0

Funktioner

  • Dubbelriktad synk av kontakter/leads - Synkronisera Salesforce-kontakter och leads med Brevo-kontaktlistor
  • Uppföljning av affärsmöjligheter - Mappa affärsstadier och belopp för intäktsbaserad segmentering
  • Kontohierarki - Synka företagskonton för kontobaserad marknadsföring i Brevo
  • Mappning av anpassade objekt - Mappa Salesforce-anpassade objekt till Brevo-attribut och händelser
  • Synkronisering av kampanjmedlemmar - Synka medlemmar i Salesforce-kampanjer med Brevo-listor
  • Aktivitetsspårning - Synka uppgifter, händelser och e-postaktiviteter för engagemangsscoring
  • Realtidsstreaming - Använd Salesforce Streaming API för omedelbara datauppdateringar
  • SOQL-stöd för frågor - Filtrera synkad data med anpassade SOQL-frågor

Förutsättningar

Innan du börjar, se till att du har:

  1. En Salesforce-org (valfri utgåva med API-åtkomst)
  2. En Connected App konfigurerad i Salesforce Setup
  3. API-åtkomst aktiverad för din Salesforce-användarprofil
  4. Ett Brevo-konto med API-åtkomst
  5. Ett Tajo-konto

Autentisering

OAuth 2.0 Web Server-flöde (rekommenderas)

Bäst för produktionsintegrationer med användargodkännande.

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

Användarnamn-lösenordsflöde

För server-till-server-integrationer utan användarinteraktion.

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

Säkerhetstoken

Salesforce kräver att du lägger till din säkerhetstoken efter ditt lösenord för användarnamn-lösenordsflödet. Återställ din token från Setup > My Personal Information > Reset My Security Token.

Konfiguration

Grundinställning

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

Fältmappning

Mappa Salesforce-fält till Brevo-kontaktattribut:

Standardmappningar

Parameter Type Description
Email required
string

Kontakt-/lead-e-post (unik identifierare för Brevo)

FirstName optional
string

Mappas till attributet FIRSTNAME i Brevo

LastName optional
string

Mappas till attributet LASTNAME i Brevo

Phone optional
string

Mappas till attributet SMS för WhatsApp/SMS-meddelanden

Account.Name optional
string

Tillhörande konto-/företagsnamn

LeadSource optional
string

Källa för leadförvärv

StageName optional
string

Stadium för affärsmöjlighet för uppföljning av affärer

OwnerId optional
string

Tilldelad säljare för routing

Mappning av anpassade fält

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

MetodEndpointBeskrivning
GET/services/data/vXX.0/sobjects/ContactFråga kontakter
POST/services/data/vXX.0/sobjects/ContactSkapa en kontakt
PATCH/services/data/vXX.0/sobjects/Contact/{id}Uppdatera en kontakt
GET/services/data/vXX.0/sobjects/LeadFråga leads
GET/services/data/vXX.0/sobjects/AccountFråga konton
GET/services/data/vXX.0/sobjects/OpportunityFråga affärsmöjligheter
GET/services/data/vXX.0/query?q={SOQL}Kör SOQL-fråga
POST/services/data/vXX.0/composite/sobjectsBatch-skapa/uppdatera

Bulk API

MetodEndpointBeskrivning
POST/services/data/vXX.0/jobs/ingestSkapa bulk-ingestjobb
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesLadda upp batch-data
GET/services/data/vXX.0/jobs/ingest/{jobId}Kontrollera jobbstatus

Streaming API

EndpointBeskrivning
/cometd/XX.0CometD long-polling för händelser i realtid
PushTopicPrenumerera på poständringar via SOQL-baserade ämnen
Change Data CaptureStreama granulära ändringar på fältnivå
Platform EventsAnpassad händelsedriven arkitektur

Händelser

Posthändelser (Change Data Capture)

HändelseUtlösareAnvändningsfall
ContactChangeEventKontakt skapad/uppdaterad/raderadKontaktsynk i realtid
LeadChangeEventLead skapad/uppdaterad/konverteradSpårning av leadlivscykel
OpportunityChangeEventStadium för affärsmöjlighet ändratAutomation av affärspipeline
AccountChangeEventKontopost modifieradSynkronisering av företagsdata

Platform Events

HändelseUtlösareAnvändningsfall
Lead_Converted__eLead konverterad till kontaktNurture efter konvertering
Deal_Won__eAffärsmöjlighet vunnenFlöde för kundonboarding
Deal_Lost__eAffärsmöjlighet förloradWin-back-kampanjer

Kodexempel

Initiera kopplingen

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

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

Hastighetsbegränsningar

Gränser för Salesforce REST API beror på din utgåva och antal licenser:

UtgåvaAPI-förfrågningar per 24 timmar
Developer15 000
Enterprise1 000 per användarlicens (min 15 000)
Unlimited5 000 per användarlicens (min 15 000)
Performance5 000 per användarlicens (min 15 000)

Ytterligare gränser:

  • Gräns för samtidiga API: 25 långvariga förfrågningar
  • Bulk API: 15 000 batcher per 24 timmar
  • Streaming API: 2 000 händelser per dag (kan utökas)
  • Composite API: 25 delförfrågningar per composite-förfrågan

Övervakning av API-användning

Övervaka din API-användning i Salesforce Setup > System Overview. Tajo använder bulk-API för stora synkar för att spara dina API-gränser.

Felsökning

Vanliga problem

ProblemOrsakLösning
INVALID_SESSION_IDToken utgångenUppdatera OAuth-token automatiskt
REQUEST_LIMIT_EXCEEDEDDaglig API-gräns nåddAnvänd Bulk API eller minska synkfrekvensen
FIELD_INTEGRITY_EXCEPTIONObligatoriskt fält saknasMappa alla obligatoriska fält i konfigurationen
DUPLICATES_DETECTEDDubblettregler aktivaKonfigurera inställningar för dubletthantering
INSUFFICIENT_ACCESSSaknar objektbehörigheterBevilja API-åtkomst i Salesforce-profilen

Felsökningsläge

Aktivera utförlig loggning:

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

Testa anslutning

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

Bästa praxis

  1. Använd Bulk API för stora synkar - Byt till Bulk API 2.0 för dataset över 2 000 poster
  2. Implementera Change Data Capture - Använd CDC för synk i realtid istället för polling
  3. Mappa endast nödvändiga fält - Minska API-användningen genom att endast synka nödvändiga fält
  4. Hantera tokenuppdatering - Implementera automatisk logik för att uppdatera OAuth-token
  5. Använd composite-förfrågningar - Kombinera relaterade API-anrop för att minska antalet förfrågningar
  6. Testa i sandbox först - Använd en Salesforce-sandbox-org innan produktionsdistribution

Säkerhet

  • OAuth 2.0 - Industristandard för auktorisering med flera grant-typer
  • IP-begränsningar - Salesforce stöder inloggnings-IP-intervall och betrodda IP-inställningar
  • TLS 1.2+ - All API-kommunikation krypterad med minst TLS 1.2
  • Säkerhet på fältnivå - Granulär åtkomstkontroll per fält per profil
  • Sessionshantering - Konfigurerbar sessionstimeout och gränser för samtidiga sessioner

Relaterade resurser

Subscribe to updates

developer-docs

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

AI-assistent

Hej! Fråga mig om dokumentationen.

Börja gratis med Brevo