موصل Freshdesk
اربط Freshdesk بـ Brevo من خلال Tajo لتوحيد بيانات الدعم والتسويق. زامن تذاكر دعم العملاء، وملفات جهات الاتصال، ودرجات الرضا لتشغيل اتصالات مستهدفة بناءً على تفاعلات الدعم.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | Freshdesk |
| الفئة | الدعم |
| تعقيد الإعداد | سهل |
| تكامل رسمي | لا |
| البيانات المُزامَنة | تذاكر، جهات اتصال، وكلاء، شركات |
| المهارات المتاحة | 6 |
الميزات
- مزامنة جهات الاتصال - مزامنة ثنائية الاتجاه لجهات اتصال Freshdesk مع قوائم جهات اتصال Brevo
- تتبع أحداث التذاكر - إعادة توجيه أحداث إنشاء التذاكر وتحديثها وحلها إلى Brevo
- مزامنة CSAT - مزامنة درجات رضا العملاء كسمات جهات اتصال Brevo
- مزامنة الشركات - ربط شركات Freshdesk بتقسيم جهات اتصال Brevo
- بيانات الوكلاء - تتبع تعيينات الوكلاء لأتمتة سير العمل الداخلي
- الحقول المخصصة - ربط حقول تذاكر وجهات اتصال Freshdesk المخصصة بسمات Brevo
المتطلبات الأساسية
قبل البدء، تأكد من توفر ما يلي:
- حساب Freshdesk مع صلاحيات المسؤول
- مفتاح Freshdesk API الخاص بك (موجود في Profile Settings)
- نطاق Freshdesk الخاص بك (مثلاً،
yourcompany.freshdesk.com) - حساب Brevo مع وصول إلى API
- حساب Tajo مع بيانات اعتماد API
المصادقة
مصادقة مفتاح API
يستخدم Freshdesk مصادقة مفتاح API عبر HTTP Basic Auth. يُستخدم مفتاح API كاسم مستخدم مع أي سلسلة (عادةً X) ككلمة مرور.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsأو باستخدام ترميز Base64 في ترويسة Authorization:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"العثور على مفتاح API الخاص بك
- سجّل الدخول إلى حساب Freshdesk
- انقر على صورة ملفك الشخصي في الزاوية العلوية اليمنى
- انتقل إلى Profile Settings
- يُعرض مفتاح API الخاص بك على الجانب الأيمن
الإعداد
الإعداد الأساسي
connectors: freshdesk: enabled: true domain: "yourcompany.freshdesk.com" api_key: "your-freshdesk-api-key"
# Data sync options sync: contacts: true tickets: true companies: true satisfaction_ratings: true
# Brevo list assignment lists: all_support_contacts: 30 open_tickets: 31 resolved_tickets: 32تعيين حقول جهة الاتصال
ربط حقول جهات اتصال Freshdesk بسمات Brevo:
contact_mapping: email: email name: FULLNAME phone: SMS company_id: COMPANY job_title: JOB_TITLE twitter_id: TWITTER language: LANGUAGE time_zone: TIMEZONE
# Support metrics total_tickets: TICKET_COUNT open_tickets: OPEN_TICKETS avg_csat: CSAT_SCORE last_ticket_date: LAST_SUPPORT_DATE
# Custom fields custom_fields.account_type: ACCOUNT_TYPE custom_fields.subscription_tier: PLANتعيين أحداث التذاكر
ربط أحداث تذاكر Freshdesk بمحفزات أتمتة Brevo:
ticket_events: ticket_created: "support_ticket_created" ticket_updated: "support_ticket_updated" ticket_resolved: "support_ticket_resolved" ticket_closed: "support_ticket_closed" ticket_reopened: "support_ticket_reopened" satisfaction_rated: "csat_submitted" note_added: "support_note_added"نقاط نهاية واجهة البرمجة
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /api/v2/tickets | سرد جميع التذاكر |
POST | /api/v2/tickets | إنشاء تذكرة |
GET | /api/v2/tickets/{id} | الحصول على تذكرة محددة |
PUT | /api/v2/tickets/{id} | تحديث تذكرة |
DELETE | /api/v2/tickets/{id} | حذف تذكرة |
GET | /api/v2/contacts | سرد جميع جهات الاتصال |
POST | /api/v2/contacts | إنشاء جهة اتصال |
PUT | /api/v2/contacts/{id} | تحديث جهة اتصال |
GET | /api/v2/companies | سرد جميع الشركات |
GET | /api/v2/agents | سرد جميع الوكلاء |
GET | /api/v2/surveys/satisfaction_ratings | سرد تقييمات CSAT |
GET | /api/v2/search/tickets?query= | البحث في التذاكر |
أمثلة على الكود
تهيئة موصل Freshdesk
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Freshdesk accountawait tajo.connectors.connect('freshdesk', { domain: 'yourcompany.freshdesk.com', apiKey: process.env.FRESHDESK_API_KEY});مزامنة جهات الاتصال مع Brevo
// جلب جهات اتصال Freshdesk ومزامنتها مع Brevoconst response = await fetch( 'https://yourcompany.freshdesk.com/api/v2/contacts?page=1&per_page=100', { headers: { 'Authorization': 'Basic ' + btoa(`${API_KEY}:X`), 'Content-Type': 'application/json' } });
const contacts = await response.json();// كل جهة اتصال:// {// "id": 12345,// "name": "Jane Kim",// "email": "[email protected]",// "phone": "+15551234567",// "company_id": 678,// "job_title": "Product Manager",// "created_at": "2024-01-15T10:30:00Z"// }تتبع أحداث التذاكر
// إعداد webhook Freshdesk لإعادة توجيه أحداث التذاكر// اضبطه في Freshdesk Admin > Automations > Webhook
// معالج webhookapp.post('/webhooks/freshdesk', async (req, res) => { const { ticket, event_type } = req.body;
await tajo.connectors.handleWebhook('freshdesk', { topic: event_type, payload: { ticketId: ticket.id, subject: ticket.subject, status: ticket.status, priority: ticket.priority, requesterEmail: ticket.requester.email, createdAt: ticket.created_at } });
res.status(200).send('OK');});البحث عن التذاكر حسب العميل
// البحث عن جميع التذاكر من عميل محددconst response = await fetch( `https://yourcompany.freshdesk.com/api/v2/search/tickets?query=${query}`, { headers: { 'Authorization': 'Basic ' + btoa(`${API_KEY}:X`) } });
const { results, total } = await response.json();حدود المعدل
| الخطة | الحد | التفاصيل |
|---|---|---|
| Sprout | 50 طلب/دقيقة | الخطة المجانية |
| Blossom | 200 طلب/دقيقة | خطة Starter |
| Garden | 400 طلب/دقيقة | خطة Growth |
| Estate | 700 طلب/دقيقة | خطة Pro |
| Forest | 1,000 طلب/دقيقة | خطة Enterprise |
حدود إضافية:
| المورد | الحد |
|---|---|
| نقاط نهاية القائمة | 30 صفحة لكل استعلام |
| لكل صفحة | 100 سجل كحد أقصى |
| Search API | طلبان/ثانية |
| العمليات المجمّعة | 10 سجلات/طلب |
ترويسات حدود المعدل
يُعيد Freshdesk معلومات حدود المعدل في ترويسات الاستجابة. راقب X-RateLimit-Remaining وطبّق التراجع عند الاقتراب من الحدود.
استكشاف الأخطاء وإصلاحها
| المشكلة | السبب | الحل |
|---|---|---|
401 Unauthorized | مفتاح API غير صالح | تحقق من مفتاح API في Freshdesk Profile Settings |
403 Forbidden | صلاحيات غير كافية | تأكد من أن مفتاح API ينتمي إلى حساب مسؤول |
| جهات الاتصال لا تتزامن | حقل البريد الإلكتروني مفقود | تتطلب جهات اتصال Freshdesk عنوان بريد إلكتروني |
| التذاكر لا تظهر | نطاق خاطئ | تحقق من صحة عنوان URL لنطاق Freshdesk |
| البحث يعيد نتائج فارغة | خطأ في صيغة الاستعلام | استخدم صيغة استعلام Freshdesk مع علامات تنصيص مزدوجة |
429 Too Many Requests | تجاوز حد المعدل | طبّق تحديد المعدل بناءً على مستوى الخطة |
| حقول مخصصة مفقودة | الحقل غير مفعّل | تأكد من تفعيل الحقول المخصصة في إدارة Freshdesk |
أفضل الممارسات
- استخدم webhooks للمزامنة الآنية - اضبط Freshdesk Automations لتشغيل webhooks عند أحداث التذاكر
- زامن درجات CSAT - تتبع تقييمات رضا العملاء كسمات Brevo للتقسيم
- عيّن حالة التذكرة إلى القوائم - انقل جهات الاتصال تلقائيًا بين قوائم Brevo بناءً على حالة التذكرة
- تتبع مقاييس الدعم - زامن عدد التذاكر ومتوسط وقت الاستجابة ومعدل الحل لكل جهة اتصال
- استخدم Search API باعتدال - تحتوي Search API على حدود معدل أكثر صرامة؛ خزّن النتائج مؤقتًا عند الإمكان
- قسّم التصديرات الكبيرة - استخدم التقسيم بمعاملي
pageوper_pageللمزامنة الأولية
الأمان
- مصادقة مفتاح API - HTTP Basic Auth بسيط بمفتاح API
- HTTPS فقط - تتطلب جميع اتصالات API تشفير TLS
- قائمة IP المسموح بها - متاحة في خطط Estate وForest
- وصول قائم على الدور - صلاحيات مفتاح API مرتبطة بدور الوكيل
- SOC 2 Type II - Freshdesk معتمد من SOC 2 Type II
- الامتثال لـ GDPR - يدعم طلبات تصدير البيانات وحذفها