موصل Salesforce

موصل Salesforce

اربط Salesforce CRM الخاص بك بـ Brevo عبر Tajo لمزامنة جهات الاتصال على مستوى المؤسسات، وإدارة العملاء المحتملين، وتتبع الفرص، وأتمتة التسويق المدعومة ببيانات CRM الخاصة بك.

نظرة عامة

الخاصيةالقيمة
المنصةSalesforce
الفئةCRM
تعقيد الإعدادمتقدم
تكامل رسمينعم
البيانات المتزامنةجهات الاتصال، العملاء المحتملون، الحسابات، الفرص، الأحداث
عنوان API الأساسيhttps://yourInstance.salesforce.com/services/data/vXX.0

الميزات

  • مزامنة ثنائية الاتجاه لجهات الاتصال/العملاء المحتملين - زامن جهات اتصال Salesforce والعملاء المحتملين مع قوائم جهات اتصال Brevo
  • تتبع الفرص - اربط مراحل الصفقات والمبالغ للتقسيم القائم على الإيرادات
  • التسلسل الهرمي للحساب - زامن حسابات الشركات للتسويق القائم على الحسابات في Brevo
  • ربط الكائنات المخصصة - اربط كائنات Salesforce المخصصة بسمات Brevo وأحداثه
  • مزامنة أعضاء الحملة - زامن أعضاء حملة Salesforce مع قوائم Brevo
  • تتبع النشاط - زامن المهام والأحداث وأنشطة البريد الإلكتروني لتسجيل التفاعل
  • البث في الوقت الفعلي - استخدم Salesforce Streaming API للتحديثات الفورية للبيانات
  • دعم استعلامات SOQL - صفِّ البيانات المُزامنة باستعلامات SOQL مخصصة

المتطلبات المسبقة

قبل أن تبدأ، تأكد من توفر ما يلي:

  1. مؤسسة Salesforce (أي إصدار مع وصول API)
  2. تطبيق متصل مُعدّ في Salesforce Setup
  3. تفعيل وصول API لملف تعريف مستخدم Salesforce الخاص بك
  4. حساب Brevo مع وصول API
  5. حساب Tajo

المصادقة

تدفق خادم الويب OAuth 2.0 (موصى به)

الأفضل لعمليات تكامل الإنتاج مع تفويض المستخدم.

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

تدفق اسم المستخدم وكلمة المرور

لعمليات التكامل من خادم إلى خادم دون تفاعل المستخدم.

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

رمز الأمان

يتطلب Salesforce إلحاق رمز الأمان بكلمة المرور لتدفق اسم المستخدم وكلمة المرور. أعد تعيين رمزك من Setup > My Personal Information > Reset My Security Token.

الإعداد

الإعداد الأساسي

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

ربط الحقول

اربط حقول Salesforce بسمات جهات اتصال Brevo:

التعيينات الافتراضية

Parameter Type Description
Email required
string

بريد جهة الاتصال/العميل المحتمل (معرف فريد لـ Brevo)

FirstName optional
string

يُربط بسمة FIRSTNAME في Brevo

LastName optional
string

يُربط بسمة LASTNAME في Brevo

Phone optional
string

يُربط بسمة SMS للمراسلة عبر WhatsApp/SMS

Account.Name optional
string

اسم الحساب/الشركة المرتبطة

LeadSource optional
string

مصدر اكتساب العميل المحتمل

StageName optional
string

مرحلة الفرصة لتتبع الصفقة

OwnerId optional
string

مندوب المبيعات المُعيَّن للتوجيه

ربط الحقول المخصصة

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

موارد REST API

الطريقةنقطة النهايةالوصف
GET/services/data/vXX.0/sobjects/Contactالاستعلام عن جهات الاتصال
POST/services/data/vXX.0/sobjects/Contactإنشاء جهة اتصال
PATCH/services/data/vXX.0/sobjects/Contact/{id}تحديث جهة اتصال
GET/services/data/vXX.0/sobjects/Leadالاستعلام عن العملاء المحتملين
GET/services/data/vXX.0/sobjects/Accountالاستعلام عن الحسابات
GET/services/data/vXX.0/sobjects/Opportunityالاستعلام عن الفرص
GET/services/data/vXX.0/query?q={SOQL}تنفيذ استعلام SOQL
POST/services/data/vXX.0/composite/sobjectsإنشاء/تحديث بالدُفعات

Bulk API

الطريقةنقطة النهايةالوصف
POST/services/data/vXX.0/jobs/ingestإنشاء مهمة استيعاب مجمعة
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesرفع بيانات دفعة
GET/services/data/vXX.0/jobs/ingest/{jobId}التحقق من حالة المهمة

Streaming API

نقطة النهايةالوصف
/cometd/XX.0استطلاع طويل CometD للأحداث الفورية
PushTopicالاشتراك في تغييرات السجلات عبر موضوعات قائمة على SOQL
Change Data Captureبث التغييرات الدقيقة على مستوى الحقل
Platform Eventsبنية مُقَاذَةٌ بالأحداث المخصصة

الأحداث

أحداث السجلات (Change Data Capture)

الحدثالمشغلحالة الاستخدام
ContactChangeEventإنشاء/تحديث/حذف جهة اتصالمزامنة جهات اتصال في الوقت الفعلي
LeadChangeEventإنشاء/تحديث/تحويل عميل محتملتتبع دورة حياة العملاء المحتملين
OpportunityChangeEventتغيير مرحلة الفرصةأتمتة خط الصفقات
AccountChangeEventتعديل سجل الحسابمزامنة بيانات الشركة

Platform Events

الحدثالمشغلحالة الاستخدام
Lead_Converted__eتحويل عميل محتمل إلى جهة اتصالتنشئة ما بعد التحويل
Deal_Won__eفرصة مُغلقة رابحةتدفق تأهيل العميل
Deal_Lost__eفرصة مُغلقة خاسرةحملات استعادة العملاء

أمثلة البرمجة

تهيئة الموصل

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

مزامنة جهات الاتصال باستخدام فلتر SOQL

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

البث في الوقت الفعلي

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

حدود المعدل

تعتمد حدود Salesforce REST API على إصدارك وعدد التراخيص:

الإصدارطلبات API لكل 24 ساعة
Developer15,000
Enterprise1,000 لكل ترخيص مستخدم (بحد أدنى 15,000)
Unlimited5,000 لكل ترخيص مستخدم (بحد أدنى 15,000)
Performance5,000 لكل ترخيص مستخدم (بحد أدنى 15,000)

حدود إضافية:

  • حد API المتزامن: 25 طلبًا طويل التشغيل
  • Bulk API: 15,000 دفعة لكل 24 ساعة
  • Streaming API: 2,000 حدث يوميًا (يمكن زيادتها)
  • Composite API: 25 طلبًا فرعيًا لكل طلب مركب

مراقبة استخدام API

راقب استخدام API في Salesforce Setup > System Overview. يستخدم Tajo واجهة Bulk API للمزامنات الكبيرة للحفاظ على حدود API.

استكشاف الأخطاء

المشكلات الشائعة

المشكلةالسببالحل
INVALID_SESSION_IDانتهت صلاحية الرمزجدد رمز OAuth تلقائيًا
REQUEST_LIMIT_EXCEEDEDتم الوصول إلى حد API اليومياستخدم Bulk API أو قلل تكرار المزامنة
FIELD_INTEGRITY_EXCEPTIONحقل مطلوب مفقوداربط جميع الحقول المطلوبة في التكوين
DUPLICATES_DETECTEDقواعد التكرار نشطةاضبط تفضيلات معالجة التكرار
INSUFFICIENT_ACCESSأذونات الكائن مفقودةامنح وصول API في ملف تعريف Salesforce

وضع التصحيح

فعّل تسجيلًا مفصلاً:

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

اختبار الاتصال

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

أفضل الممارسات

  1. استخدم Bulk API للمزامنات الكبيرة - بدّل إلى Bulk API 2.0 لمجموعات البيانات التي تتجاوز 2,000 سجل
  2. نفّذ Change Data Capture - استخدم CDC للمزامنة الفورية بدلاً من الاستطلاع
  3. اربط الحقول الضرورية فقط - قلل استخدام API بمزامنة الحقول المطلوبة فقط
  4. تعامل مع تحديث الرمز - نفّذ منطق تحديث رمز OAuth التلقائي
  5. استخدم الطلبات المركبة - ادمج استدعاءات API ذات الصلة لتقليل عدد الطلبات
  6. اختبر في بيئة التجربة أولاً - استخدم مؤسسة بيئة تجربة Salesforce قبل نشر الإنتاج

الأمان

  • OAuth 2.0 - تفويض معياري صناعي مع أنواع منح متعددة
  • قيود IP - يدعم Salesforce نطاقات IP لتسجيل الدخول وإعدادات IP الموثوقة
  • TLS 1.2+ - جميع اتصالات API مشفرة بحد أدنى TLS 1.2
  • أمان على مستوى الحقل - تحكم دقيق في الوصول إلى الحقل لكل ملف تعريف
  • إدارة الجلسات - مهلة جلسة قابلة للتكوين وحدود جلسات متزامنة

موارد ذات صلة

Subscribe to updates

developer-docs

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

مساعد AI

مرحباً! اسألني أي شيء عن الوثائق.

ابدأ مجانًا مع Brevo