Salesforce-connector
Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Salesforce
Connectorstatus: Gepland
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
Verbind je Salesforce CRM met Brevo via Tajo voor contactsynchronisatie op enterpriseniveau, leadmanagement, opportunitytracking en marketingautomatisering aangestuurd door je CRM-data.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | Salesforce |
| Categorie | CRM |
| Setupcomplexiteit | Geavanceerd |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Contacten, Leads, Accounts, Opportunities, Events |
| API Base URL | https://yourInstance.salesforce.com/services/data/vXX.0 |
Functies
- Bidirectionele contact-/leadsynchronisatie - Synchroniseer Salesforce-contacten en leads met Brevo-contactlijsten
- Opportunity-tracking - Map dealfases en bedragen voor omzetgebaseerde segmentatie
- Accounthierarchie - Synchroniseer bedrijfsaccounts voor account-based marketing in Brevo
- Custom object-mapping - Map Salesforce custom objects naar Brevo-attributen en -events
- Campaign member-sync - Synchroniseer Salesforce campaign members met Brevo-lijsten
- Activiteitstracking - Synchroniseer tasks, events en e-mailactiviteiten voor engagementscoring
- Realtime streaming - Gebruik de Salesforce Streaming API voor directe data-updates
- SOQL query-ondersteuning - Filter gesynchroniseerde data met custom SOQL queries
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een Salesforce-org (elke editie met API-toegang)
- Een Connected App die is geconfigureerd in Salesforce Setup
- API-toegang ingeschakeld voor je Salesforce-gebruikersprofiel
- Een Brevo-account met API-toegang
- Een Tajo-account
Authenticatie
OAuth 2.0 Web Server Flow (aanbevolen)
Het beste voor productie-integraties met gebruikersautorisatie.
# 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}"Username-Password Flow
Voor server-naar-server-integraties zonder gebruikersinteractie.
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 vereist dat je je security token aan je wachtwoord toevoegt voor de username-password flow. Reset je token via Setup > My Personal Information > Reset My Security Token.
Configuratie
Basisinstelling
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: 17Veldmapping
Map Salesforce-velden naar Brevo-contactattributen:
Standaardmappings
| Parameter | Type | Description |
|---|---|---|
Email required | string | E-mail van contact/lead (unieke identifier voor Brevo) |
FirstName optional | string | Mapt naar FIRSTNAME-attribuut in Brevo |
LastName optional | string | Mapt naar LASTNAME-attribuut in Brevo |
Phone optional | string | Mapt naar SMS-attribuut voor WhatsApp/SMS-berichten |
Account.Name optional | string | Gekoppelde account-/bedrijfsnaam |
LeadSource optional | string | Leadacquisitiebron |
StageName optional | string | Opportunityfase voor dealtracking |
OwnerId optional | string | Toegewezen sales rep voor routing |
Custom field-mapping
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_TIERAPI-endpoints
REST API-resources
| Method | Endpoint | Beschrijving |
|---|---|---|
GET | /services/data/vXX.0/sobjects/Contact | Query contacten |
POST | /services/data/vXX.0/sobjects/Contact | Maak een contact aan |
PATCH | /services/data/vXX.0/sobjects/Contact/{id} | Werk een contact bij |
GET | /services/data/vXX.0/sobjects/Lead | Query leads |
GET | /services/data/vXX.0/sobjects/Account | Query accounts |
GET | /services/data/vXX.0/sobjects/Opportunity | Query opportunities |
GET | /services/data/vXX.0/query?q={SOQL} | Voer SOQL query uit |
POST | /services/data/vXX.0/composite/sobjects | Batch aanmaken/bijwerken |
Bulk API
| Method | Endpoint | Beschrijving |
|---|---|---|
POST | /services/data/vXX.0/jobs/ingest | Maak bulk ingest-job |
PUT | /services/data/vXX.0/jobs/ingest/{jobId}/batches | Upload batchdata |
GET | /services/data/vXX.0/jobs/ingest/{jobId} | Controleer jobstatus |
Streaming API
| Endpoint | Beschrijving |
|---|---|
/cometd/XX.0 | CometD long-polling voor realtime-events |
| PushTopic | Abonneer op recordwijzigingen via SOQL-gebaseerde topics |
| Change Data Capture | Stream gedetailleerde wijzigingen op veldniveau |
| Platform Events | Eigen event-driven architectuur |
Events
Record-events (Change Data Capture)
| Event | Trigger | Use case |
|---|---|---|
ContactChangeEvent | Contact aangemaakt/bijgewerkt/verwijderd | Realtime contactsynchronisatie |
LeadChangeEvent | Lead aangemaakt/bijgewerkt/geconverteerd | Lead lifecycle-tracking |
OpportunityChangeEvent | Opportunityfase gewijzigd | Dealpipeline-automatisering |
AccountChangeEvent | Accountrecord gewijzigd | Bedrijfsdatasynchronisatie |
Platform Events
| Event | Trigger | Use case |
|---|---|---|
Lead_Converted__e | Lead geconverteerd naar contact | Nurture na conversie |
Deal_Won__e | Opportunity closed-won | Onboardingflow voor klanten |
Deal_Lost__e | Opportunity closed-lost | Win-back-campagnes |
Codevoorbeelden
Connector initialiseren
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});Contacten synchroniseren met SOQL-filter
// 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// }Realtime streaming
// 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 }});Rate limits
Salesforce REST API-limieten zijn afhankelijk van je editie en aantal licenties:
| Editie | API-requests per 24 uur |
|---|---|
| Developer | 15.000 |
| Enterprise | 1.000 per user license (min. 15.000) |
| Unlimited | 5.000 per user license (min. 15.000) |
| Performance | 5.000 per user license (min. 15.000) |
Aanvullende limieten:
- Concurrent API-limiet: 25 long-running requests
- Bulk API: 15.000 batches per 24 uur
- Streaming API: 2.000 events per dag (kan worden verhoogd)
- Composite API: 25 subrequests per composite request
API-gebruik monitoren
Monitor je API-gebruik in Salesforce Setup > System Overview. Tajo gebruikt de Bulk API voor grote syncs om je API-limieten te sparen.
Probleemoplossing
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| INVALID_SESSION_ID | Token verlopen | Ververs het OAuth-token automatisch |
| REQUEST_LIMIT_EXCEEDED | Daglimiet voor API bereikt | Gebruik de Bulk API of verlaag de syncfrequentie |
| FIELD_INTEGRITY_EXCEPTION | Verplicht veld ontbreekt | Map alle verplichte velden in de configuratie |
| DUPLICATES_DETECTED | Duplicate rules actief | Configureer de gewenste afhandeling van duplicaten |
| INSUFFICIENT_ACCESS | Ontbrekende objectpermissies | Geef API-toegang in het Salesforce-profiel |
Debugmodus
Zet uitgebreide logging aan:
connectors: salesforce: debug: true log_level: verbose log_api_calls: trueVerbinding testen
tajo connectors test salesforce# ✓ OAuth token valid# ✓ Contacts accessible# ✓ Leads accessible# ✓ Accounts accessible# ✓ Opportunities accessible# ✓ Bulk API enabledBest practices
- Gebruik de Bulk API voor grote syncs - Schakel over naar Bulk API 2.0 voor datasets van meer dan 2.000 records
- Implementeer Change Data Capture - Gebruik CDC voor realtime-sync in plaats van polling
- Map alleen nodige velden - Beperk API-gebruik door alleen vereiste velden te synchroniseren
- Handel tokenverversing af - Implementeer automatische OAuth-tokenrefresh-logica
- Gebruik composite requests - Combineer gerelateerde API-calls om het aantal requests te verminderen
- Test eerst in een sandbox - Gebruik een Salesforce-sandbox-org voordat je naar productie gaat
Beveiliging
- OAuth 2.0 - Industriestandaard-autorisatie met meerdere grant types
- IP-beperkingen - Salesforce ondersteunt login-IP-ranges en trusted IP-instellingen
- TLS 1.2+ - Alle API-communicatie is versleuteld met minimaal TLS 1.2
- Field-level security - Granulaire veldtoegangscontrole per profiel
- Sessiebeheer - Configureerbare sessie-timeout en limieten op gelijktijdige sessies