Konektor Salesforce
Konektor Salesforce
Propojte svůj Salesforce CRM s Brevo přes Tajo pro podnikovou synchronizaci kontaktů, správu leadů, sledování příležitostí a marketingovou automatizaci poháněnou daty z CRM.
Přehled
| Vlastnost | Hodnota |
|---|---|
| Platforma | Salesforce |
| Kategorie | CRM |
| Složitost nastavení | Pokročilá |
| Oficiální integrace | Ano |
| Synchronizovaná data | Kontakty, Leady, Účty, Příležitosti, Události |
| Základní URL API | https://yourInstance.salesforce.com/services/data/vXX.0 |
Funkce
- Obousměrná synchronizace kontaktů/leadů – Synchronizujte kontakty a leady Salesforce se seznamy kontaktů Brevo
- Sledování příležitostí – Mapujte fáze a částky obchodů pro segmentaci na základě výnosů
- Hierarchie účtů – Synchronizujte firemní účty pro marketing na základě účtů v Brevo
- Mapování vlastních objektů – Mapujte vlastní objekty Salesforce na atributy a události Brevo
- Synchronizace členů kampaní – Synchronizujte členy kampaní Salesforce se seznamy Brevo
- Sledování aktivit – Synchronizujte úkoly, události a e-mailové aktivity pro hodnocení zapojení
- Streamování v reálném čase – Používejte Streaming API Salesforce pro okamžité aktualizace dat
- Podpora SOQL dotazů – Filtrujte synchronizovaná data pomocí vlastních SOQL dotazů
Předpoklady
Než začnete, ujistěte se, že máte:
- Organizaci Salesforce (jakékoli vydání s přístupem k API)
- Nakonfigurovanou Připojenou aplikaci v Nastavení Salesforce
- Povolený přístup k API pro váš uživatelský profil Salesforce
- Účet Brevo s přístupem k API
- Účet Tajo
Ověření
Webový server flow OAuth 2.0 (doporučeno)
Nejlepší pro produkční integrace s autorizací uživatele.
# Krok 1: Autorizacehttps://login.salesforce.com/services/oauth2/authorize? response_type=code& client_id={consumer_key}& redirect_uri={callback_url}
# Krok 2: Výměna kódu za tokenycurl -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}"Flow uživatelského jména a hesla
Pro integrace server-server bez interakce uživatele.
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}"Bezpečnostní token
Salesforce vyžaduje přidání bezpečnostního tokenu k heslu pro flow uživatelského jména a hesla. Resetujte svůj token z Nastavení > Moje osobní informace > Resetovat bezpečnostní token.
Konfigurace
Základní nastavení
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}"
# Možnosti synchronizace dat sync: contacts: true leads: true accounts: true opportunities: true campaigns: true
# Směr synchronizace direction: salesforce_to_brevo
# Přiřazení seznamů Brevo lists: all_leads: 15 qualified_leads: 16 customers: 17Mapování polí
Mapujte pole Salesforce na atributy kontaktů Brevo:
Výchozí mapování
| Parameter | Type | Description |
|---|---|---|
Email required | string | E-mail kontaktu/leadu (jedinečný identifikátor pro Brevo) |
FirstName optional | string | Mapuje se na atribut FIRSTNAME v Brevo |
LastName optional | string | Mapuje se na atribut LASTNAME v Brevo |
Phone optional | string | Mapuje se na atribut SMS pro zasílání přes WhatsApp/SMS |
Account.Name optional | string | Název přidruženého účtu/společnosti |
LeadSource optional | string | Zdroj získání leadu |
StageName optional | string | Fáze příležitosti pro sledování obchodů |
OwnerId optional | string | Přiřazený obchodní zástupce pro směrování |
Mapování vlastních polí
field_mapping: # Standardní pole Email: email FirstName: FIRSTNAME LastName: LASTNAME Phone: SMS
# Pole CRM LeadSource: LEAD_SOURCE Lead_Score__c: LEAD_SCORE Account.Name: COMPANY_NAME Account.Industry: INDUSTRY
# Pole příležitostí Amount: DEAL_VALUE StageName: DEAL_STAGE CloseDate: EXPECTED_CLOSE_DATE
# Vlastní pole Preferred_Channel__c: PREFERRED_CHANNEL Customer_Tier__c: VIP_TIERKoncové body API
Prostředky REST API
| Metoda | Koncový bod | Popis |
|---|---|---|
GET | /services/data/vXX.0/sobjects/Contact | Dotaz na kontakty |
POST | /services/data/vXX.0/sobjects/Contact | Vytvoření kontaktu |
PATCH | /services/data/vXX.0/sobjects/Contact/{id} | Aktualizace kontaktu |
GET | /services/data/vXX.0/sobjects/Lead | Dotaz na leady |
GET | /services/data/vXX.0/sobjects/Account | Dotaz na účty |
GET | /services/data/vXX.0/sobjects/Opportunity | Dotaz na příležitosti |
GET | /services/data/vXX.0/query?q={SOQL} | Spuštění SOQL dotazu |
POST | /services/data/vXX.0/composite/sobjects | Hromadné vytvoření/aktualizace |
Bulk API
| Metoda | Koncový bod | Popis |
|---|---|---|
POST | /services/data/vXX.0/jobs/ingest | Vytvoření úlohy hromadného vkládání |
PUT | /services/data/vXX.0/jobs/ingest/{jobId}/batches | Nahrání dat dávky |
GET | /services/data/vXX.0/jobs/ingest/{jobId} | Kontrola stavu úlohy |
Streaming API
| Koncový bod | Popis |
|---|---|
/cometd/XX.0 | CometD long-polling pro události v reálném čase |
| PushTopic | Přihlásit se k odběru změn záznamů přes témata na bázi SOQL |
| Change Data Capture | Streamování podrobných změn na úrovni polí |
| Platform Events | Vlastní architektura řízená událostmi |
Události
Události záznamů (Change Data Capture)
| Událost | Spouštěč | Případ použití |
|---|---|---|
ContactChangeEvent | Kontakt vytvořen/aktualizován/smazán | Synchronizace kontaktů v reálném čase |
LeadChangeEvent | Lead vytvořen/aktualizován/konvertován | Sledování životního cyklu leadu |
OpportunityChangeEvent | Změněna fáze příležitosti | Automatizace pipeline obchodů |
AccountChangeEvent | Upraven záznam účtu | Synchronizace firemních dat |
Platformové události
| Událost | Spouštěč | Případ použití |
|---|---|---|
Lead_Converted__e | Lead konvertován na kontakt | Péče po konverzi |
Deal_Won__e | Příležitost uzavřena jako získaná | Tok onboardingu zákazníka |
Deal_Lost__e | Příležitost uzavřena jako ztracená | Kampaně pro opětovné získání |
Příklady kódu
Inicializace konektoru
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Připojení 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});Synchronizace kontaktů s filtrem SOQL
// Synchronizace pouze kvalifikovaných leadů ze 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});
// Kontrola stavu synchronizaceconst status = await tajo.connectors.status('salesforce');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 18400,// leadsSynced: 7200,// opportunitiesSynced: 3100// }Streamování v reálném čase
// Přihlášení k odběru Change Data Capture Salesforceawait tajo.connectors.stream('salesforce', { channels: [ '/data/ContactChangeEvent', '/data/LeadChangeEvent', '/data/OpportunityChangeEvent' ], handler: async (event) => { console.log(`Zjištěna změna: ${event.entity} ${event.changeType}`); // Automaticky synchronizováno do Brevo přes Tajo }});Omezení rychlosti
Limity REST API Salesforce závisí na vašem vydání a počtu licencí:
| Vydání | API požadavky za 24 hodin |
|---|---|
| Developer | 15 000 |
| Enterprise | 1 000 na uživatelskou licenci (min. 15 000) |
| Unlimited | 5 000 na uživatelskou licenci (min. 15 000) |
| Performance | 5 000 na uživatelskou licenci (min. 15 000) |
Další limity:
- Souběžný limit API: 25 dlouhodobých požadavků
- Bulk API: 15 000 dávek za 24 hodin
- Streaming API: 2 000 událostí za den (lze zvýšit)
- Composite API: 25 poddotazů na composite požadavek
Monitorování využití API
Sledujte své využití API v Nastavení Salesforce > Přehled systému. Tajo používá bulk API pro velké synchronizace, aby ušetřilo vaše limity API.
Řešení problémů
Časté problémy
| Problém | Příčina | Řešení |
|---|---|---|
| INVALID_SESSION_ID | Token vypršel | Automaticky obnovte OAuth token |
| REQUEST_LIMIT_EXCEEDED | Překročen denní limit API | Používejte Bulk API nebo snižte frekvenci synchronizace |
| FIELD_INTEGRITY_EXCEPTION | Chybí povinné pole | Namapujte všechna povinná pole v konfiguraci |
| DUPLICATES_DETECTED | Aktivní pravidla duplicit | Nakonfigurujte předvolby zpracování duplicit |
| INSUFFICIENT_ACCESS | Chybějící oprávnění objektu | Udělte přístup k API v profilu Salesforce |
Režim ladění
Povolte podrobné protokolování:
connectors: salesforce: debug: true log_level: verbose log_api_calls: trueTest připojení
tajo connectors test salesforce# ✓ OAuth token platný# ✓ Kontakty přístupné# ✓ Leady přístupné# ✓ Účty přístupné# ✓ Příležitosti přístupné# ✓ Bulk API povolenoOsvědčené postupy
- Používejte Bulk API pro velké synchronizace – Pro datové sady nad 2 000 záznamů přepněte na Bulk API 2.0
- Implementujte Change Data Capture – Používejte CDC pro synchronizaci v reálném čase místo pollingu
- Mapujte pouze potřebná pole – Snižte využití API synchronizací pouze požadovaných polí
- Zpracovávejte obnovení tokenů – Implementujte logiku automatického obnovení OAuth tokenů
- Používejte composite požadavky – Kombinujte související volání API ke snížení počtu požadavků
- Nejprve testujte v sandboxu – Před nasazením do produkce použijte sandboxovou organizaci Salesforce
Zabezpečení
- OAuth 2.0 – Průmyslově standardní autorizace s více typy grantu
- Omezení IP – Salesforce podporuje přihlašovací rozsahy IP a nastavení důvěryhodných IP
- TLS 1.2+ – Veškerá komunikace API šifrována minimálně TLS 1.2
- Zabezpečení na úrovni polí – Podrobné řízení přístupu k polím na profil
- Správa relací – Konfigurovatelný časový limit relace a limity souběžných relací