تخطَّ إلى المحتوى

وثائق المطورين

واجهة برمجة منصة الوكلاء

امنح وكيل ذكاء اصطناعي وصولاً محدود الصلاحيات عبر مفتاح Bearer إلى خدمات المنشأة، وأوقاتها المتاحة، وحجوزاتها، وعملائها، وإدارة علاقات العملاء — عبر REST أو MCP.

ما هي هذه المنصة

تتيح منصة الوكلاء في موعدي لوكيل ذكاء اصطناعي خارجي — مساعد صوتي، أو مساعد محادثة، أو وكيل برمجي للتنسيق، أو أي جهة أخرى قادرة على إرسال طلبات HTTPS — قراءة وإدارة بيانات منشأة واحدة نيابة عنها. كل طلب يُصادَق عليه بمفتاح Bearer يُصدر من لوحة تحكم المنشأة. لا توجد صلاحية جلسة أو ملفات تعريف ارتباط على هذه الواجهة، ولا تُصدَر أي ترويسات CORS على الإطلاق — فالمفتاح ترويسة لا يرسلها المتصفح من تلقاء نفسه.

35 عمليةعبر 27 مسار

المصادقة

كل طلب عبر REST أو MCP يحمل مفتاح Bearer نفسه. المفتاح المفقود أو غير الصحيح أو غير المعروف أو الملغى أو المنتهي يحصل جميعها على استجابة 401 واحدة متطابقة، بحيث لا تكشف الاستجابة وحدها للمتصل أياً من هذه الحالات وقعت.

الترويسة
Authorization: Bearer mwd_live_<key>
الرابط الأساسي
https://mawidi.com/api/agent/v1
التطوير المحلي
http://localhost:9000/api/agent/v1

الحصول على مفتاح

تُصدر المفاتيح من لوحة التحكم، وليس من هذه الواجهة. سجّل الدخول بصفتك مالك المنشأة أو مسؤولاً فيها، وأنشئ عميل وكيل مسمّى، واختر صلاحياته، وأصدر مفتاحاً له. يُعرض المفتاح كاملاً مرة واحدة فقط عند إنشائه — وبعدها لا يُعرض إلا جزء منه.

افتح إعدادات وصول الوكلاء ←

الصلاحيات

تُحدَّد صلاحيات المفتاح عند إصداره، ولا يمكن بعد ذلك إلا تضييقها أو إلغاؤها، لا توسيعها. اختر أضيق مجموعة صلاحيات يحتاجها العميل فعلاً؛ فالمفتاح الذي تنقصه صلاحية مطلوبة يحصل على 403 insufficient_scope.

الصلاحيةتُستخدم في
audit.readGET /audit/receipts
availability.readGET /availability
bookings.readGET /bookings, GET /bookings/{id}, GET /bookings/changes
bookings.read.orgGET /bookings, GET /bookings/{id}, GET /bookings/changes
bookings.writePOST /bookings, PATCH /bookings/{id}
business_hours.readGET /config/business-hours
business_hours.writePOST /config/business-hours
conversations.readGET /conversations
customers.readGET /customers/list
customers.writePOST /customers
knowledge.readGET /config/knowledge
knowledge.writePOST /config/knowledge
leads.deleteDELETE /leads/{id}
leads.readGET /leads, GET /leads/{id}, GET /leads/{id}/activities
leads.writePOST /leads, POST /leads/{id}/notes, POST /leads/{id}/stage, POST /leads/{id}/status
messages.sendPOST /conversations/{id}/replies
orders.readGET /orders
org_settings.readGET /config/settings
org_settings.writePOST /config/settings
payments.linkPOST /payments/links
payments.refundPOST /payments/refunds
pipeline.readGET /pipeline/stages
real_estate.readGET /properties
service_jobs.readGET /service-jobs
services.readGET /config/services, GET /services
services.writePOST /config/services
voice_agent.readGET /config/voice-agent

العمليات

جميع عمليات REST، مجمّعة حسب المورد. العقد الكامل القابل للقراءة الآلية، بما في ذلك مخططات الطلب والاستجابة، هو ملف OpenAPI المرتبط أدناه.

+ = تتطلب جميع, / = تتطلب أي واحدة من

الخدمات

كتالوج الخدمات القابلة للحجز الخاص بالمنشأة.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/servicesعرض الخدمات القابلة للحجزservices.read

التوفر

حساب الأوقات المتاحة، باستخدام نفس الشبكة الزمنية التي يفرضها مسار الكتابة.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/availabilityجلب الأوقات المتاحة لخدمة واحدةavailability.read

الحجوزات

إنشاء الحجوزات وقراءتها وعرضها وإعادة جدولتها وإلغاؤها، ومتابعة تغذية تغييراتها.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/bookingsعرض الحجوزات ضمن نطاق تواريخbookings.read / bookings.read.org
POST/bookingsإنشاء حجزbookings.write
GET/bookings/{id}جلب حجز واحدbookings.read / bookings.read.org
PATCH/bookings/{id}إعادة جدولة حجز أو إلغاؤهbookings.write
GET/bookings/changesجلب تغذية تغييرات الحجوزاتbookings.read / bookings.read.org

العملاء

بحث آمن من التعداد للبحث عن عميل أو إنشائه عبر رقم الهاتف، وسجل عملاء مُخفى الهوية جزئياً.

الطريقةالمسارالوصفالصلاحية المطلوبة
POST/customersالبحث عن عميل برقم الهاتف أو إنشاؤهcustomers.write
GET/customers/listعرض سجل العملاءcustomers.read

الطلبات

حالة الطلب وحالة الدفع والتنفيذ. لا يشمل أبداً بيانات Stripe الخاصة بالمنشأة.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/ordersعرض الطلباتorders.read

طلبات الخدمة الميدانية

طلبات الخدمة الميدانية، حرفتها ونافذتها الزمنية المجدولة. لا يشمل أبداً عنوان الخدمة.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/service-jobsعرض طلبات الخدمة الميدانيةservice_jobs.read

العقارات

قوائم العقارات باللغتين. لا يشمل أبداً الملاحظات أو الإحداثيات.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/propertiesعرض قوائم العقاراتreal_estate.read

المحادثات

عناوين مواضيع المحادثات. لا يشمل أبداً نصوص الرسائل.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/conversationsعرض مواضيع المحادثاتconversations.read

العملاء المحتملون

العملاء المحتملون لدى المنشأة وسجل أنشطتهم في CRM. بيانات التواصل مُخفاة، دون نص حر أو بريد إلكتروني.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/leadsعرض العملاء المحتملينleads.read
POST/leadsإنشاء عميل محتملleads.write
DELETE/leads/{id}اقتراح حذف عميل محتمل نهائياً (يتطلب موافقة المالك)leads.delete
GET/leads/{id}جلب عميل محتمل واحدleads.read
GET/leads/{id}/activitiesعرض عناوين أنشطة عميل محتمل واحدleads.read
POST/leads/{id}/notesإضافة ملاحظة إلى عميل محتملleads.write
POST/leads/{id}/stageنقل عميل محتمل إلى مرحلة في خط الأنابيبleads.write
POST/leads/{id}/statusتحديد حالة عميل محتملleads.write

خط الأنابيب

إعدادات مراحل خط الأنابيب — لا توجد بيانات عملاء يلزم إخفاؤها.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/pipeline/stagesعرض إعدادات مراحل خط الأنابيبpipeline.read

الإعدادات

إعدادات المنشأة: إدارة كتالوج الخدمات، وساعات العمل، وإعدادات المنشأة، وقاعدة معرفة واتساب الذكية، وملخص مُشتق للوكيل الصوتي. يُستثنى كل حقل متعلق بالاعتماد أو الفوترة أو المصادقة أو الاحتفاظ بالبيانات؛ ولا حذف.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/config/business-hoursعرض ساعات العملbusiness_hours.read
POST/config/business-hoursتحديد ساعات عمل يوم واحد من أيام الأسبوعbusiness_hours.write
GET/config/knowledgeعرض مدخلات قاعدة المعرفةknowledge.read
POST/config/knowledgeإنشاء مدخل في قاعدة المعرفة أو تحديثهknowledge.write
GET/config/servicesعرض إعدادات الخدمات (عرض إداري)services.read
POST/config/servicesإنشاء خدمة أو تحديثهاservices.write
GET/config/settingsجلب إعدادات المنشأةorg_settings.read
POST/config/settingsتحديث إعدادات المنشأةorg_settings.write
GET/config/voice-agentجلب إعدادات الوكيل الصوتيvoice_agent.read

التدقيق

إيصالات الاستخدام الخاصة بعميل الواجهة البرمجية هذا نفسه لكل قدرة على حدة، لأغراض المطابقة والتصدير الرقابي. لا تشمل أبداً بيانات عميل آخر، ولا تكون على مستوى المنشأة بالكامل أبداً. لا يوجد تقرير عن اتفاقية مستوى الخدمة (SLA) أو وقت التشغيل على هذه الواجهة.

الطريقةالمسارالوصفالصلاحية المطلوبة
GET/audit/receiptsعرض إيصالات الاستخدام الخاصة بعميل الواجهة البرمجية هذاaudit.read

الرسائل

ردود على العملاء يقترحها الوكيل ولا يُرسل أي منها إلا بعد موافقة مالك النشاط عليه. عبر واتساب فقط، ضمن نافذة الـ 24 ساعة للعميل، ولا تُرسل أبداً إلى عميل ألغى اشتراكه.

الطريقةالمسارالوصفالصلاحية المطلوبة
POST/conversations/{id}/repliesاقتراح رد عبر واتساب (لا يُرسل إلا بعد موافقة المالك)messages.send

المدفوعات

عمليات الاسترداد وروابط الدفع لحجز ما، على حساب Stripe الخاص بالمنشأة. ينتظر كل طلب موافقة المالك بعد التحقق من هويته، ولا يتحرك أي مبلغ قبل ذلك.

الطريقةالمسارالوصفالصلاحية المطلوبة
POST/payments/linksطلب رابط دفع لحجز (يتطلب موافقة المالك)payments.link
POST/payments/refundsطلب استرداد دفعة حجز أو طلب (يتطلب موافقة المالك)payments.refund

نقطة نهاية MCP

العمليات نفسها متاحة أيضاً كأدوات MCP عبر نقطة نهاية واحدة من نوع JSON-RPC 2.0، مصادَق عليها بمفتاح Bearer نفسه. يعيد tools/list الأدوات التي تغطيها صلاحيات المفتاح فعلاً فقط.

نقطة النهاية
/api/agent/mcp