موصل Zendesk
حالة الموصل: مخطط له لم يُبنَ بعد. لا يشغّل Tajo هذا الموصل اليوم.
رسم توضيحي · بيانات تجريبية
مثال على المزامنة
المصدر
Zendesk
حالة الموصل: مخطط له
الوجهة
أداتك الأخرى
حالة الموصل: أداة مخصصة
ربط الحقول
| حقل المصدر | حقل الوجهة | قيمة نموذجية |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- الصياغة
- راجع سجلاً واحداً
- اعتمد هذه النسخة
تصف الحالات كل موصل على حدة، ولا تضمن جاهزية هذه المزامنة. حقول توضيحية. راجع المخطط الفعلي والأذونات قبل تشغيل المزامنة.
اربط مثيل Zendesk Support الخاص بك مع Brevo عبر Tajo لبيانات دعم عملاء موحدة، وتقسيم قائم على التذاكر، وتقييم الرضا، وأتمتة تسويق مُشغَّلة من الدعم.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | Zendesk |
| الفئة | الدعم |
| تعقيد الإعداد | متوسط |
| تكامل رسمي | لا |
| البيانات المُزامَنة | تذاكر، مستخدمون، مؤسسات، أحداث |
| عنوان URL الأساسي لـ API | https://{subdomain}.zendesk.com/api/v2 |
الميزات
- مزامنة المستخدمين - مزامنة المستخدمين النهائيين والوكلاء في Zendesk مع جهات اتصال Brevo
- تتبع التذاكر - مزامنة بيانات التذاكر للتقسيم التسويقي المدرك للدعم
- تعيين المؤسسات - ربط جهات الاتصال بالمؤسسات لسير عمل B2B
- درجات الرضا - مزامنة بيانات CSAT وNPS مع سمات Brevo
- أحداث التذاكر - تتبع إنشاء التذاكر وحلها وتصعيدها لمحفزات الأتمتة
- تكامل مركز المساعدة - تتبع مشاهدات المقالات وسلوك البحث
- دعم متعدد القنوات - مزامنة البيانات من قنوات البريد الإلكتروني والدردشة والصوت والمراسلة
- الحقول المخصصة - ربط حقول التذاكر والمستخدمين المخصصة في Zendesk بـ Brevo
المتطلبات الأساسية
قبل البدء، تأكد من توفر ما يلي:
- حساب Zendesk Support (Team أو Professional أو Enterprise)
- صلاحيات المسؤول على مثيل Zendesk الخاص بك
- رمز API أو تطبيق OAuth مُعَد
- حساب Brevo مع وصول إلى API
- حساب Tajo
المصادقة
مصادقة رمز API
استخدم مصادقة البريد الإلكتروني/الرمز للإعداد السريع.
curl https://{subdomain}.zendesk.com/api/v2/users.json \ -u {email}/token:{api_token} \ -H "Content-Type: application/json"ولِّد رمز API من Zendesk Admin > Apps and Integrations > APIs > Zendesk API.
OAuth 2.0
استخدم OAuth للتكاملات متعددة المثيلات مع وصول مستخدم مُوكَّل.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writeالنطاقات المطلوبة
read # Read access to all resourceswrite # Write access to all resourcestickets:read # Read tickets (granular)users:read # Read users (granular)organizations:read # Read organizations (granular)الإعداد
الإعداد الأساسي
connectors: zendesk: enabled: true subdomain: "yourcompany" auth: api_token: "${ZENDESK_API_TOKEN}"
# Data sync options sync: users: true tickets: true organizations: true satisfaction_ratings: true
# Brevo list assignment lists: all_customers: 30 active_tickets: 31 satisfied_customers: 32تعيين الحقول
ربط حقول مستخدم Zendesk بسمات جهات اتصال Brevo:
التعيينات الافتراضية
| Parameter | Type | Description |
|---|---|---|
email required | string | عنوان البريد الإلكتروني للمستخدم (معرّف فريد) |
name optional | string | الاسم الكامل، مقسم إلى FIRSTNAME/LASTNAME |
phone optional | string | يُعيَّن إلى سمة SMS لـ WhatsApp/SMS |
organization_id optional | integer | المؤسسة المرتبطة لتعيين B2B |
role optional | string | دور المستخدم (end-user، agent، admin) |
tags optional | array | وسوم المستخدم من Zendesk |
ticket_restriction optional | string | مستوى الوصول إلى التذاكر |
custom_fields optional | object | قيم حقول المستخدم المخصصة |
تعيين الحقول المخصصة
field_mapping: # Standard fields email: email name: FULLNAME phone: SMS
# Support metrics open_tickets: OPEN_TICKETS total_tickets: TOTAL_TICKETS avg_satisfaction: CSAT_SCORE last_ticket_date: LAST_SUPPORT_DATE
# Organization fields organization.name: COMPANY_NAME organization.tags: COMPANY_TAGS
# Custom fields user_fields.customer_type: CUSTOMER_TYPE user_fields.account_tier: ACCOUNT_TIERنقاط نهاية واجهة البرمجة
Ticketing API
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /api/v2/tickets | سرد التذاكر |
POST | /api/v2/tickets | إنشاء تذكرة |
PUT | /api/v2/tickets/{id} | تحديث تذكرة |
GET | /api/v2/tickets/{id} | عرض تذكرة |
GET | /api/v2/search.json?query={query} | البحث في التذاكر |
Users API
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /api/v2/users | سرد المستخدمين |
POST | /api/v2/users | إنشاء مستخدم |
PUT | /api/v2/users/{id} | تحديث مستخدم |
GET | /api/v2/users/{id} | عرض مستخدم |
GET | /api/v2/users/search.json?query={query} | البحث في المستخدمين |
Organizations API
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /api/v2/organizations | سرد المؤسسات |
POST | /api/v2/organizations | إنشاء مؤسسة |
GET | /api/v2/organizations/{id}/users | سرد أعضاء المؤسسة |
Satisfaction Ratings API
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /api/v2/satisfaction_ratings | سرد تقييمات الرضا |
GET | /api/v2/satisfaction_ratings/{id} | عرض تقييم |
الأحداث
أحداث التذاكر
| الحدث | المحفز | حالة الاستخدام |
|---|---|---|
ticket.created | تم إرسال تذكرة جديدة | إقرار الدعم |
ticket.updated | تغيرت حالة التذكرة | إشعار الحالة |
ticket.solved | تم وضع علامة حل للتذكرة | محفز استبيان CSAT |
ticket.reopened | أُعيد فتح تذكرة مُحلَّة | تنبيه التصعيد |
أحداث المستخدم
| الحدث | المحفز | حالة الاستخدام |
|---|---|---|
user.created | سجّل مستخدم جديد | مرحبًا بك في الدعم |
user.updated | تغير ملف المستخدم | مزامنة السمات |
user.merged | تم دمج المستخدمين | إزالة التكرار |
أحداث الرضا
| الحدث | المحفز | حالة الاستخدام |
|---|---|---|
satisfaction_rating.created | تم إرسال CSAT | معالجة الملاحظات |
satisfaction_rating.bad | تقييم سلبي | توعية للاسترداد |
satisfaction_rating.good | تقييم إيجابي | حملات المناصرة |
أمثلة على الكود
تهيئة الموصل
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Zendeskawait tajo.connectors.connect('zendesk', { subdomain: 'yourcompany', apiToken: process.env.ZENDESK_API_TOKEN});مزامنة المستخدمين والتذاكر
// مزامنة كاملة للمستخدمين وبيانات التذاكرawait tajo.connectors.sync('zendesk', { type: 'full', resources: ['users', 'tickets', 'organizations'], since: '2023-01-01'});
// التحقق من حالة المزامنةconst status = await tajo.connectors.status('zendesk');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// usersSynced: 8400,// ticketsSynced: 34200,// organizationsSynced: 1200// }التعامل مع Zendesk Webhooks
app.post('/webhooks/zendesk', async (req, res) => { const signature = req.get('X-Zendesk-Webhook-Signature');
// التحقق من توقيع webhook if (!verifyZendeskSignature(req.body, signature)) { return res.status(401).send('Unauthorized'); }
await tajo.connectors.handleWebhook('zendesk', { type: req.body.type, ticketId: req.body.ticket_id, userId: req.body.user_id, payload: req.body });
res.status(200).send('OK');});حدود المعدل
تختلف حدود معدل Zendesk حسب الخطة:
| الخطة | حد المعدل | التفاصيل |
|---|---|---|
| Team | 200 طلب/دقيقة | لكل رمز API |
| Professional | 400 طلب/دقيقة | لكل رمز API |
| Enterprise | 700 طلب/دقيقة | لكل رمز API |
| High Volume Add-on | 2,500 طلب/دقيقة | لكل رمز API |
حدود إضافية:
- Search API: 6 طلبات/دقيقة للمجهولين، 100/دقيقة للمصادق عليهم
- التصديرات التزايدية: 10 طلبات/دقيقة
- Batch API: 100 سجل لكل طلب دفعة
- تسليم Webhook: إعادة محاولة تلقائية بالتراجع الأُسّي
ترويسات حد المعدل
راقب ترويسات X-Rate-Limit-Remaining وRetry-After لإدارة استخدام API الخاص بك.
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
| المشكلة | السبب | الحل |
|---|---|---|
| 401 Unauthorized | رمز API غير صالح | أعد توليد الرمز في Zendesk Admin |
| 403 Forbidden | صلاحيات غير كافية | تحقق من متطلبات دور الوكيل أو المسؤول |
| المستخدم غير مُزامَن | المستخدم وكيل وليس مستخدمًا نهائيًا | صفِّ حسب الدور في إعداد المزامنة |
| Webhook لم يُستلم | المحفز/الهدف غير مُعَد | اضبط هدف webhook في Zendesk Admin |
| البحث يعيد نتائج فارغة | تأخير الفهرسة | انتظر 1-2 دقيقة لتحديث فهرس البحث |
وضع التصحيح
تفعيل التسجيل المفصل:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueاختبار الاتصال
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredأفضل الممارسات
- استخدم التصديرات التزايدية - استخدم Incremental API لمزامنة البيانات على نطاق واسع
- صفِّ المستخدمين النهائيين فقط - استبعد الوكلاء والمسؤولين من مزامنة جهات اتصال Brevo
- زامن بيانات CSAT - استخدم درجات الرضا لتقسيم صحة العملاء
- عيّن المؤسسات - استفد من بيانات المؤسسات للحملات التسويقية B2B
- طبّق إعادة محاولة webhook - تعامل مع الإخفاقات المؤقتة بسلاسة
- استخدم التحميل الجانبي - ضمّن السجلات ذات الصلة في استجابات API لتقليل عدد الطلبات
الأمان
- مصادقة رمز API - وصول قائم على الرموز مرتبط بالبريد الإلكتروني للمسؤول
- OAuth 2.0 - وصول مُوكَّل قائم على الرموز مع ضوابط النطاق
- توقيع Webhook - التحقق من توقيع HMAC لحمولات webhook
- تشفير TLS - جميع اتصالات API مشفرة عبر HTTPS
- قائمة IP المسموح بها - قيّد وصول API حسب نطاق IP