الأعراف
عنوان أساس موحّد، وتوثيق، وغلاف استجابة ثابت عبر كل نقطة نهاية.
العنوان الأساسي
كل نقاط النهاية نسبية إلى العنوان الأساسي المُصدَّر.
التوثيق
وثّق باستخدام مفتاح API أُنشئ من كونسول المطورين، ويُمرَّر في ترويسة x-api-key. يعمل المفتاح بصلاحية مدير مساحة العمل.
احفظ المفاتيح سرّية
غلاف الاستجابة
تُغلّف الاستجابات الناجحة الحمولة في غلاف موحّد.
نقاط القوائم المُصفّحة تضيف كائن pagination.
تُعيد الأخطاء success: false مع رسالة مفهومة ورمز حالة HTTP مناسب.
المحادثات
اعرض واقرأ وحدّث واحذف المحادثات، واقرأ أو أرسل الرسائل داخلها.
/conversationsعرض محادثات مساحة العمل، الأحدث نشاطًا أولًا. مُصفّحة.
معاملات الاستعلام
| الحقل | النوع | الوصف |
|---|---|---|
status | string | التصفية حسب حالة المحادثة (مثل OPEN، CLOSED). |
agent_id | string | التصفية حسب الوكيل المُسنَد؛ مرّر "unassigned" لغير المُسنَد. |
department_id | string | التصفية حسب القسم. |
search | string | مطابقة الموضوع أو اسم/بريد الزائر أو محتوى الرسائل. |
page | number | رقم الصفحة (افتراضيًا 1). |
per_page | number | عدد العناصر في الصفحة (افتراضيًا 25، بحد أقصى 100). |
الطلب
الاستجابة
/conversationsإنشاء محادثة لزائر. يُسنَد وكيل تلقائيًا عبر محرك التوجيه عند توفره.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
visitorIdمطلوب | string | معرّف الزائر الذي تعود إليه المحادثة. |
departmentId | string | قسم اختياري للتوجيه إليه. |
subject | string | موضوع المحادثة (اختياري). |
channel | string | قناة المنشأ (افتراضيًا CHAT). |
الطلب
/conversations/{id}جلب محادثة واحدة مع زائرها ووكيلها وقسمها ووسومها.
الطلب
/conversations/{id}تحديث حالة المحادثة أو المُسنَد إليه أو القسم أو الموضوع أو الأولوية أو البيانات الوصفية.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
status | string | الحالة الجديدة للمحادثة. |
agentId | string | null | إسناد إلى وكيل، أو null لإلغاء الإسناد. |
departmentId | string | null | قسم اختياري للتوجيه إليه. |
subject | string | null | موضوع المحادثة (اختياري). |
priority | string | أولوية المحادثة. |
metadata | object | كائن بيانات وصفية حر. |
الطلب
/conversations/{id}حذف مبدئي للمحادثة (نقل إلى المهملات). حذف محادثة في المهملات يزيلها نهائيًا.
الطلب
الاستجابة
/conversations/{id}/messagesعرض رسائل المحادثة، الأقدم أولًا. مُصفّحة.
معاملات الاستعلام
| الحقل | النوع | الوصف |
|---|---|---|
page | number | رقم الصفحة (افتراضيًا 1). |
per_page | number | عدد العناصر في الصفحة (افتراضيًا 25، بحد أقصى 100). |
الطلب
/conversations/{id}/messagesإرسال رسالة إلى محادثة. يتطلب محتوى أو مرفقات أو نوع RICH.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
content | string | نص الرسالة. مطلوب ما لم تُمرَّر مرفقات أو نوع RICH. |
type | "TEXT" | "NOTE" | "RICH" | "FILE" | نوع الرسالة. NOTE ملاحظة داخلية للوكلاء فقط. |
attachments | array | مصفوفة مرفقات الملفات. |
replyToId | string | معرّف الرسالة التي يرد عليها هذا. |
metadata | object | كائن بيانات وصفية حر. |
الطلب
الاستجابة
التذاكر
سطح تذاكر كامل: عرض، وإنشاء، وقراءة العرض الشامل، وتحديث، وتعليق.
/ticketsعرض التذاكر، الأحدث تحديثًا أولًا. ملاحظة: يستخدم page و pageSize (وليس per_page).
معاملات الاستعلام
| الحقل | النوع | الوصف |
|---|---|---|
status | string | التصفية حسب الحالة. تُقبل قائمة مفصولة بفواصل (مثل OPEN,PENDING). |
priority | string | التصفية حسب الأولوية (LOW، NORMAL، HIGH، URGENT). |
assigneeId | string | التصفية حسب المُسنَد إليه؛ "me" لك، "unassigned" لغير المُسنَد. |
requesterId | string | التصفية حسب معرّف مقدّم الطلب. |
q | string | مطابقة نص الموضوع أو رقم التذكرة. |
page | number | رقم الصفحة (افتراضيًا 1). |
pageSize | number | عدد العناصر في الصفحة (افتراضيًا 25، بحد أقصى 100). |
الطلب
الاستجابة
/ticketsإنشاء تذكرة. يجب أن يكون مقدّم الطلب جهة اتصال في مساحة العمل.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
subjectمطلوب | string (1–500) | موضوع التذكرة، 1–500 حرف. |
descriptionمطلوب | string | نص التذكرة. |
requesterIdمطلوب | string | معرّف جهة الاتصال مقدّمة الطلب (VISITOR أو LEAD أو USER). |
priority | "LOW" | "NORMAL" | "HIGH" | "URGENT" | أولوية التذكرة. |
type | "QUESTION" | "INCIDENT" | "PROBLEM" | "TASK" | نوع التذكرة. |
departmentId | string | null | قسم اختياري للتوجيه إليه. |
assigneeId | string | null | وكيل اختياري للإسناد. |
tags | string[] (max 50) | حتى 50 وسمًا حرًّا. |
الطلب
/tickets/{id}جلب تذكرة مع تعليقاتها وأحداثها وسياق مقدّم الطلب (تذاكر ومحادثات أخرى).
الطلب
الاستجابة
/tickets/{id}تحديث تذكرة. مرّر حقلًا واحدًا على الأقل. تعيين الحالة إلى SOLVED يُطلق استبيان رضا.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
status | "NEW" | "OPEN" | "PENDING" | "ON_HOLD" | "SOLVED" | "CLOSED" | حالة التذكرة الجديدة. |
priority | string | أولوية التذكرة. |
type | string | نوع التذكرة. |
assigneeId | string | null | وكيل اختياري للإسناد. |
departmentId | string | null | قسم اختياري للتوجيه إليه. |
tags | string[] | حتى 50 وسمًا حرًّا. |
subject | string (1–500) | موضوع التذكرة، 1–500 حرف. |
الطلب
/tickets/{id}/commentsإضافة تعليق. الردود العامة تُرسل بريدًا للطرف الآخر؛ الملاحظات الداخلية تبقى خاصة.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
bodyمطلوب | string | نص التعليق. |
isInternal | boolean | عند true يكون التعليق ملاحظة داخلية (افتراضيًا false). |
الطلب
الاستجابة
المقالات
إدارة مقالات قاعدة المعرفة (عنوان ومحتوى ثنائيا اللغة).
/articlesعرض المقالات، الأحدث أولًا. مُصفّحة.
معاملات الاستعلام
| الحقل | النوع | الوصف |
|---|---|---|
status | string | التصفية حسب الحالة (مثل DRAFT، PUBLISHED). |
category_id | string | التصفية حسب الفئة. |
search | string | مطابقة العنوان أو المحتوى بالعربية/الإنجليزية. |
page | number | رقم الصفحة (افتراضيًا 1). |
per_page | number | عدد العناصر في الصفحة (افتراضيًا 25، بحد أقصى 100). |
الطلب
/articlesإنشاء مقال. تُولَّد الروابط اللطيفة تلقائيًا من العناوين.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
titleArمطلوب | string | العنوان بالعربية. |
titleEnمطلوب | string | العنوان بالإنجليزية. |
contentAr | string | المحتوى بالعربية. |
contentEn | string | المحتوى بالإنجليزية. |
categoryId | string | الفئة التي يُصنَّف تحتها المقال. |
status | "DRAFT" | "PUBLISHED" | حالة النشر (افتراضيًا DRAFT). |
keywords | string[] | كلمات مفتاحية للبحث. |
الطلب
الاستجابة
/articles/{id}تحديث مقال. تغييرات المحتوى تحفظ نسخة سابقة.
الطلب
/articles/{id}حذف مقال نهائيًا.
الطلب
الأسئلة الشائعة
إدارة الأسئلة الشائعة ثنائية اللغة. تُعيد نقطة القائمة مصفوفة مباشرة (بدون تصفيح).
/faqsعرض الأسئلة الشائعة مرتّبة حسب ترتيب الفرز.
معاملات الاستعلام
| الحقل | النوع | الوصف |
|---|---|---|
categoryId | string | التصفية حسب (أو التصنيف تحت) فئة. |
q | string | مطابقة نص السؤال أو الإجابة. |
الطلب
الاستجابة
/faqsإنشاء سؤال شائع. الحقول الأربعة ثنائية اللغة كلها مطلوبة.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
questionArمطلوب | string | السؤال بالعربية. |
questionEnمطلوب | string | السؤال بالإنجليزية. |
answerArمطلوب | string | الإجابة بالعربية. |
answerEnمطلوب | string | الإجابة بالإنجليزية. |
categoryId | string | التصفية حسب (أو التصنيف تحت) فئة. |
published | boolean | هل السؤال ظاهر (افتراضيًا true). |
sortOrder | number | وزن الترتيب (افتراضيًا 0). |
الطلب
/faqs/{id}تحديث سؤال شائع.
الطلب
/faqs/{id}حذف سؤال شائع.
الطلب
الفئات
إدارة فئات قاعدة المعرفة. تُعيد نقطة القائمة مصفوفة مع عدد المقالات والفئات الفرعية.
/categoriesعرض كل الفئات مرتّبة حسب ترتيب الفرز.
الطلب
الاستجابة
/categoriesإنشاء فئة. تُسنَد الروابط اللطيفة وترتيب الفرز تلقائيًا.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
nameArمطلوب | string | الاسم بالعربية. |
nameEnمطلوب | string | الاسم بالإنجليزية. |
descriptionAr | string | الوصف بالعربية. |
descriptionEn | string | الوصف بالإنجليزية. |
icon | string | اسم الأيقونة (افتراضيًا Folder). |
parentId | string | null | معرّف الفئة الأم للتداخل. |
visibility | string | الظهور (افتراضيًا public). |
الطلب
/categories/{id}تحديث فئة.
الطلب
/categories/{id}حذف فئة. تُفكّ روابط مقالاتها ولا تُحذف.
الطلب
الأقسام
إدارة أقسام التوجيه. تُعيد نقطة القائمة مصفوفة مباشرة.
/departmentsعرض كل الأقسام، الأقدم أولًا.
الطلب
الاستجابة
/departmentsإنشاء قسم.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
nameArمطلوب | string | الاسم بالعربية. |
nameEnمطلوب | string | الاسم بالإنجليزية. |
description | string | وصف اختياري. |
isDefault | boolean | اجعل هذا القسم الافتراضي (يلغي افتراضية غيره). |
isOnline | boolean | هل يستقبل القسم المحادثات (افتراضيًا true). |
priority | number | وزن أولوية التوجيه (افتراضيًا 0). |
skills | string[] | وسوم المهارات المستخدمة في التوجيه بالمهارات. |
الطلب
/departments/{id}تحديث قسم.
الطلب
/departments/{id}حذف قسم. لا يمكن حذف القسم الافتراضي.
الطلب
الردود المحفوظة
إدارة الردود الجاهزة (الماكرو) المفتاحية باختصار. تُعيد نقطة القائمة مصفوفة مباشرة.
/saved-repliesعرض الردود المحفوظة، الأحدث أولًا.
معاملات الاستعلام
| الحقل | النوع | الوصف |
|---|---|---|
search | string | مطابقة الاختصار أو العنوان. |
الطلب
الاستجابة
/saved-repliesإنشاء رد محفوظ. يجب أن يكون الاختصار فريدًا في مساحة العمل.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
shortcutمطلوب | string | اختصار التفعيل، مثل /refund. يجب أن يكون فريدًا. |
titleAr | string | العنوان بالعربية (افتراضيًا الاختصار). |
titleEn | string | العنوان بالإنجليزية (افتراضيًا الاختصار). |
contentArمطلوب | string | نص الرد بالعربية. |
contentEnمطلوب | string | نص الرد بالإنجليزية. |
الطلب
/saved-replies/{id}تحديث رد محفوظ.
الطلب
/saved-replies/{id}حذف رد محفوظ.
الطلب
إدارة الويبهوك
أنشئ وأدِر نقاط الويبهوك برمجيًا. راجع دليل الويبهوك للتسليم والتوقيع وإعادة المحاولة.
/webhooksعرض نقاط الويبهوك. الأسرار مُقنّعة. مُصفّحة.
الطلب
/webhooksإنشاء نقطة. يُعاد سر التوقيع الكامل مرة واحدة فقط — احفظه الآن.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
urlمطلوب | string (https) | عنوان HTTPS للنقطة (يُسمح بـ http لـ localhost فقط). |
eventsمطلوب | string[] | مصفوفة غير فارغة بأسماء الأحداث للاشتراك فيها. |
description | string | تسمية اختيارية للنقطة. |
الطلب
الاستجابة
/webhooks/{id}جلب نقطة (السر مُقنّع).
الطلب
/webhooks/{id}تحديث عنوان النقطة أو أحداثها أو حالة التفعيل أو الوصف.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
url | string (https) | عنوان HTTPS للنقطة (يُسمح بـ http لـ localhost فقط). |
events | string[] | مصفوفة غير فارغة بأسماء الأحداث للاشتراك فيها. |
active | boolean | تفعيل أو تعطيل النقطة. إعادة التفعيل تصفّر عدّاد الإخفاق. |
description | string | null | تسمية اختيارية للنقطة. |
الطلب
/webhooks/{id}حذف نقطة.
الطلب
/webhooks/{id}/testإرسال ping حي إلى النقطة. لا يؤثر في عدّاد إخفاقها.
الطلب
/webhooks/{id}/deliveriesعرض آخر 50 محاولة تسليم لنقطة.
الطلب
الاستجابة
التقارير
ملخص تحليلي للقراءة فقط ضمن نطاق زمني.
/reportsإرجاع مقاييس إجمالية — الأحجام، وأزمنة الاستجابة والحل، والتوزيعات، وأفضل الوكلاء، والسلاسل الزمنية.
معاملات الاستعلام
| الحقل | النوع | الوصف |
|---|---|---|
range | number (days) | عدد الأيام السابقة المشمولة (افتراضيًا 7). |
from | ISO date | تاريخ البداية (ISO). استخدمه مع 'to' بدل range. |
to | ISO date | تاريخ النهاية (ISO)، شاملًا اليوم كاملًا. |
الطلب
الاستجابة
الزوار
قراءة وتحديث ملفات الزوار (جهات الاتصال).
/visitors/{id}جلب ملف زائر مع الوسوم وعدد المحادثات/الرسائل.
الطلب
الاستجابة
/visitors/{id}تحديث زائر. تغييرات الدور ترقية فقط (VISITOR ← LEAD ← USER). تُدمج حقول الاتصال في البيانات الوصفية.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
name | string | null | الاسم المعروض، أو null لمسحه. |
email | string | null | البريد الإلكتروني، أو null لمسحه. |
phone | string | رقم الهاتف (يُحفظ في البيانات الوصفية). |
company | string | اسم الشركة (يُحفظ في البيانات الوصفية). |
role | "LEAD" | "USER" | ترقية جهة الاتصال (VISITOR ← LEAD ← USER). |
score | number | درجة العميل المحتمل (عدد صحيح). |
الطلب