موصل SendGrid
حالة الموصل: قيد التطوير قيد البناء. لم يتم التحقق منه بعد.
رسم توضيحي · بيانات تجريبية
مثال على المزامنة
المصدر
SendGrid
حالة الموصل: قيد التطوير
الوجهة
أداتك الأخرى
حالة الموصل: أداة مخصصة
ربط الحقول
| حقل المصدر | حقل الوجهة | قيمة نموذجية |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- الصياغة
- راجع سجلاً واحداً
- اعتمد هذه النسخة
تصف الحالات كل موصل على حدة، ولا تضمن جاهزية هذه المزامنة. حقول توضيحية. راجع المخطط الفعلي والأذونات قبل تشغيل المزامنة.
اربط حساب SendGrid الخاص بك مع Brevo عبر Tajo لترحيل البنية التحتية للبريد الإلكتروني، ومزامنة جهات الاتصال، ونقل بيانات الحملات، وتحليلات تفاعل موحدة عبر المنصتين.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | SendGrid (Twilio) |
| الفئة | التسويق |
| تعقيد الإعداد | سهل |
| تكامل رسمي | لا |
| البيانات المُزامَنة | جهات اتصال، حملات، بريد معاملاتي، أحداث |
| عنوان URL الأساسي لـ API | https://api.sendgrid.com/v3 |
الميزات
- ترحيل جهات الاتصال - ترحيل جهات اتصال SendGrid Marketing إلى Brevo مع الحقول المخصصة
- مزامنة البريد المعاملاتي - تتبع أحداث البريد المعاملاتي للتقارير الموحدة
- بيانات الحملات - مزامنة بيانات أداء حملات Single Send وAutomation
- webhooks الأحداث - إعادة توجيه أحداث البريد الإلكتروني (مُسلَّم، مفتوح، منقور، مرتد) إلى Brevo
- مزامنة القمع - ترحيل قوائم الارتداد والحظر وإلغاء الاشتراك للامتثال
- ترحيل القوالب - تصدير Dynamic Transactional Templates لاستخدام Brevo
- التحقق من المرسل - مزامنة هويات المرسل المُوثَّقة ومصادقة النطاق
- مزامنة الإحصائيات - استيراد إحصائيات التفاعل التاريخية إلى سمات Brevo
المتطلبات الأساسية
قبل البدء، تأكد من توفر ما يلي:
- حساب SendGrid (Free أو Essentials أو Pro أو Premier)
- مفتاح SendGrid API مع الصلاحيات المطلوبة
- حساب Brevo مع وصول إلى API
- حساب Tajo
المصادقة
مصادقة مفتاح API
يستخدم SendGrid مصادقة bearer token.
curl https://api.sendgrid.com/v3/marketing/contacts \ -H "Authorization: Bearer SG.YOUR_API_KEY" \ -H "Content-Type: application/json"أنشئ مفاتيح API في SendGrid Settings > API Keys بمستويات صلاحية محددة:
- Full Access - وصول API كامل
- Restricted Access - تحكم دقيق في الصلاحيات
- Billing Access - عمليات الفوترة فقط
الصلاحيات المطلوبة
Marketing: Full Access - Contacts (read) - Single Sends (read) - Automations (read)Mail Send: Full Access - Mail Send (read)Stats: Read AccessSuppressions: Read AccessTracking: Read Accessأمان مفتاح API
تُعرض مفاتيح SendGrid API مرة واحدة فقط عند الإنشاء. خزّنها بأمان. في حالة الفقد، يجب عليك إنشاء مفتاح جديد.
الإعداد
الإعداد الأساسي
connectors: sendgrid: enabled: true api_key: "${SENDGRID_API_KEY}"
# Data sync options sync: contacts: true campaigns: true transactional: true suppressions: true statistics: true
# List mapping to Brevo list_mapping: "All Contacts": 60 "Newsletter": 61 "Transactional": 62تعيين الحقول
ربط حقول جهات اتصال SendGrid بسمات جهات اتصال Brevo:
التعيينات الافتراضية
| Parameter | Type | Description |
|---|---|---|
email required | string | عنوان البريد الإلكتروني لجهة الاتصال (معرّف فريد) |
first_name optional | string | يُعيَّن إلى سمة FIRSTNAME |
last_name optional | string | يُعيَّن إلى سمة LASTNAME |
phone_number optional | string | يُعيَّن إلى سمة SMS |
city optional | string | مدينة جهة الاتصال |
country optional | string | دولة جهة الاتصال |
custom_fields optional | object | أزواج مفتاح-قيمة للحقول المخصصة |
list_ids optional | array | عضويات قوائم SendGrid |
تعيين الحقول المخصصة
field_mapping: # Standard fields email: email first_name: FIRSTNAME last_name: LASTNAME phone_number: SMS
# Location fields city: CITY state_province_region: STATE country: COUNTRY postal_code: POSTAL_CODE
# Engagement metrics avg_open_rate: AVG_OPEN_RATE avg_click_rate: AVG_CLICK_RATE
# Custom fields custom_fields.company: COMPANY_NAME custom_fields.plan: PLAN_TYPEنقاط نهاية واجهة البرمجة
جهات الاتصال التسويقية
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
PUT | /v3/marketing/contacts | إضافة أو تحديث جهات الاتصال |
POST | /v3/marketing/contacts/search | البحث في جهات الاتصال |
GET | /v3/marketing/contacts/count | الحصول على عدد جهات الاتصال |
POST | /v3/marketing/contacts/exports | تصدير جهات الاتصال |
DELETE | /v3/marketing/contacts | حذف جهات الاتصال |
GET | /v3/marketing/lists | سرد جميع قوائم جهات الاتصال |
البريد المعاملاتي (Mail Send)
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
POST | /v3/mail/send | إرسال بريد إلكتروني |
GET | /v3/templates | سرد Dynamic Templates |
GET | /v3/templates/{id} | الحصول على تفاصيل القالب |
الحملات (Single Sends)
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /v3/marketing/singlesends | سرد Single Sends |
GET | /v3/marketing/singlesends/{id} | الحصول على تفاصيل Single Send |
GET | /v3/marketing/automations | سرد Automations |
الإحصائيات
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /v3/stats | الحصول على إحصائيات البريد الإلكتروني العامة |
GET | /v3/categories/stats | الحصول على إحصائيات الفئات |
GET | /v3/marketing/stats/singlesends | الحصول على إحصائيات Single Send |
القمع
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /v3/suppression/bounces | سرد الرسائل المرتدة |
GET | /v3/suppression/blocks | سرد الرسائل المحظورة |
GET | /v3/suppression/spam_reports | سرد تقارير البريد العشوائي |
GET | /v3/suppression/unsubscribes | سرد إلغاءات الاشتراك العامة |
الأحداث
أحداث البريد الإلكتروني (عبر Event Webhook)
| الحدث | المحفز | حالة الاستخدام |
|---|---|---|
processed | قبل SendGrid البريد الإلكتروني | تأكيد الإرسال |
delivered | سُلِّم البريد الإلكتروني للمستلم | تتبع التسليم |
open | تم فتح البريد الإلكتروني | تسجيل التفاعل |
click | تم النقر على رابط | تتبع الاهتمام |
bounce | ارتد البريد الإلكتروني | نظافة القائمة |
dropped | تم قمع البريد الإلكتروني | مراجعة الامتثال |
deferred | تأجيل التسليم | مراقبة إعادة المحاولة |
spam_report | تم وضع علامة بريد عشوائي | إدارة السمعة |
unsubscribe | ألغى الاشتراك عبر الرابط | مزامنة التفضيلات |
أمثلة على الكود
تهيئة الموصل
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect SendGridawait tajo.connectors.connect('sendgrid', { apiKey: process.env.SENDGRID_API_KEY});ترحيل جهات الاتصال إلى Brevo
// ترحيل كامل لجهات الاتصال من SendGrid إلى Brevoawait tajo.connectors.sync('sendgrid', { type: 'full', resources: ['contacts', 'suppressions'], options: { includeCustomFields: true, migrateListMemberships: true, migrateSuppressions: true }});
// التحقق من حالة الترحيلconst status = await tajo.connectors.status('sendgrid');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 45000,// suppressionsSynced: 3200,// listsMapped: 8// }إعادة توجيه أحداث البريد الإلكتروني
// التعامل مع SendGrid Event Webhookapp.post('/webhooks/sendgrid', async (req, res) => { const signature = req.get('X-Twilio-Email-Event-Webhook-Signature');
// التحقق من توقيع webhook (ECDSA) if (!verifySendGridSignature(req.body, signature)) { return res.status(401).send('Unauthorized'); }
// معالجة دفعة من الأحداث for (const event of req.body) { await tajo.connectors.handleWebhook('sendgrid', { type: event.event, email: event.email, timestamp: event.timestamp, payload: event }); }
res.status(200).send('OK');});حدود المعدل
حدود معدل SendGrid API:
| نقطة النهاية | الحد | التفاصيل |
|---|---|---|
Mail Send (/v3/mail/send) | يعتمد على الخطة | Free: 100/يوم، Essentials: بناءً على الخطة |
| Marketing Contacts PUT | 3 طلبات/ثانية | دفعة تصل إلى 30,000 جهة اتصال |
| Marketing Contacts Search | 50 طلب/ثانية | لكل مفتاح API |
| API العام | 1,000 طلب/ثانية | لكل مفتاح API |
| Event Webhook | تسليم مجمّع | حتى 1,000 حدث لكل POST |
حدود Mail Send
تعتمد حدود Mail Send على خطة SendGrid الخاصة بك. تقتصر الحسابات المجانية على 100 بريد إلكتروني/يوم. تحقق من تفاصيل خطتك لحدود الإرسال الدقيقة.
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
| المشكلة | السبب | الحل |
|---|---|---|
| 401 Unauthorized | مفتاح API غير صالح | تحقق من مفتاح API في SendGrid Settings |
| 403 Forbidden | صلاحيات مفتاح API غير كافية | أنشئ مفتاحًا جديدًا بالنطاقات المطلوبة |
| تصدير جهات الاتصال معلّق | معالجة مجموعة بيانات كبيرة | استطلع نقطة نهاية حالة التصدير حتى الاكتمال |
| مزامنة القمع غير مكتملة | التقسيم مطلوب | طبّق التقسيم بمعامل offset |
| Event webhook لم يُستلم | عنوان URL غير مُوثَّق | أكمل التحقق من عنوان URL لـ webhook في SendGrid |
وضع التصحيح
تفعيل التسجيل المفصل:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: trueاختبار الاتصال
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleأفضل الممارسات
- رحّل القمع أولاً - تأكد من وجود الارتدادات والحظر وإلغاءات الاشتراك في Brevo قبل الإرسال
- استخدم تحميلات جهات الاتصال المجمّعة - PUT حتى 30,000 جهة اتصال لكل طلب للكفاءة
- تحقق من Event Webhook - فعّل webhooks الموقّعة مع التحقق من ECDSA
- عيّن الحقول المخصصة - أنشئ سمات Brevo المقابلة قبل ترحيل جهات الاتصال
- زامن بيانات التفاعل - استورد الإحصائيات التاريخية للتقسيم في Brevo
- تعامل مع التصديرات غير المتزامنة - تصديرات جهات الاتصال غير متزامنة؛ استطلع للاكتمال
الأمان
- مصادقة مفتاح API - Bearer token بمستويات صلاحية دقيقة
- توقيع Event Webhook - التحقق من توقيع ECDSA لحمولات webhook
- تشفير TLS - جميع اتصالات API مشفرة عبر HTTPS
- إدارة وصول IP - قيّد وصول لوحة التحكم وAPI حسب IP
- المصادقة الثنائية - 2FA متاحة للوصول إلى الحساب