موصل Zendesk

اربط مثيل Zendesk Support الخاص بك مع Brevo عبر Tajo لبيانات دعم عملاء موحدة، وتقسيم قائم على التذاكر، وتقييم الرضا، وأتمتة تسويق مُشغَّلة من الدعم.

نظرة عامة

الخاصيةالقيمة
المنصةZendesk
الفئةالدعم
تعقيد الإعدادمتوسط
تكامل رسمينعم
البيانات المُزامَنةتذاكر، مستخدمون، مؤسسات، أحداث
عنوان URL الأساسي لـ APIhttps://{subdomain}.zendesk.com/api/v2

الميزات

  • مزامنة المستخدمين - مزامنة المستخدمين النهائيين والوكلاء في Zendesk مع جهات اتصال Brevo
  • تتبع التذاكر - مزامنة بيانات التذاكر للتقسيم التسويقي المدرك للدعم
  • تعيين المؤسسات - ربط جهات الاتصال بالمؤسسات لسير عمل B2B
  • درجات الرضا - مزامنة بيانات CSAT وNPS مع سمات Brevo
  • أحداث التذاكر - تتبع إنشاء التذاكر وحلها وتصعيدها لمحفزات الأتمتة
  • تكامل مركز المساعدة - تتبع مشاهدات المقالات وسلوك البحث
  • دعم متعدد القنوات - مزامنة البيانات من قنوات البريد الإلكتروني والدردشة والصوت والمراسلة
  • الحقول المخصصة - ربط حقول التذاكر والمستخدمين المخصصة في Zendesk بـ Brevo

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

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

  1. حساب Zendesk Support (Team أو Professional أو Enterprise)
  2. صلاحيات المسؤول على مثيل Zendesk الخاص بك
  3. رمز API أو تطبيق OAuth مُعَد
  4. حساب Brevo مع وصول إلى API
  5. حساب Tajo

المصادقة

مصادقة رمز API

استخدم مصادقة البريد الإلكتروني/الرمز للإعداد السريع.

Terminal window
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 للتكاملات متعددة المثيلات مع وصول مستخدم مُوكَّل.

Terminal window
# Authorization URL
https://{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 resources
write # Write access to all resources
tickets: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 Zendesk
await 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 حسب الخطة:

الخطةحد المعدلالتفاصيل
Team200 طلب/دقيقةلكل رمز API
Professional400 طلب/دقيقةلكل رمز API
Enterprise700 طلب/دقيقةلكل رمز API
High Volume Add-on2,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

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

Terminal window
tajo connectors test zendesk
# ✓ API connection successful
# ✓ Users readable
# ✓ Tickets readable
# ✓ Organizations readable
# ✓ Webhooks configured

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

  1. استخدم التصديرات التزايدية - استخدم Incremental API لمزامنة البيانات على نطاق واسع
  2. صفِّ المستخدمين النهائيين فقط - استبعد الوكلاء والمسؤولين من مزامنة جهات اتصال Brevo
  3. زامن بيانات CSAT - استخدم درجات الرضا لتقسيم صحة العملاء
  4. عيّن المؤسسات - استفد من بيانات المؤسسات للحملات التسويقية B2B
  5. طبّق إعادة محاولة webhook - تعامل مع الإخفاقات المؤقتة بسلاسة
  6. استخدم التحميل الجانبي - ضمّن السجلات ذات الصلة في استجابات API لتقليل عدد الطلبات

الأمان

  • مصادقة رمز API - وصول قائم على الرموز مرتبط بالبريد الإلكتروني للمسؤول
  • OAuth 2.0 - وصول مُوكَّل قائم على الرموز مع ضوابط النطاق
  • توقيع Webhook - التحقق من توقيع HMAC لحمولات webhook
  • تشفير TLS - جميع اتصالات API مشفرة عبر HTTPS
  • قائمة IP المسموح بها - قيّد وصول API حسب نطاق IP

موارد ذات صلة

Subscribe to updates

developer-docs

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

auto-detect
مساعد AI

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