---
title: "موصل Salesforce"
description: "دليل التكامل الكامل لـ Salesforce CRM لمزامنة العملاء المحتملين وجهات الاتصال والحسابات والفرص والكائنات المخصصة مع Brevo عبر Tajo."
url: https://tajo.io/ar/docs/connectors/crm/salesforce/
markdown: https://tajo.io/ar/docs/connectors/crm/salesforce.md
lang: ar-SA
robots: noindex
---

اطلب الوصول المبكر

أدخل اسمك الأول وعنوان بريدك الإلكتروني للعمل. سنرسل إليك رابطًا لتأكيد طلب الوصول إلى Tajo.

# موصل Salesforce

حالة الموصل: مخطط له لم يُبنَ بعد. لا يشغّل Tajo هذا الموصل اليوم.

| حقل المصدر | حقل الوجهة | قيمة نموذجية |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

اربط 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 (موصى به)

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

```bash
# 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}"
```

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

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

```bash
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.

## الإعداد

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

```yaml
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 | مندوب المبيعات المُعيَّن للتوجيه |

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

```yaml
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` | فرصة مُغلقة خاسرة | حملات استعادة العملاء |

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

### تهيئة الموصل

```javascript
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

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

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

```javascript
// 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 ساعة |
| --- | --- |
| Developer | 15,000 |
| Enterprise | 1,000 لكل ترخيص مستخدم (بحد أدنى 15,000) |
| Unlimited | 5,000 لكل ترخيص مستخدم (بحد أدنى 15,000) |
| Performance | 5,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 |

### وضع التصحيح

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

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

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

```bash
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
- **أمان على مستوى الحقل** - تحكم دقيق في الوصول إلى الحقل لكل ملف تعريف
- **إدارة الجلسات** - مهلة جلسة قابلة للتكوين وحدود جلسات متزامنة

## موارد ذات صلة

- [وثائق Salesforce REST API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm)
- [دليل Salesforce Bulk API 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm)
- [موصل HubSpot](https://tajo.io/ar/docs/connectors/crm/hubspot)
- [مهارة مزامنة العملاء](https://tajo.io/ar/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/ar/docs/contact-management)
