Skip to main content
تغطي واجهة النماذج دورة حياة النموذج كاملة: إنشاؤه ونشره، وإيصاله إلى مستلم بعينه، وجمع الرد من المتصفح أو من تطبيقك، وقراءة التقارير خلفه. تظهر هنا فئتان مختلفتان من نقاط النهاية، والفرق بينهما مهم: نقاط نهاية المستجيب بلا مصادقة عن قصد ليصل إليها المتصفح مباشرة. وهي محدودة المعدل لكل نموذج ولكل عميل، ويُربط كل رد بالنسخة المنشورة التي عُرضت عليه.
تظهر جميع عمليات النماذج معًا تحت Forms في مرجع API. ابدأ بشكل المسار: المسارات المحصورة بالحساب مخصصة لخادمك، ومسارات الرمز العام مخصصة لتجربة المستجيب. إذا كنت تبني النماذج داخل HueChat فقط، ينفذ التطبيق التدفقين عنك.

قبل البدء

النماذج ميزة مرتبطة بالخطة. إذا لم تكن مفعّلة للحساب، تُجيب كل نقاط نهاية الإدارة بالرمز 402 مع {"code": "plan_disabled", "feature": "forms"} وليس 403. اطلب من فريق HueChat تفعيل Forms & Surveys على الخطة قبل التكامل.
أنشئ مفتاح API محدود النطاق من الحساب ← واجهة المطور بأقل الصلاحيات اللازمة. يبقى إنشاء المفتاح وتدويره وإلغاؤه داخل التطبيق الموثق:

دورة الحياة

يكون النموذج دائمًا في إحدى أربع حالات، وتنقله الواجهة بينها:
1

مسودة draft

ينشئه POST /forms. ويعدّل PATCH /forms/{formId} التعريف كما تشاء. لا شيء متاح للعامة بعد.
2

منشور published

يجمّد POST /forms/{formId}/publish التعريف الحالي كنسخة ثابتة ويعيد الرابط العام. أي تعديل بعد ذلك ينشئ النسخة التالية، وتبقى الردود الجارية على النسخة التي عُرضت لها.
3

مغلق closed

يوقف POST /forms/{formId}/close استقبال ردود جديدة. يظل الرابط يعمل ويوضح أن النموذج مغلق.
4

مؤرشف archived

يزيله POST /forms/{formId}/archive من قائمة العمل، ويعيده POST /forms/{formId}/restore. وتبقى الردود محفوظة.

النشر والمشاركة

يعيد POST /forms/{formId}/publish الرمز العام public_code والرابط المبني عليه. ويمكن مشاركة النموذج المنشور بطريقتين:
  • رابط عام واحد للجميع: https://app.huechat.ai/to/{publicCode}.
  • دعوة تُصدر لكل مستلم عبر POST /forms/{formId}/invitations.
الدعوة رابط حامل: تُعرّف جهة الاتصال التي صدرت لها، فيُنسب الرد إلى ذلك العميل ويمكن تعبئة حقوله المعروفة مسبقًا.
يستطيع أي شخص يملك رابط الدعوة فتحه، وإعادة توجيهه تنقل ذلك الانتساب معه. لا تعتبر الدعوة إثباتًا للهوية عند التعبئة المسبقة الحساسة أو تحديث الملف الشخصي. استخدم POST /forms/{formId}/invitations/{invitationId}/revoke لسحب دعوة، وPOST /forms/{formId}/rotate-link لإبطال كل الروابط القائمة دفعة واحدة.

جمع الرد

يمر عميل المستجيب بالاستدعاءات الثلاثة نفسها التي تستخدمها صفحتك:
الحقل idempotency_key مطلوب. إعادة الإرسال بالمفتاح نفسه تعيد النتيجة الأصلية بدل تسجيل رد ثانٍ، فتكون إعادة المحاولة عند انقطاع الشبكة آمنة. الإرسال ليس كتابة عمياء: يعيد الخادم تقييم التفرّع والتقييم في النموذج، فيُرفض أي عميل يتخطى سؤالًا مطلوبًا أو يرسل إجابة لا تسمح بها القواعد. مع الدعوة، مرّر رمزها في ?invite= عند التحميل وفي حقل invite داخل كل طلب. ثم يعيد POST /forms/{publicCode}/prefill الحقول التي وافق الحساب على تعبئتها لتلك الجهة، وهو يتطلب session_id وinvite وopt_in صريحًا.

حدود معدل المستجيب

كل عملية للمستجيب محدودة لكل نموذج ولكل عميل في الدقيقة. والحدود ضيّقة عن قصد لأن هذه النقاط بلا مصادقة: يعيد التجاوز الرمز 429. راجع حدود المعدل للإرشادات العامة لإعادة المحاولة.

التقارير

وكلها تحتاج forms:read و reports:read.

تذكيرات المواعيد

يمكن ربط نموذج منشور بقاعدة تذكير موعد، فيحمل كل تذكير رابطًا خاصًا بذلك المستلم. نقاط نهاية التذكير موجودة في المواعيد، وتظهر حقول النموذج في POST وPUT /appointments/reminders. ولكل إرسال دعوته الخاصة، ويمكن إيقاف التذكير بعد رد المستلم.

الملفات والجدولة

  • الملفات. يرفع POST /forms/{formId}/assets ملفات الهوية أو وسائط الأسئلة. ويرفع المستجيبون عبر POST /forms/{publicCode}/assets، وتبقى ملفاتهم خاصة بالحساب.
  • الجدولة. يمكن أن يتضمن النموذج خطوة حجز: يعرض POST /forms/{publicCode}/schedule/slots الأوقات المتاحة، ويحجز POST /forms/{publicCode}/schedule/book أحدها ويعيد إيصالًا موقّعًا.

توليد نموذج بالذكاء الاصطناعي

يصوغ POST /forms/ai/generate نموذجًا من وصف نصي، ويعرض GET /forms/ai/generation-usage الرصيد الشهري. التوليد محدود لكل حساب شهريًا، وتخبرك نقطة الاستخدام بما تبقّى قبل استهلاك محاولة. ويصل النموذج المولَّد دائمًا كـ مسودة ليراجعه إنسان وينشره.