موصل HubSpot
حالة الموصل: قيد التطوير قيد البناء. لم يتم التحقق منه بعد.
رسم توضيحي · بيانات تجريبية
مثال على المزامنة
المصدر
HubSpot
حالة الموصل: قيد التطوير
الوجهة
أداتك الأخرى
حالة الموصل: أداة مخصصة
ربط الحقول
| حقل المصدر | حقل الوجهة | قيمة نموذجية |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- الصياغة
- راجع سجلاً واحداً
- اعتمد هذه النسخة
تصف الحالات كل موصل على حدة، ولا تضمن جاهزية هذه المزامنة. حقول توضيحية. راجع المخطط الفعلي والأذونات قبل تشغيل المزامنة.
اربط HubSpot CRM الخاص بك بـ Brevo عبر Tajo لمزامنة جهات الاتصال ثنائية الاتجاه، وتتبع الصفقات، وبيانات التفاعل، والأتمتة التسويقية الموحدة عبر كلتا المنصتين.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | HubSpot |
| الفئة | CRM |
| تعقيد الإعداد | متوسط |
| تكامل رسمي | لا |
| البيانات المتزامنة | جهات الاتصال، الشركات، الصفقات، التذاكر، الأحداث |
| عنوان API الأساسي | https://api.hubapi.com |
الميزات
- مزامنة جهات اتصال ثنائية الاتجاه - حافظ على تزامن جهات الاتصال بين HubSpot و Brevo في الوقت الفعلي
- تتبع خط الصفقات - زامن مراحل الصفقات وقيمها لتقسيم قائم على الإيرادات
- مزامنة بيانات الشركات - اربط جهات الاتصال بسجلات الشركات والبيانات المؤسسية
- تكامل التذاكر - تتبع تذاكر الدعم لتسجيل صحة العملاء
- تتبع التفاعل - زامن فتح البريد الإلكتروني، والنقرات، والاجتماعات، والمكالمات، والملاحظات
- دعم الكائنات المخصصة - اربط كائنات HubSpot المخصصة بسمات Brevo
- مشغلات سير العمل - استخدم تغييرات مرحلة دورة الحياة في HubSpot لتشغيل أتمتة Brevo
- أحداث Webhook - إشعارات فورية لتغييرات بيانات CRM
المتطلبات المسبقة
قبل أن تبدأ، تأكد من توفر ما يلي:
- حساب HubSpot (Free أو Starter أو Professional أو Enterprise)
- تطبيق خاص في HubSpot أو تطبيق OAuth مع النطاقات المطلوبة
- حساب Brevo مع وصول API
- حساب Tajo
المصادقة
رمز وصول التطبيق الخاص (موصى به)
أنشئ تطبيقًا خاصًا في HubSpot للوصول المباشر إلى API مع تحكم دقيق في النطاقات.
- اذهب إلى HubSpot Settings > Integrations > Private Apps
- أنشئ تطبيقًا خاصًا جديدًا
- اضبط النطاقات المطلوبة
- انسخ رمز الوصول
curl -X GET "https://api.hubapi.com/crm/v3/objects/contacts" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json"OAuth 2.0
استخدم OAuth 2.0 لعمليات التكامل متعددة الحسابات التي تتطلب تفويض المستخدم.
# Authorization URLhttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}النطاقات المطلوبة
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readالإعداد
الإعداد الأساسي
connectors: hubspot: enabled: true access_token: "${HUBSPOT_ACCESS_TOKEN}"
# Data sync options sync: contacts: true companies: true deals: true tickets: true engagements: true
# Sync direction direction: bidirectional # or 'hubspot_to_brevo' | 'brevo_to_hubspot'
# List assignment in Brevo lists: all_contacts: 10 qualified_leads: 11 customers: 12ربط الحقول
اربط خصائص HubSpot بسمات جهات اتصال Brevo:
التعيينات الافتراضية
| Parameter | Type | Description |
|---|---|---|
email required | string | بريد جهة الاتصال الإلكتروني (المعرف الأساسي) |
firstname optional | string | يُربط بسمة FIRSTNAME في Brevo |
lastname optional | string | يُربط بسمة LASTNAME في Brevo |
phone optional | string | يُربط بسمة SMS للمراسلة عبر WhatsApp/SMS |
company optional | string | اسم الشركة المرتبطة |
lifecyclestage optional | string | مرحلة دورة الحياة في HubSpot (subscriber، lead، MQL، SQL، customer) |
hs_lead_status optional | string | حالة تأهيل العميل المحتمل |
hubspot_owner_id optional | string | معرف مالك المبيعات المُعيَّن |
ربط الخصائص المخصصة
field_mapping: # Standard fields email: email firstname: FIRSTNAME lastname: LASTNAME phone: SMS
# CRM fields lifecyclestage: LIFECYCLE_STAGE hs_lead_status: LEAD_STATUS company: COMPANY_NAME
# Deal metrics hs_total_deal_value: DEAL_VALUE num_associated_deals: DEAL_COUNT
# Custom properties preferred_channel: PREFERRED_CHANNEL customer_segment: SEGMENTنقاط نهاية API
كائنات CRM
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /crm/v3/objects/contacts | عرض قائمة جهات الاتصال |
POST | /crm/v3/objects/contacts | إنشاء جهة اتصال |
PATCH | /crm/v3/objects/contacts/{id} | تحديث جهة اتصال |
GET | /crm/v3/objects/companies | عرض قائمة الشركات |
GET | /crm/v3/objects/deals | عرض قائمة الصفقات |
POST | /crm/v3/objects/deals | إنشاء صفقة |
GET | /crm/v3/objects/tickets | عرض قائمة التذاكر |
الارتباطات
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} | الحصول على الارتباطات |
PUT | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} | إنشاء ارتباط |
التفاعلات
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /crm/v3/objects/calls | قائمة تفاعلات المكالمات |
GET | /crm/v3/objects/emails | قائمة تفاعلات البريد الإلكتروني |
GET | /crm/v3/objects/meetings | قائمة الاجتماعات |
GET | /crm/v3/objects/notes | قائمة الملاحظات |
GET | /crm/v3/objects/tasks | قائمة المهام |
الأحداث
أحداث جهات الاتصال
| الحدث | المشغل | حالة الاستخدام |
|---|---|---|
contact.creation | إنشاء جهة اتصال جديدة | تشغيل تدفق الترحيب |
contact.propertyChange | تحديث خاصية جهة الاتصال | مزامنة السمات |
contact.merge | دمج جهات الاتصال | معالجة إزالة التكرار |
contact.deletion | حذف جهة الاتصال | التنظيف في Brevo |
أحداث الصفقات
| الحدث | المشغل | حالة الاستخدام |
|---|---|---|
deal.creation | إنشاء صفقة جديدة | إشعار المبيعات |
deal.propertyChange | تغيير مرحلة الصفقة | أتمتة خط السير |
deal.deletion | إزالة صفقة | تقارير الإيرادات |
أحداث الشركات
| الحدث | المشغل | حالة الاستخدام |
|---|---|---|
company.creation | إضافة شركة جديدة | التسويق القائم على الحسابات |
company.propertyChange | تحديث بيانات الشركة | مزامنة البيانات المؤسسية |
أمثلة البرمجة
تهيئة الموصل
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect HubSpotawait tajo.connectors.connect('hubspot', { accessToken: process.env.HUBSPOT_ACCESS_TOKEN});تشغيل مزامنة جهات الاتصال
// Full bidirectional syncawait tajo.connectors.sync('hubspot', { type: 'full', resources: ['contacts', 'companies', 'deals'], direction: 'bidirectional', since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('hubspot');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 34200,// companiesSynced: 5100,// dealsSynced: 2340// }التعامل مع أحداث Webhook
// Handle HubSpot webhook notificationsapp.post('/webhooks/hubspot', async (req, res) => { const signature = req.get('X-HubSpot-Signature-v3');
// Verify webhook signature if (!verifyHubSpotSignature(req.body, signature)) { return res.status(401).send('Unauthorized'); }
for (const event of req.body) { await tajo.connectors.handleWebhook('hubspot', { eventType: event.subscriptionType, objectId: event.objectId, propertyName: event.propertyName, propertyValue: event.propertyValue }); }
res.status(200).send('OK');});حدود المعدل
يطبق HubSpot حدود معدل لكل تطبيق خاص أو تطبيق OAuth:
| الخطة | حد المعدل | حد الدفعة |
|---|---|---|
| Free/Starter | 100 طلب/10 ثوانٍ | 150 طلب/10 ثوانٍ |
| Professional | 150 طلب/10 ثوانٍ | 200 طلب/10 ثوانٍ |
| Enterprise | 200 طلب/10 ثوانٍ | 250 طلب/10 ثوانٍ |
| إضافة API | 200 طلب/10 ثوانٍ | 250 طلب/10 ثوانٍ |
حدود إضافية:
- Search API: 5 طلبات/ثانية لكل تطبيق
- عمليات الدُفعات: 100 سجل لكل طلب دفعة
- الحد اليومي: 500,000 طلب/يوم (تطبيقات OAuth)
التعامل مع حد المعدل
يُرجع HubSpot استجابة 429 Too Many Requests عند تجاوز الحدود. استخدم التراجع الأسي وراقب رؤوس X-HubSpot-RateLimit-*.
استكشاف الأخطاء
المشكلات الشائعة
| المشكلة | السبب | الحل |
|---|---|---|
| 401 Unauthorized | رمز منتهي الصلاحية أو غير صالح | أعد توليد رمز التطبيق الخاص أو جدد رمز OAuth |
| جهة الاتصال لم تُزامن | خاصية البريد الإلكتروني مفقودة | جهات اتصال HubSpot تتطلب بريدًا إلكترونيًا للمزامنة مع Brevo |
| جهات اتصال مكررة | لا توجد قاعدة إزالة تكرار | اضبط قواعد الدمج في HubSpot |
| Webhook لم يُستلم | الاشتراك غير نشط | أعد تسجيل اشتراكات webhook |
| خاصية لم تُربط | خاصية مخصصة غير مُنشأة | أنشئ الخاصية في HubSpot أولاً |
وضع التصحيح
فعّل تسجيلًا مفصلاً:
connectors: hubspot: debug: true log_level: verbose log_webhooks: trueاختبار الاتصال
tajo connectors test hubspot# ✓ API connection successful# ✓ Contacts readable# ✓ Companies readable# ✓ Deals readable# ✓ Webhooks registeredأفضل الممارسات
- استخدم التطبيقات الخاصة بدلاً من مفاتيح API - مفاتيح API مُهملة؛ استخدم التطبيقات الخاصة لأمان أفضل
- نفّذ المزامنة ثنائية الاتجاه بعناية - تجنب الحلقات اللانهائية بتتبع مصدر المزامنة
- اربط مراحل دورة الحياة - استخدم مراحل دورة الحياة في HubSpot لتقسيم جهات الاتصال في Brevo
- اجمع طلبات API - استخدم نقاط نهاية الدُفعات للعمليات المجمعة للبقاء ضمن حدود المعدل
- راقب تسليم webhook - أعدّ منطق إعادة المحاولة ومعالجة الحروف الميتة
- استخدم المزامنة التدريجية - زامن السجلات المتغيرة فقط باستخدام خاصية
lastmodifieddate
الأمان
- رموز التطبيقات الخاصة - رموز وصول محددة النطاق بأذونات دقيقة
- OAuth 2.0 - تفويض معياري صناعي مع تدوير رمز التحديث
- توقيعات Webhook - التحقق من التوقيع القائم على HMAC (v3)
- تشفير TLS - جميع اتصالات API مشفرة أثناء النقل
- أذونات محددة النطاق - وصول الحد الأدنى من النطاق المطلوب لكل تكامل