موصل SendGrid

اربط حساب SendGrid الخاص بك مع Brevo عبر Tajo لترحيل البنية التحتية للبريد الإلكتروني، ومزامنة جهات الاتصال، ونقل بيانات الحملات، وتحليلات تفاعل موحدة عبر المنصتين.

نظرة عامة

الخاصيةالقيمة
المنصةSendGrid (Twilio)
الفئةالتسويق
تعقيد الإعدادسهل
تكامل رسمينعم
البيانات المُزامَنةجهات اتصال، حملات، بريد معاملاتي، أحداث
عنوان URL الأساسي لـ APIhttps://api.sendgrid.com/v3

الميزات

  • ترحيل جهات الاتصال - ترحيل جهات اتصال SendGrid Marketing إلى Brevo مع الحقول المخصصة
  • مزامنة البريد المعاملاتي - تتبع أحداث البريد المعاملاتي للتقارير الموحدة
  • بيانات الحملات - مزامنة بيانات أداء حملات Single Send وAutomation
  • webhooks الأحداث - إعادة توجيه أحداث البريد الإلكتروني (مُسلَّم، مفتوح، منقور، مرتد) إلى Brevo
  • مزامنة القمع - ترحيل قوائم الارتداد والحظر وإلغاء الاشتراك للامتثال
  • ترحيل القوالب - تصدير Dynamic Transactional Templates لاستخدام Brevo
  • التحقق من المرسل - مزامنة هويات المرسل المُوثَّقة ومصادقة النطاق
  • مزامنة الإحصائيات - استيراد إحصائيات التفاعل التاريخية إلى سمات Brevo

المتطلبات الأساسية

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

  1. حساب SendGrid (Free أو Essentials أو Pro أو Premier)
  2. مفتاح SendGrid API مع الصلاحيات المطلوبة
  3. حساب Brevo مع وصول إلى API
  4. حساب Tajo

المصادقة

مصادقة مفتاح API

يستخدم SendGrid مصادقة bearer token.

Terminal window
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 Access
Suppressions: Read Access
Tracking: 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 SendGrid
await tajo.connectors.connect('sendgrid', {
apiKey: process.env.SENDGRID_API_KEY
});

ترحيل جهات الاتصال إلى Brevo

// ترحيل كامل لجهات الاتصال من SendGrid إلى Brevo
await 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 Webhook
app.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 PUT3 طلبات/ثانيةدفعة تصل إلى 30,000 جهة اتصال
Marketing Contacts Search50 طلب/ثانيةلكل مفتاح 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

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

Terminal window
tajo connectors test sendgrid
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Lists accessible
# ✓ Statistics readable
# ✓ Suppressions accessible

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

  1. رحّل القمع أولاً - تأكد من وجود الارتدادات والحظر وإلغاءات الاشتراك في Brevo قبل الإرسال
  2. استخدم تحميلات جهات الاتصال المجمّعة - PUT حتى 30,000 جهة اتصال لكل طلب للكفاءة
  3. تحقق من Event Webhook - فعّل webhooks الموقّعة مع التحقق من ECDSA
  4. عيّن الحقول المخصصة - أنشئ سمات Brevo المقابلة قبل ترحيل جهات الاتصال
  5. زامن بيانات التفاعل - استورد الإحصائيات التاريخية للتقسيم في Brevo
  6. تعامل مع التصديرات غير المتزامنة - تصديرات جهات الاتصال غير متزامنة؛ استطلع للاكتمال

الأمان

  • مصادقة مفتاح API - Bearer token بمستويات صلاحية دقيقة
  • توقيع Event Webhook - التحقق من توقيع ECDSA لحمولات webhook
  • تشفير TLS - جميع اتصالات API مشفرة عبر HTTPS
  • إدارة وصول IP - قيّد وصول لوحة التحكم وAPI حسب IP
  • المصادقة الثنائية - 2FA متاحة للوصول إلى الحساب

موارد ذات صلة

Subscribe to updates

developer-docs

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

auto-detect
مساعد AI

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