Salesforce Bağlayıcısı
Salesforce Bağlayıcısı
Salesforce CRM’inizi Tajo üzerinden Brevo’ya bağlayarak kurumsal düzeyde kişi senkronizasyonu, aday yönetimi, fırsat takibi ve CRM verilerinizle güçlendirilmiş pazarlama otomasyonu elde edin.
Genel Bakış
| Özellik | Değer |
|---|---|
| Platform | Salesforce |
| Kategori | CRM |
| Kurulum Karmaşıklığı | İleri Düzey |
| Resmi Entegrasyon | Evet |
| Senkronize Edilen Veri | Kişiler, Adaylar, Hesaplar, Fırsatlar, Olaylar |
| API Temel URL’si | https://yourInstance.salesforce.com/services/data/vXX.0 |
Özellikler
- Çift yönlü kişi/aday senkronizasyonu - Salesforce kişileri ve adaylarını Brevo kişi listeleri ile senkronize edin
- Fırsat takibi - Gelire dayalı segmentasyon için fırsat aşamalarını ve tutarlarını eşleyin
- Hesap hiyerarşisi - Brevo’daki hesap bazlı pazarlama için şirket hesaplarını senkronize edin
- Özel nesne eşleme - Salesforce özel nesnelerini Brevo öznitelikleri ve olaylarına eşleyin
- Kampanya üyesi senkronizasyonu - Salesforce kampanya üyelerini Brevo listeleri ile senkronize edin
- Aktivite takibi - Etkileşim puanlaması için görevleri, olayları ve e-posta aktivitelerini senkronize edin
- Gerçek zamanlı akış - Anlık veri güncellemeleri için Salesforce Streaming API’sini kullanın
- SOQL sorgu desteği - Senkronize edilen verileri özel SOQL sorgularıyla filtreleyin
Ön Koşullar
Başlamadan önce sahip olmanız gerekenler:
- Bir Salesforce org (API erişimi olan herhangi bir sürüm)
- Salesforce Kurulumunda yapılandırılmış bir Connected App
- Salesforce kullanıcı profiliniz için API erişimi etkinleştirilmiş
- API erişimi olan bir Brevo hesabı
- Bir Tajo hesabı
Kimlik Doğrulama
OAuth 2.0 Web Server Flow (Önerilen)
Kullanıcı yetkilendirmesi ile üretim entegrasyonları için en iyisi.
# 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}"Kullanıcı Adı-Şifre Akışı
Kullanıcı etkileşimi olmadan sunucudan sunucuya entegrasyonlar için.
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}"Güvenlik Belirteci
Salesforce, kullanıcı adı-şifre akışı için şifrenize güvenlik belirtecinizi eklemenizi gerektirir. Belirtecinizi Kurulum > Kişisel Bilgilerim > Güvenlik Belirtecimi Sıfırla bölümünden sıfırlayın.
Yapılandırma
Temel Kurulum
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: 17Alan Eşleme
Salesforce alanlarını Brevo kişi özniteliklerine eşleyin:
Varsayılan Eşlemeler
| Parameter | Type | Description |
|---|---|---|
Email required | string | Kişi/Aday e-postası (Brevo için benzersiz tanımlayıcı) |
FirstName optional | string | Brevo'daki FIRSTNAME özniteliğine eşlenir |
LastName optional | string | Brevo'daki LASTNAME özniteliğine eşlenir |
Phone optional | string | WhatsApp/SMS mesajlaşması için SMS özniteliğine eşlenir |
Account.Name optional | string | İlişkili hesap/şirket adı |
LeadSource optional | string | Aday edinme kaynağı |
StageName optional | string | Fırsat takibi için fırsat aşaması |
OwnerId optional | string | Yönlendirme için atanan satış temsilcisi |
Özel Alan Eşlemesi
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 Uç Noktaları
REST API Kaynakları
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /services/data/vXX.0/sobjects/Contact | Kişileri sorgula |
POST | /services/data/vXX.0/sobjects/Contact | Bir kişi oluştur |
PATCH | /services/data/vXX.0/sobjects/Contact/{id} | Bir kişiyi güncelle |
GET | /services/data/vXX.0/sobjects/Lead | Adayları sorgula |
GET | /services/data/vXX.0/sobjects/Account | Hesapları sorgula |
GET | /services/data/vXX.0/sobjects/Opportunity | Fırsatları sorgula |
GET | /services/data/vXX.0/query?q={SOQL} | SOQL sorgusu yürüt |
POST | /services/data/vXX.0/composite/sobjects | Toplu oluştur/güncelle |
Bulk API
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
POST | /services/data/vXX.0/jobs/ingest | Toplu ingest işi oluştur |
PUT | /services/data/vXX.0/jobs/ingest/{jobId}/batches | Toplu veri yükle |
GET | /services/data/vXX.0/jobs/ingest/{jobId} | İş durumunu kontrol et |
Streaming API
| Uç Nokta | Açıklama |
|---|---|
/cometd/XX.0 | Gerçek zamanlı olaylar için CometD uzun yoklaması |
| PushTopic | SOQL tabanlı konular aracılığıyla kayıt değişikliklerine abone ol |
| Change Data Capture | İnce taneli alan düzeyinde değişiklikleri akış olarak al |
| Platform Events | Özel olay güdümlü mimari |
Olaylar
Kayıt Olayları (Change Data Capture)
| Olay | Tetikleyici | Kullanım Alanı |
|---|---|---|
ContactChangeEvent | Kişi oluşturuldu/güncellendi/silindi | Gerçek zamanlı kişi senkronizasyonu |
LeadChangeEvent | Aday oluşturuldu/güncellendi/dönüştürüldü | Aday yaşam döngüsü takibi |
OpportunityChangeEvent | Fırsat aşaması değişti | Fırsat pipeline otomasyonu |
AccountChangeEvent | Hesap kaydı değiştirildi | Şirket verisi senkronizasyonu |
Platform Events
| Olay | Tetikleyici | Kullanım Alanı |
|---|---|---|
Lead_Converted__e | Aday kişiye dönüştürüldü | Dönüşüm sonrası yetiştirme |
Deal_Won__e | Fırsat kazanılarak kapatıldı | Müşteri onboarding akışı |
Deal_Lost__e | Fırsat kaybedilerek kapatıldı | Geri kazanma kampanyaları |
Kod Örnekleri
Bağlayıcıyı Başlat
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});SOQL Filtresi ile Kişileri Senkronize Et
// 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// }Gerçek Zamanlı Akış
// 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 }});Hız Limitleri
Salesforce REST API limitleri, sürümünüze ve lisans sayınıza bağlıdır:
| Sürüm | 24 Saat Başına API İstekleri |
|---|---|
| Developer | 15.000 |
| Enterprise | Kullanıcı lisansı başına 1.000 (min 15.000) |
| Unlimited | Kullanıcı lisansı başına 5.000 (min 15.000) |
| Performance | Kullanıcı lisansı başına 5.000 (min 15.000) |
Ek limitler:
- Eşzamanlı API limiti: 25 uzun süreli istek
- Bulk API: 24 saatte 15.000 toplu iş
- Streaming API: Günde 2.000 olay (artırılabilir)
- Composite API: Composite istek başına 25 alt istek
API Kullanım İzleme
API kullanımınızı Salesforce Kurulum > Sistem Genel Bakışı’nda izleyin. Tajo, API limitlerinizi korumak için büyük senkronizasyonlar için bulk API kullanır.
Sorun Giderme
Sık Karşılaşılan Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| INVALID_SESSION_ID | Belirtecin süresi doldu | OAuth belirtecini otomatik olarak yenileyin |
| REQUEST_LIMIT_EXCEEDED | Günlük API limitine ulaşıldı | Bulk API kullanın veya senkronizasyon sıklığını azaltın |
| FIELD_INTEGRITY_EXCEPTION | Gerekli alan eksik | Yapılandırmada tüm gerekli alanları eşleyin |
| DUPLICATES_DETECTED | Yineleme kuralları aktif | Yineleme işleme tercihlerini yapılandırın |
| INSUFFICIENT_ACCESS | Nesne izinleri eksik | Salesforce profilinde API erişimi verin |
Hata Ayıklama Modu
Ayrıntılı günlüklemeyi etkinleştirin:
connectors: salesforce: debug: true log_level: verbose log_api_calls: trueBağlantıyı Test Et
tajo connectors test salesforce# ✓ OAuth token valid# ✓ Contacts accessible# ✓ Leads accessible# ✓ Accounts accessible# ✓ Opportunities accessible# ✓ Bulk API enabledEn İyi Uygulamalar
- Büyük senkronizasyonlar için Bulk API kullanın - 2.000’in üzerindeki veri kümeleri için Bulk API 2.0’a geçin
- Change Data Capture uygulayın - Yoklama yerine gerçek zamanlı senkronizasyon için CDC kullanın
- Yalnızca gerekli alanları eşleyin - Yalnızca gerekli alanları senkronize ederek API kullanımını azaltın
- Belirteç yenilemeyi yönetin - Otomatik OAuth belirteci yenileme mantığı uygulayın
- Composite istekleri kullanın - İstek sayısını azaltmak için ilgili API çağrılarını birleştirin
- Önce sandbox’ta test edin - Üretim dağıtımından önce bir Salesforce sandbox org’u kullanın
Güvenlik
- OAuth 2.0 - Birden fazla grant türü ile endüstri standardı yetkilendirme
- IP kısıtlamaları - Salesforce, oturum açma IP aralıklarını ve güvenilir IP ayarlarını destekler
- TLS 1.2+ - Tüm API iletişimi minimum TLS 1.2 ile şifrelenir
- Alan düzeyinde güvenlik - Profil başına ayrıntılı alan erişim kontrolü
- Oturum yönetimi - Yapılandırılabilir oturum zaman aşımı ve eşzamanlı oturum limitleri