قبل البدء
أنشئ مفتاح API محدود النطاق بأقل الصلاحيات اللازمة:
يجب أن تكون ميزة المواعيد الأصلية مفعلة في الحساب. يعيد عدم توفر الميزة في
الخطة الرمز
402 من دون تجاوز بقية فحوص الصلاحيات.
التغطية الكاملة للواجهة
يتضمن العقد العام 30 عملية. يُسمى نوع الموعد خدمة في حقول API، ويمكن أن يمثل المورد طبيبًا أو موظفًا أو غرفة أو فرعًا أو جهازًا أو أي سعة قابلة للحجز.القراءة والبحث والحجز
إعدادات المدير
تتطلب كل عملية في هذا الجدولappointments:settings وأن يكون مالك المفتاح
مديرًا للحساب.
جميع المسارات أعلاه تضاف إلى
/api/v2/accounts/{accountId}.
شرح عمليات القراءة واحدةً واحدة
GET /appointments: يعيد مواعيد النطاق مع الموارد والخدمات والإعدادات والقواعد والاستثناءات وروابط الخدمة بالموارد. النطاق الافتراضي 14 يومًا، ويمكن إرسالstartوendبصيغة RFC3339 حتى 366 يومًا.GET /appointments/{id}: يقبلpublic_idأو UUID، ويعيد الموعد وسجل تغير الحالة. لا تظهر الصفقة المرتبطة إلا معdeals:read.GET /appointments/external/{externalId}: الأنسب للمطابقة بعد إعادة محاولة أو عندما لا يخزن النظام الخارجي معرّف HueChat.GET /appointments/catalog: يعيد الخدمات النشطة فقط، ومدة كل خدمة وفواصلها والموارد المسموح لها تقديمها؛ وهو أفضل طلب لواجهة حجز خارجية.GET /appointments/settings: يبين المنطقة الزمنية وفاصل الأوقات وأقل مهلة وأقصى مدة للحجز وسياسة التأكيد من دون تغييرها.GET /appointments/resourcesوGET /appointments/resources/{resourceId}: يعيدان بيانات الأشخاص والغرف والفروع والأجهزة، بما في ذلك النوع والمنطقة الزمنية واللون والترتيب والحالة النشطة.GET /appointments/servicesوGET /appointments/services/{serviceId}: يعيدان أنواع الموعد مع المدة وفواصل ما قبل/بعد الموعد والسعر والعملة والحالة.GET /appointments/availability: يعيد قواعد الأسبوع كلها والاستثناءات التي تتقاطع معstartوend. المدة القصوى 366 يومًا.GET /appointments/slots: يتطلبdateوخدمة بالمعرّف أو الاسم الدقيق، ويقبل موردًا اختياريًا وpreferred_timeوlimitحتى 50. يعيد وقت البداية والنهاية بصيغة مطلقة ومحلية لكل مورد متاح.GET /appointments/reports: يعيد إجماليات الحالات والحجوزات المنشأة بالذكاء الاصطناعي وتوزيع النتائج حسب الخدمة. المدة الافتراضية شهر وأقصاها 366 يومًا.
شرح عمليات الكتابة واحدةً واحدة
POST /appointments: ينشئ حجزًا منexternal_idوبيانات العميل والخدمة والوقت. يقبل UUID أو اسم الخدمة الدقيق، وموردًا اختياريًا بالـUUID أو الاسم، وstarts_atأوdateمعtime. إعادة الطلب نفسه لا تنشئ نسخة ثانية.PATCH /appointments/{id}: يحدّث بيانات العميل القابلة للتحرير، ويمكنه نقل موعد نشط في العملية نفسها. أرسل المورد والخدمة ووقت البداية وحقول العميل وversionالحالي.PATCH /appointments/{id}/status: يغير الحالة معreasonاختياري ونسخة متوقعة. يحفظ التغيير وسجل الحالة في معاملة واحدة.PATCH /appointments/{id}/schedule: ينقل موعدًا مبدئيًا أو محجوزًا أو مؤكدًا إلى مورد وخدمة ووقت متاح، ويرفض النسخة القديمة أو التعارض.
شرح عمليات الإعداد واحدةً واحدة
PUT /appointments/settings: يحفظ الوضع والمنطقة الزمنية وفاصل الأوقات ومهل الحجز والإلغاء وبداية الأسبوع والعرض وسياسة التأكيد كإعداد متماسك.POST /appointments/resources: ينشئ سعة قابلة للحجز باسم ونوع، مع وصف ومنطقة زمنية ولون وترتيب اختياري.PUT /appointments/resources/{resourceId}: يغير الحقول المرسلة فقط، ويمكنه تفعيل المورد أو تعطيله.DELETE /appointments/resources/{resourceId}: أرشفة آمنة؛ تختفي السعة من الحجوزات الجديدة لكن لا يحذف تاريخها.POST /appointments/resources/{resourceId}/restore: يعيد المورد المؤرشف ليصبح متاحًا للإعداد والحجز.POST /appointments/services: ينشئ نوع الموعد باسمه ومدته بين 5 و1440 دقيقة وفواصله وسعره وعملته.PUT /appointments/services/{serviceId}: يغير الحقول المرسلة فقط، بما فيها المدة والسعر والترتيب والحالة النشطة.DELETE /appointments/services/{serviceId}: يؤرشف النوع مع إبقاء المواعيد السابقة قابلة للقراءة.POST /appointments/services/{serviceId}/restore: يعيد نوع الموعد المؤرشف.PUT /appointments/services/{serviceId}/resources: يستبدل جميع تعيينات الخدمة بقائمة UUID المرسلة؛ القائمة الفارغة تعني كل الموارد النشطة.POST /appointments/availability/rules: يستبدل قاعدة مورد/يوم واحدة. يستخدمday_of_weekالقيم 0–6 والدقائق منذ منتصف الليل.POST /appointments/availability/rules/bulk: يتحقق من جميع القواعد أولًا ثم يحفظها معًا، ولذلك لا يترك جدولًا نصف محدث.POST /appointments/availability/exceptions: ينشئ فترةopenأوclosed؛ حذفresource_idيجعلها عامة لكل الموارد.DELETE /appointments/availability/exceptions/{exceptionId}: يحذف الاستثناء المحدد داخل الحساب ولا يمس سجل المواعيد.
ضبط نموذج الجدولة
1. حفظ إعدادات الحساب
تُستخدم منطقة IANA الزمنية عند إرسالdate وtime محليين.
2. إنشاء مورد ونوع موعد
3. ضبط ساعات الأسبوع والاستثناءات
يستخدمday_of_week القيمة 0 للأحد حتى 6 للسبت. تُقاس البداية والنهاية
بالدقائق منذ منتصف الليل؛ 540 تعني 09:00 و1020 تعني 17:00.
resource_id لتطبيقه
على كل الموارد:
إيجاد وقت بالاسم والنوع والتاريخ
يمكن استخدام UUID كمرجع ثابت أو الاسم الدقيق لتدفق سهل للبشر. لا ترسل الشكلين للمنتقي نفسه.service_name وresource_name كاسمين دقيقين ونشطين داخل الحساب. استخدم
service_id وresource_id عندما يمكن أن تتغير الأسماء. المورد اختياري؛ حذف
منتقي المورد يعيد أوقات كل الموارد المؤهلة.
إنشاء موعد بالعميل والتاريخ والوقت والنوع
يتطلب الإنشاء بمفتاح API قيمةexternal_id ثابتة في النظام المتصل. طولها
1–128 محرف ASCII، تبدأ بحرف لاتيني أو رقم، ثم تستخدم الأحرف والأرقام و. و_
و: و- فقط.
service_id وresource_id اختياري وstarts_at
بصيغة RFC3339. إذا حُذف المورد يختار HueChat موردًا مؤهلًا ومتاحًا. مدة الخدمة
وفواصلها هي المرجع؛ ends_at اختياري ويُستخدم للتحقق ولا يغير مدة الخدمة.
contact_id اختياري ويتطلب contacts:read ويجب أن ينتمي للحساب. ويمكن إرسال
اسم العميل وهاتفه وبريده مباشرة من دون إنشاء جهة اتصال. استخدم
واجهة جهات الاتصال وCustomer CDP عندما يحتاج النظام الخارجي
إلى حفظ ملف العميل الموحد.
deal_id اختياري ويتطلب deals:write، ويجب أن تكون الصفقة في الحساب وأن يسمح
فرعها بالخدمة والمورد. لا تظهر بيانات الصفقة إلا مع deals:read.
إعادة المحاولة من دون حجز مكرر
بعد انقطاع الشبكة، أرسل الطلب نفسه معexternal_id نفسه. يعيد HueChat الموعد
الموجود والترويسة:
409 Conflict ولا يغير الموعد الأول. يمكن إعادة 503 مؤقتة
بالطلب نفسه، وتظهر Retry-After: 0 عندما يبقى ربط الصفقة فقط. تُرفض الحقول
المجهولة وأكثر من قيمة JSON والجسم الأكبر من 1 MiB. تتضمن 429 الترويسة
Retry-After: 60 وترويسات X-RateLimit-*.
التحديث وتغيير الوقت والإكمال
تتضمن الاستجاباتpublic_id وUUID وversion. استخدم أي معرّف وأرسل أحدث نسخة
مع كل تغيير؛ تعيد النسخة القديمة 409.
tentative وbooked وconfirmed. وتقبل التغييرات اللاحقة
أيضًا completed وcancelled وno_show. يُحفظ تغيير الحالة وسجله معًا.
السجل والتقارير
يعيدGET /appointments/{id} الموعد مع سجل الحالة الزمني. ويعيد
GET /appointments/reports?start=…&end=… إجماليات كل حالة ونتائج كل خدمة.
تستخدم مدد العرض والتوفر والتقرير RFC3339، ويجب أن تكون النهاية بعد البداية
وألا تتجاوز 366 يومًا.
الأمان والحدود المقصودة
- يحتفظ HueChat بالمفتاح كتجزئة أحادية الاتجاه فقط.
- تُفحص ملكية الحساب والنطاق والانتهاء وقائمة IP الاختيارية والإلغاء وحد المعدل مع كل طلب.
- تُحل الأسماء والمعرّفات داخل الحساب فقط؛ يفشل الاسم الدقيق المكرر أو المفقود بدل اختيار سجل غير مقصود.
- لا تمنح نطاقات المواعيد صلاحيات ضمنية لجهات الاتصال أو الصفقات أو وكلاء AI.
- الأرشفة والاستعادة عمليتا إدارة عامتان لأنهما تحتفظان بالتاريخ. الحذف الدائم للموارد والخدمات ليس ضمن عقد التكامل الموثق.
- يبقى ربط المورد بوكيل AI تدفق إدارة للذكاء الاصطناعي، وليس عملية تكامل مواعيد.

