للمطوّرين · REST + MCP · OpenAPI 3.1
اربط نظامك بـلَبيب
كلُّ ما يفعله المستشار داخل النظام متاحٌ لبرنامجك: 131 أداةً — العملاء، التذاكر، المواعيد، المهامّ، الفريق — برمزٍ واحد، وبمخطّطٍ يُولَّد من الشفرة نفسها فلا يتقادم.
- أداة
- 131
- منها كتابة
- 53
- إصدار المواصفة
- v1.0.0
ثلاث خطوات
لا تسجيلَ منفصل ولا مفاتيحَ إضافية: الرمز يُصدَر من حسابك، ويُلغى منه.
أصدِر رمزاً
من الإعدادات ← المطوّرون ← مفاتيح API: سمِّ المفتاح، اختر الأدوات التي يراها، وأدوارَ الموظّف الذي يعمل باسمه. يظهر مرّةً واحدة.
أنشئ مفتاح APIتحقّق من الهويّة
النداءُ الأوّل يخبرك بالمستأجر والموظّف الذي ينفّذ باسمك ونطاق الرمز — وهل الكتابة مسموحة.
curl https://labeb.app/api/v1/me \
-H "Authorization: Bearer wkm_…"نفّذ أداة
كلُّ أداةٍ مسارٌ واحد: POST باسمها وجسمٌ JSON يطابق مخطّطها. الردّ دائماً {ok, data} أو {ok:false, code, error}.
curl -X POST https://labeb.app/api/v1/tools/list_tasks \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"open"}'المصادقة
أرسل الرمز في ترويسة Authorization: Bearer wkm_… أو X-API-Key. ما يستطيعه الرمز هو تقاطع ثلاثة: الأدوات التي اخترتها له ∩ صلاحيّات موظّف الربط ∩ وضع الوصول (قراءة فقط أو قراءة وكتابة). كلُّ ما هو خارج التقاطع يعود 403 بكودٍ ثابت.
GET /api/v1/tools # الأدوات المتاحة لهذا الرمز بمخطّطاتها
POST /api/v1/tools/{key} # تنفيذ — الجسم JSON يطابق inputSchema
GET /api/v1/me # هويّة الرمز
# ردّ ناجح
{ "ok": true, "data": { ... } }
# ردّ مرفوض
{ "ok": false, "code": "out_of_scope", "error": "الأداةُ خارج نطاق هذا الرمز" }أكواد الأخطاء
| HTTP | code | المعنى |
|---|---|---|
| 401 | unauthorized | الرمز غائب أو منتهٍ أو ملغى |
| 403 | out_of_scope | الأداة خارج نطاق هذا الرمز |
| 403 | forbidden | موظّف الربط لا يملك صلاحية الأداة، أو المستأجر موقوف |
| 403 | write_not_allowed | أداة كتابة والوصول قراءةٌ فقط |
| 404 | unknown_tool | لا أداة بهذا الاسم |
| 400 | bad_request | جسم الطلب ليس كائن JSON |
| 400 | tool_failed | الأداة رفضت الوسائط أو أخفقت — النصّ يشرح |
رمزٌ واحد لكل شيء
الرمز نفسه يخدم REST وMCP. ما تختاره من أدوات وأدوار عند إصداره هو كل ما يستطيعه — لا أكثر.
يعمل باسم موظّف
كل نداء يُنفَّذ باسم «موظّف الربط الخارجيّ» بأدواره وحدها، ويُسجَّل في سجل الربط الخارجيّ داخل حسابك.
التوثيق من الشفرة
هذه الصفحة تُرسَم من openapi.json الذي يولّده الخادم من سجل الأدوات نفسه. أداةٌ تتغيّر بلا تحديث التوثيق توقف النشر.
حدود واضحة
سقفٌ ساعيّ للأدوات لكل مستأجر، وانتهاءٌ للرمز تختاره أنت، وإلغاءٌ فوريّ من الإعدادات.
MCP — لمساعدات الذكاء
الأدوات نفسها متاحة عبر Model Context Protocol لـ Claude وChatGPT وأيّ عميل يدعمه: عنوانٌ واحد، والرمز نفسه. أضف الخادم ثمّ اسأل مساعدك عن عملائك أو تذاكرك بلغتك.
- • JSON-RPC 2.0 على
POST /api/mcp/v1 - •
tools/listيعرض ما يراه الرمز فقط - • الكتابة تُنفَّذ باسم موظّف الربط بأدواره — بلا بطاقة موافقة
// Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"labeb": {
"url": "https://labeb.app/api/mcp/v1?token=wkm_…"
}
}
}
// أو من أيّ عميل MCP يدعم Streamable HTTP:
// URL: https://labeb.app/api/mcp/v1
// Header: Authorization: Bearer wkm_…مرجع الأدوات
يُرسَم لحظةَ فتح الصفحة من /api/v1/openapi.json. ما تراه هنا هو ما ينفّذه الخادم — بلا نسخةٍ مكتوبة باليد تتقادم.
المبيعات والعملاء17
إضافةPOST /api/v1/tools/add_lead_noteإضافة ملاحظة عميل▾
إضافة ملاحظة مؤرخة على بطاقة عميل محتمل.
الصلاحية المطلوبة لموظّف الربط: leads.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| customerId | string | نعم | معرّف العميل أو اسمه أو رقمه |
| note | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/add_lead_note \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"customerId":"…","note":"…"}'تعديلPOST /api/v1/tools/assign_follow_up_templateإسناد قالب متابعة▾
إسناد قالب متابعة لعميل: **يلغي كل متابعاته المعلّقة أولاً** ثم ينشئ تسلسل خطوات القالب من الآن. استخدم list_follow_up_templates لمعرفة القوالب ومراحلها.
الصلاحية المطلوبة لموظّف الربط: leads.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| customerId | string | نعم | معرّف العميل أو اسمه أو هاتفه |
| templateId | string | نعم | معرّف قالب المتابعة أو اسمه |
curl -X POST https://labeb.app/api/v1/tools/assign_follow_up_template \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"customerId":"…","templateId":"…"}'تعديلPOST /api/v1/tools/cancel_lead_follow_upsإيقاف متابعات عميل▾
إيقاف كل المتابعات المعلّقة لعميل دفعةً واحدة (مثلاً حين يردّ العميل أو يُغلق ملفه). لا يمسّ المُرسَلة.
الصلاحية المطلوبة لموظّف الربط: leads.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| customerId | string | نعم | معرّف العميل أو اسمه أو هاتفه |
curl -X POST https://labeb.app/api/v1/tools/cancel_lead_follow_ups \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"customerId":"…"}'تعديلPOST /api/v1/tools/complete_follow_upإقفال متابعة▾
إقفال تذكير متابعة بـ«تمّت المتابعة» بعد أن تواصل الموظف فعلاً. للتذكيرات الداخلية لا لرسائل القناة.
الصلاحية المطلوبة لموظّف الربط: leads.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| followUpId | string | نعم | معرّف المتابعة (GUID من قائمة المتابعات) |
curl -X POST https://labeb.app/api/v1/tools/complete_follow_up \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"followUpId":"…"}'قراءةPOST /api/v1/tools/get_campaign_funnelقمع الحملة▾
قمعُ حملةٍ واحدة: كم عميلاً جلبت وماذا حدث لهم (interested · engaged · trial · won · lost)، مع نسبة التحويل وأسباب الخسارة وتكلفة العميل وتكلفة الصفقة من إنفاق الحملة.
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| campaign | string | نعم | معرّف الحملة أو معرّفها في ميتا أو اسمها كاملاً أو جزءاً منه |
| period | string | — | today|yesterday|last24h|last7d|last30d|all — الافتراضي all |
| fromDate | string | — | |
| toDate | string | — |
curl -X POST https://labeb.app/api/v1/tools/get_campaign_funnel \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"campaign":"…"}'قراءةPOST /api/v1/tools/get_crm_reportتقرير العملاء▾
تقرير العملاء المحتملين: توزيعهم على المراحل + الجدد خلال فترة + آخر العملاء. days الافتراضي 30.
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_crm_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_follow_ups_reportتقرير المتابعات▾
تقرير المتابعات: التوزيع على الحالات والأنواع خلال فترة + المتابعات القادمة غير المرسلة.
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_follow_ups_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_lead_detailsتفاصيل عميل▾
بطاقة عميل محتمل كاملة بالبحث بالهاتف أو الاسم: البيانات، المرحلة، الملاحظات، ملخص الرحلة إن وجد.
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | — | |
| name | string | — |
curl -X POST https://labeb.app/api/v1/tools/get_lead_details \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…","name":"…"}'قراءةPOST /api/v1/tools/get_lead_settingsإعدادات العملاء▾
إعدادات العملاء المحتملين: مصادر العملاء المعرّفة وأسباب الخسارة — مفيدة قبل تحليل المصادر أو الخسارة.
الصلاحية المطلوبة لموظّف الربط: leads.manage
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_lead_settings \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/get_lead_source_reportمصادر العملاء▾
مصادرُ العملاء خلال فترة، ولكلّ مصدرٍ اسمٌ مقروء (label) وتوزيعُ حملاته — ومجموعُ التفصيل يطابق الإجمالي دائماً لأنّ ما بلا حملةٍ يظهر سطراً صريحاً «بلا حملة». المصادر: meta_ctwa = إعلانات ميتا (يشمل من نقر الإعلان ثم كتب نصّاً من عنده) · whatsapp = تواصل مباشر بلا إعلان · tenant_data = بيانات مستوردة · manual = إدخال يدوي. ومعه توزيعٌ حسب القناة (واتساب · ماسنجر · الموقع) والبلد ومسار الإسناد (ctwa_click = نقرة إعلان مؤكّدة · opener = عبارة افتتاحية). الفترة تقويميّة بتوقيت حساب المستأجر.
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| period | string | — | today|yesterday|last24h|last7d|last30d|all — الافتراضي last24h |
| fromDate | string | — | YYYY-MM-DD بتوقيت حساب المستأجر |
| toDate | string | — | YYYY-MM-DD شاملاً |
curl -X POST https://labeb.app/api/v1/tools/get_lead_source_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"period":"…","fromDate":"…"}'قراءةPOST /api/v1/tools/get_leads_by_campaignعملاء حملة▾
عملاءُ حملةٍ واحدة: العددُ أوّلاً ثمّ القائمةُ ثمّ الملخّص. تقبل معرّف الحملة أو معرّفها في ميتا أو اسمها كاملاً أو جزءاً منه (تُطابَق بعد تجاهل علامات اتّجاه النصّ وفروق المسافات). ولكلّ عميل: الاسمُ والهاتفُ ووقتُ الدخول والمصدرُ والمرحلةُ والمسؤولُ وسببُ الخسارة والبلدُ ومسارُ الإسناد (نقرة إعلان أم عبارة افتتاحية).
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| campaign | string | نعم | معرّف الحملة أو معرّفها في ميتا أو اسمها كاملاً أو جزءاً منه |
| period | string | — | today|yesterday|last24h|last7d|last30d|all — الافتراضي all |
| fromDate | string | — | YYYY-MM-DD بتوقيت حساب المستأجر |
| toDate | string | — | YYYY-MM-DD شاملاً |
| source | string | — | |
| stage | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_leads_by_campaign \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"campaign":"…"}'قراءةPOST /api/v1/tools/list_follow_up_templatesقوالب المتابعة▾
قوالب متابعة العملاء المحتملين: المرحلة التي تنطبق عليها، مفعّلة أم لا، عدد خطواتها، ونمط التشغيل.
الصلاحية المطلوبة لموظّف الربط: followup.manage
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_follow_up_templates \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_follow_upsالمتابعات▾
المتابعات المجدولة والمرسلة (الافتراضي القادمة والمعلقة).
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_follow_ups \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"limit":10}'قراءةPOST /api/v1/tools/list_sales_opportunitiesالفرص البيعية▾
الفرص البيعية: التوزيع على المراحل مع مجموع القيمة + آخر الفرص وأسباب الخسارة.
الصلاحية المطلوبة لموظّف الربط: leads.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_sales_opportunities \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"limit":10}'تعديلPOST /api/v1/tools/reschedule_follow_upتعديل متابعة▾
تعديل متابعة معلّقة: تأجيلها أو تغيير نصها أو تخطيها أو إلغاؤها. followUpId من list_follow_ups أو get_follow_ups_report. status: pending|skipped|cancelled. المتابعات المُرسَلة تاريخٌ لا يُعدَّل.
الصلاحية المطلوبة لموظّف الربط: leads.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| followUpId | string | نعم | معرّف المتابعة (GUID من قائمة المتابعات) |
| scheduledAt | string | — | الموعد الجديد بصيغة ISO — في المستقبل |
| messageText | string | — | |
| title | string | — | |
| status | string | — | pending|skipped|cancelled |
curl -X POST https://labeb.app/api/v1/tools/reschedule_follow_up \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"followUpId":"…"}'إضافةPOST /api/v1/tools/schedule_follow_upجدولة متابعة▾
جدولة متابعة لعميل محتمل في موعد مستقبلي. kind: channel (تُرسل للعميل عبر واتساب تلقائياً) | reminder (تذكير داخلي للموظف لا يصل العميل). الافتراضي channel — فاختر reminder صراحةً إن كان المقصود تذكير الفريق لا مراسلة العميل.
الصلاحية المطلوبة لموظّف الربط: leads.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| customerId | string | نعم | معرّف العميل أو اسمه أو هاتفه |
| messageText | string | نعم | نص الرسالة أو التذكير |
| scheduledAt | string | نعم | الموعد بصيغة ISO مثل 2026-08-05T09:00:00Z — يجب أن يكون في المستقبل |
| title | string | — | |
| kind | string | — | channel|reminder |
curl -X POST https://labeb.app/api/v1/tools/schedule_follow_up \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"customerId":"…","messageText":"…","scheduledAt":"…"}'تعديلPOST /api/v1/tools/update_lead_stageنقل مرحلة عميل▾
نقل عميل محتمل إلى مرحلة: interested|trial|engaged. «نجاح» عبر ترقية ما بعد البيع، و«خسارة» من الواجهة مع سبب.
الصلاحية المطلوبة لموظّف الربط: leads.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| customerId | string | نعم | معرّف العميل أو اسمه أو رقمه |
| stage | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/update_lead_stage \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"customerId":"…","stage":"…"}'واتساب والمواعيد21
تعديلPOST /api/v1/tools/cancel_appointmentإلغاء موعد▾
إلغاء موعد مع إشعار العميل بالإلغاء. خذ appointmentId من list_appointments، وreason اختياري.
الصلاحية المطلوبة لموظّف الربط: appointments.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| appointmentId | string | نعم | |
| reason | string | — |
curl -X POST https://labeb.app/api/v1/tools/cancel_appointment \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"appointmentId":"…"}'إضافةPOST /api/v1/tools/create_appointmentحجز موعد▾
حجز موعد يدوي لعميل برقمه في وقت محدد بتوقيت الشركة (scheduledAt بصيغة 2026-09-21T15:30). يتحقق من التعارض ويربطه ببطاقة العميل إن وجدت. لا يرسل رسالة للعميل.
الصلاحية المطلوبة لموظّف الربط: appointments.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | نعم | |
| customerName | string | — | |
| scheduledAt | string | نعم | |
| durationMinutes | integer | — | |
| assignedToUserId | string | — | |
| notes | string | — |
curl -X POST https://labeb.app/api/v1/tools/create_appointment \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…","scheduledAt":"…"}'إضافةPOST /api/v1/tools/create_whatsapp_templateإنشاء قالب واتساب▾
إنشاء قالب واتساب رسمي وإرساله لمراجعة ميتا. name بحروف إنجليزية صغيرة وشرطات سفلية، body نص القالب والمتغيرات بصيغة {{1}} {{2}} مع مثال لكل متغير في examples، category واحدة من UTILITY (خدمي) أو MARKETING (تسويقي) أو AUTHENTICATION (رمز تحقق)، language مثل ar أو en، footer اختياري، buttons اختيارية: QUICK_REPLY حتى 10، URL حتى 2 مع url، PHONE_NUMBER واحد مع phoneNumber. instanceId مطلوب فقط إن كان في الحساب أكثر من قناة رسمية. القالب لا يرسل قبل اعتماده — تابع حالته بـ get_whatsapp_template_status.
الصلاحية المطلوبة لموظّف الربط: whatsapp.instance.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| name | string | نعم | |
| body | string | نعم | |
| category | "UTILITY" | "MARKETING" | "AUTHENTICATION" | نعم | |
| language | string | — | |
| examples | string[] | — | |
| footer | string | — | |
| buttons | object[] | — | |
| instanceId | string | — |
curl -X POST https://labeb.app/api/v1/tools/create_whatsapp_template \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"name":"…","body":"…","category":"UTILITY"}'حذفPOST /api/v1/tools/delete_whatsapp_templateحذف قالب واتساب▾
حذف قالب واتساب رسمي من ميتا ومن القائمة — لا رجعة فيه، ولا يمكن إعادة استعمال اسمه فوراً عند ميتا. مرر templateId (المعرّف أو الاسم). القالب الذي تديره خدمة رمز التحقق لا يحذف من هنا.
الصلاحية المطلوبة لموظّف الربط: whatsapp.instance.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| templateId | string | نعم | معرّف القالب أو اسمه |
curl -X POST https://labeb.app/api/v1/tools/delete_whatsapp_template \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"templateId":"…"}'قراءةPOST /api/v1/tools/get_appointment_settingsإعدادات المواعيد▾
إعدادات وكيل المواعيد: التفعيل، المدة، القوالب، كلمات الكشف.
الصلاحية المطلوبة لموظّف الربط: appointments.manage
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_appointment_settings \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/get_conversation_summariesملخصات المحادثات▾
الملخصات المحفوظة لمحادثات العملاء (ذاكرة المحادثات الطويلة).
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.read.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_conversation_summaries \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…","limit":10}'قراءةPOST /api/v1/tools/get_whatsapp_conversationقراءة محادثة▾
رسائل محادثة واتساب لرقم محدد أو لمجموعة (الأحدث أولاً) — للتحليل العميق للمحادثة: الاتجاه والنص والوقت. للمجموعة مرّر معرّفها الكامل (…@g.us من list_whatsapp_groups) في phone، فتعيد لكلّ رسالة من أرسلها: لَبيب أو موظّف أو رقم المشارك.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.read.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | نعم | رقم العميل، أو معرّف مجموعة كامل بلاحقة @g.us |
| isGroup | boolean | — | اختياري: الوجهة مجموعة. يُستنتج من لاحقة @g.us |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_whatsapp_conversation \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…"}'قراءةPOST /api/v1/tools/get_whatsapp_routingتوجيه الواتساب▾
إعداد توجيه محادثات الواتساب لكل رقم: ذكاء أم موظف واحد أم تناوب.
الصلاحية المطلوبة لموظّف الربط: whatsapp.routing.manage
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_whatsapp_routing \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/get_whatsapp_send_windowنافذة الإرسال▾
هل نافذة 24 ساعة مفتوحة لهذا الرقم على القناة الرسمية. اسأل قبل إرسال ملف أو نص حر: خارج النافذة لا تقبل ميتا إلا قالبا معتمدا. القنوات غير الرسمية لا تخضع لهذا الحد.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.send
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/get_whatsapp_send_window \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…"}'قراءةPOST /api/v1/tools/get_whatsapp_template_statusحالة قالب واتساب▾
حالة قالب واتساب الآن: يسحب الحالة من ميتا أولاً ثم يعيد status (approved معتمد، pending قيد المراجعة، rejected مرفوض، paused موقوف) مع معناها وسبب الرفض إن وجد والنص وعدد المتغيرات. مرر templateId (المعرّف أو الاسم)، وrefresh=false للقراءة المخزنة بلا سحب.
الصلاحية المطلوبة لموظّف الربط: whatsapp.instance.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| templateId | string | نعم | معرّف القالب أو اسمه |
| refresh | boolean | — |
curl -X POST https://labeb.app/api/v1/tools/get_whatsapp_template_status \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"templateId":"…"}'قراءةPOST /api/v1/tools/list_appointmentsقائمة المواعيد▾
المواعيد ضمن فترة (الافتراضي القادمة 14 يوماً) مع الحالة والعميل.
الصلاحية المطلوبة لموظّف الربط: appointments.read
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| daysAhead | integer | — | |
| status | string | — |
curl -X POST https://labeb.app/api/v1/tools/list_appointments \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"daysAhead":10,"status":"…"}'قراءةPOST /api/v1/tools/list_whatsapp_conversationsقراءة المحادثات▾
محادثات واتساب الخاصة مع فلاتر: نافذة زمنية بتوقيت الحساب (period أو fromDate/toDate)، ومرحلة العميل (stage)، والقناة باسمها أو رقمها (channel)، وunanswered للمحادثات التي آخر رسالة فيها من العميل ولم يُردّ عليها. لكل محادثة: الرقم والاسم والمرحلة والقناة وعدد الرسائل في النافذة وآخر رسالة ومن أرسلها وهل تنتظر ردّاً، مع العدد الكلي المطابق. نقطة البداية لتحليل المحادثات.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.read.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| period | string | — | today|yesterday|last24h|last7d|last30d|all — الافتراضي last30d |
| fromDate | string | — | YYYY-MM-DD بتوقيت الحساب |
| toDate | string | — | YYYY-MM-DD شاملاً |
| stage | string | — | interested|engaged|trial|won|lost |
| channel | string | — | اسم القناة أو رقمها |
| unanswered | boolean | — | فقط المحادثات التي تنتظر ردّنا |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_whatsapp_conversations \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"period":"…","fromDate":"…"}'قراءةPOST /api/v1/tools/list_whatsapp_groupsقراءة المجموعات▾
مجموعات واتساب التي يشارك بها حسابك: المعرف الكامل بصيغة أرقام تليها @g.us والاسم وعدد الرسائل وآخر نشاط، مرتبة بالأحدث نشاطاً. هذا المعرف هو ما يوضع في حقل phone عند send_whatsapp_message أو send_whatsapp_media للإرسال إلى مجموعة. الحساب قد يكون في مئات المجموعات، فمرر query بجزء من اسم المجموعة للبحث عنها بالاسم بدل تصفح الأحدث. ومع period أو fromDate/toDate تعيد فقط المجموعات التي تحرّكت في تلك الفترة مع عدد رسائلها فيها وآخر رسالة ومن أرسلها (لَبيب · موظّف · رقم المشارك) — لسؤال «أيّ مجموعات تحرّكت اليوم». ولقراءة رسائل مجموعة مرّر معرّفها إلى get_whatsapp_conversation. limit الافتراضي 20 وأقصاه 50.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.read.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| query | string | — | اختياري: جزء من اسم المجموعة للبحث — بلا حساسية لحالة الأحرف |
| period | string | — | اختياري: today|yesterday|last24h|last7d|last30d |
| fromDate | string | — | YYYY-MM-DD بتوقيت الحساب |
| toDate | string | — | YYYY-MM-DD شاملاً |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_whatsapp_groups \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"query":"…","period":"…"}'قراءةPOST /api/v1/tools/list_whatsapp_official_templatesقوالب واتساب الرسمية▾
قوالب واتساب الرسمية المعتمدة: الاسم واللغة والحالة وعدد المتغيّرات ونصّها.
الصلاحية المطلوبة لموظّف الربط: whatsapp.instance.manage
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_whatsapp_official_templates \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'تعديلPOST /api/v1/tools/reschedule_appointmentإعادة جدولة موعد▾
تغيير وقت موعد قائم (scheduledAt بتوقيت الشركة) مع إشعار العميل بالوقت الجديد. خذ appointmentId من list_appointments.
الصلاحية المطلوبة لموظّف الربط: appointments.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| appointmentId | string | نعم | |
| scheduledAt | string | نعم | |
| durationMinutes | integer | — | |
| assignedToUserId | string | — | |
| notes | string | — |
curl -X POST https://labeb.app/api/v1/tools/reschedule_appointment \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"appointmentId":"…","scheduledAt":"…"}'إرسالPOST /api/v1/tools/send_whatsapp_mediaإرسال مرفق واتساب▾
إرسال ملف أو صورة أو مستند عبر واتساب إلى رقم أو إلى مجموعة — وللمجموعة مرر معرفها الكامل بصيغة @g.us في حقل phone، وتُقرأ المعرفات بـ list_whatsapp_groups. مرر fileId لملف رفعته سابقا بـ upload_file وهو الأفضل عند الإرسال لأكثر من رقم لأنه لا يعيد الحمولة، أو url للملف، أو base64 لمحتواه — مصدر واحد فقط لا أكثر. مع fileName وcaption اختياريا. تصل للعميل فعلا. السقف 16 ميغابايت، والصور والفيديو سقفها 16 من واتساب نفسه. الصوت غير مدعوم بعد. يخضع لحدود الإرسال: فاصل زمني بين رسالتين لنفس الرقم، وسقف ساعي للحساب، وسقف لعدد الأرقام المختلفة في الساعة.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.send
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | نعم | رقم بصيغة دولية بأرقام فقط بلا + ولا مسافات، أو معرف مجموعة كامل بلاحقة @g.us |
| fileId | string | — | معرف ملف مرفوع مسبقا بـ upload_file — الأفضل للإرسال المتكرر |
| url | string | — | |
| base64 | string | — | |
| fileName | string | — | |
| mimeType | string | — | |
| caption | string | — | |
| isGroup | boolean | — | اختياري: الوجهة مجموعة. يُستنتج تلقائياً من لاحقة @g.us |
| channel | string | — | اختياري: اسم القناة أو رقمها التي تخرج منها الرسالة — لازم إذا عند الحساب أكثر من قناة والرقم ما تواصل قبل |
curl -X POST https://labeb.app/api/v1/tools/send_whatsapp_media \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…"}'إرسالPOST /api/v1/tools/send_whatsapp_messageإرسال رسالة واتساب▾
إرسال رسالة واتساب نصية إلى رقم أو إلى مجموعة. للرقم: أرقام فقط مع رمز الدولة بلا + ولا مسافات. وللمجموعة: مرر معرفها الكامل في نفس حقل phone بصيغة أرقام تليها @g.us — والمعرفات تُقرأ بـ list_whatsapp_groups. ويمكن تمرير isGroup صريحاً ومعه يُقبل المعرف كما هو. تصل فعلياً — استخدمها بحذر وبنص نهائي جاهز. وإذا عند الحساب أكثر من قناة مرّر channel باسم القناة، وإلا ترجع لك الأداة أسماء القنوات لتسأل المستخدم.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.send
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | نعم | رقم بصيغة دولية بأرقام فقط بلا + ولا مسافات، أو معرف مجموعة كامل بلاحقة @g.us |
| text | string | نعم | |
| isGroup | boolean | — | اختياري: الوجهة مجموعة. يُستنتج تلقائياً من لاحقة @g.us، ويُصرَّح به عند الحاجة |
| channel | string | — | اختياري: اسم القناة أو رقمها التي تخرج منها الرسالة — لازم إذا عند الحساب أكثر من قناة والرقم ما تواصل قبل |
curl -X POST https://labeb.app/api/v1/tools/send_whatsapp_message \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…","text":"…"}'إرسالPOST /api/v1/tools/send_whatsapp_templateإرسال قالب واتساب▾
إرسال قالب واتساب معتمد إلى رقم — وهو الطريق الوحيد لفتح محادثة بعد انتهاء نافذة 24 ساعة على القناة الرسمية، لأن الوسائط والنص الحر لا يقبلان خارجها. اقرأ القوالب أولا بـ list_whatsapp_official_templates وخذ منها المعرف وعدد المتغيرات. يخضع لنفس حدود الإرسال.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.send
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | نعم | |
| templateId | string | نعم | |
| params | string[] | — | |
| channel | string | — | اختياري: اسم القناة أو رقمها الرسمية التي يخرج منها القالب — لازم إذا عند الحساب أكثر من قناة والرقم ما تواصل قبل |
curl -X POST https://labeb.app/api/v1/tools/send_whatsapp_template \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…","templateId":"…"}'إرسالPOST /api/v1/tools/send_whatsapp_template_bulkإرسال قالب لمجموعة▾
إرسال قالب واتساب معتمد لمجموعة عملاء دفعة واحدة (حتى 25 رقماً): مرر phones قائمة أرقام، أو stage مرحلة البطاقات (interested · trial · engaged · won) فيؤخذ أحدث 25 بلا الخاسرين والمؤجّلين. params قيم المتغيرات، وfirstParamIsCustomerName=true يضع الاسم الأول لكل عميل في المتغير الأول. كل رقم يمر بسياسة ميتا (لا قالب خلال 24 ساعة من سابقه ولا بعد رفض حديث) فيتخطى المحمي ويذكر السبب.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.send
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| templateId | string | نعم | |
| phones | string[] | — | |
| stage | "interested" | "trial" | "engaged" | "won" | — | |
| params | string[] | — | |
| firstParamIsCustomerName | boolean | — |
curl -X POST https://labeb.app/api/v1/tools/send_whatsapp_template_bulk \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"templateId":"…"}'تعديلPOST /api/v1/tools/update_appointment_settingsتعديل إعدادات المواعيد▾
تعديل إعدادات المواعيد: تفعيل/مدة/أقصى أيام/قوالب الرسائل.
الصلاحية المطلوبة لموظّف الربط: appointments.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| isEnabled | boolean | — | |
| durationMinutes | integer | — | |
| maxDaysAhead | integer | — | |
| askTimeMessage | string | — | |
| confirmationTemplate | string | — |
curl -X POST https://labeb.app/api/v1/tools/update_appointment_settings \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"isEnabled":true,"durationMinutes":10}'تعديلPOST /api/v1/tools/upload_fileرفع ملف▾
رفع ملف مرة واحدة إلى النظام وأخذ معرف قصير له، ثم إرساله لأي عدد من الأرقام بـ send_whatsapp_media ومعه fileId — بلا إعادة الحمولة في كل مرة وبلا خطر حرف فاسد يفسد الملف. مرر base64 لمحتوى الملف أو url لجلبه، مع fileName وmimeType. المعرف صالح سبعة أيام ولا يصلح إلا داخل حسابك.
الصلاحية المطلوبة لموظّف الربط: whatsapp.message.send
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| base64 | string | — | |
| url | string | — | |
| fileName | string | — | |
| mimeType | string | — |
curl -X POST https://labeb.app/api/v1/tools/upload_file \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"base64":"…","url":"…"}'ما بعد البيع والتذاكر10
تعديلPOST /api/v1/tools/assign_ticketإسناد تذكرة▾
إسناد تذكرة لموظف (استخدم list_users للمعرّف).
الصلاحية المطلوبة لموظّف الربط: quality.ticket.assign
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| ticketId | string | نعم | معرّف التذكرة أو رقمها أو عنوانها |
| userId | string | نعم | معرّف المستخدم أو اسمه |
curl -X POST https://labeb.app/api/v1/tools/assign_ticket \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"ticketId":"…","userId":"…"}'إضافةPOST /api/v1/tools/create_kb_articleإضافة مقال معرفة▾
إضافة مقال جديد لقاعدة المعرفة (يتفهرس فوراً لبوت الدعم).
الصلاحية المطلوبة لموظّف الربط: postsale.kb.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| title | string | نعم | |
| content | string | نعم | |
| category | string | — | |
| isPublished | boolean | — |
curl -X POST https://labeb.app/api/v1/tools/create_kb_article \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"title":"…","content":"…"}'إضافةPOST /api/v1/tools/create_ticketفتح تذكرة▾
فتح تذكرة دعم جديدة (تحسب SLA تلقائياً).
الصلاحية المطلوبة لموظّف الربط: quality.ticket.create
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| title | string | نعم | |
| description | string | — | |
| priority | string | — | low|normal|high|critical |
| assignedToUserId | string | — |
curl -X POST https://labeb.app/api/v1/tools/create_ticket \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"title":"…"}'قراءةPOST /api/v1/tools/get_postsale_customerتفاصيل عميل ما بعد البيع▾
تفاصيل عميل ما بعد البيع (بالهاتف أو الاسم): الحالة وخطوات الإعداد ودرجة الصحة وسبب النجاح وسرعة التحويل + آخر الملاحظات الداخلية.
الصلاحية المطلوبة لموظّف الربط: postsale.read
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| phone | string | — | |
| name | string | — |
curl -X POST https://labeb.app/api/v1/tools/get_postsale_customer \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"phone":"…","name":"…"}'قراءةPOST /api/v1/tools/get_tickets_reportتقرير التذاكر▾
تقرير تذاكر الدعم: توزيع الحالات + أحدث التذاكر المفتوحة.
الصلاحية المطلوبة لموظّف الربط: tickets.read
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_tickets_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_kb_articlesقائمة المقالات▾
قائمة مقالات قاعدة المعرفة (منشورة ومسودات) مع التصنيف.
الصلاحية المطلوبة لموظّف الربط: postsale.read
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| search | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_kb_articles \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"search":"…","limit":10}'قراءةPOST /api/v1/tools/list_postsale_customersعملاء ما بعد البيع▾
عملاء ما بعد البيع: التوزيع على الحالات + قائمة بالاسم والهاتف ودرجة الصحة والفئة والمسؤول.
الصلاحية المطلوبة لموظّف الربط: postsale.read
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| status | string | — | pending|active|churned… (اختياري) |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_postsale_customers \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"…","limit":10}'قراءةPOST /api/v1/tools/search_knowledge_baseبحث قاعدة المعرفة▾
بحث دلالي في قاعدة المعرفة — نفس البحث الذي يستخدمه بوت الدعم.
الصلاحية المطلوبة لموظّف الربط: postsale.read
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| query | string | نعم | |
| topK | integer | — |
curl -X POST https://labeb.app/api/v1/tools/search_knowledge_base \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"query":"…"}'تعديلPOST /api/v1/tools/update_kb_articleتعديل مقال معرفة▾
تعديل مقال معرفة قائم (عنوان/محتوى/تصنيف/نشر).
الصلاحية المطلوبة لموظّف الربط: postsale.kb.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| articleId | string | نعم | معرّف المقال أو عنوانه |
| title | string | — | |
| content | string | — | |
| category | string | — | |
| isPublished | boolean | — |
curl -X POST https://labeb.app/api/v1/tools/update_kb_article \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"articleId":"…"}'تعديلPOST /api/v1/tools/update_ticket_statusتغيير حالة تذكرة▾
تغيير حالة تذكرة: in_progress | waiting_customer | testing | resolved | cancelled.
الصلاحية المطلوبة لموظّف الربط: quality.ticket.update.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| ticketId | string | نعم | |
| status | string | نعم | |
| resolutionText | string | — |
curl -X POST https://labeb.app/api/v1/tools/update_ticket_status \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"ticketId":"…","status":"…"}'المهامّ7
إضافةPOST /api/v1/tools/create_taskإنشاء مهمة▾
إنشاء مهمة جديدة. استخدم list_users للحصول على assignedToUserId عند الإسناد.
الصلاحية المطلوبة لموظّف الربط: tasks.task.create
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| title | string | نعم | |
| description | string | — | |
| assignedToUserId | string | — | |
| priority | string | — | low|normal|high|urgent |
| dueDate | string | — | ISO date |
| projectId | string | — | |
| monthlyGoalId | string | — |
curl -X POST https://labeb.app/api/v1/tools/create_task \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"title":"…"}'حذفPOST /api/v1/tools/delete_taskحذف مهمة▾
حذف مهمة (حذف ناعم).
الصلاحية المطلوبة لموظّف الربط: tasks.task.delete.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| taskId | string | نعم | معرّف المهمة أو عنوانها |
curl -X POST https://labeb.app/api/v1/tools/delete_task \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"taskId":"…"}'قراءةPOST /api/v1/tools/get_performance_metricsمؤشرات الأداء▾
مؤشرات أداء الفريق لشهر: المهام المُسندة والمنجزة في وقتها والمتأخرة والمرفوضة ومتوسط زمن الإنجاز، باسم كل موظف.
الصلاحية المطلوبة لموظّف الربط: tasks.task.read.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| year | integer | — | |
| month | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_performance_metrics \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"year":10,"month":10}'قراءةPOST /api/v1/tools/list_task_dependenciesاعتماديات المهام▾
روابط اعتماد المهام (من يحجب من) — لكشف سلاسل التعطيل.
الصلاحية المطلوبة لموظّف الربط: tasks.task.read.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| taskId | string | — | معرّف المهمة أو عنوانها |
curl -X POST https://labeb.app/api/v1/tools/list_task_dependencies \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"taskId":"…"}'قراءةPOST /api/v1/tools/list_tasksقراءة المهام▾
قائمة المهام مع فلاتر اختيارية. إن لم تملك صلاحية قراءة الكل تُعاد مهامك فقط.
الصلاحية المطلوبة لموظّف الربط: tasks.task.read.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| status | string | — | open|in_progress|submitted|approved|rejected|cancelled|draft |
| onlyMine | boolean | — | |
| projectId | string | — | |
| monthlyGoalId | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_tasks \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"…","onlyMine":true}'تعديلPOST /api/v1/tools/set_task_statusتغيير حالة مهمة▾
نقل مهمة إلى حالة: open | in_progress | submitted | approved | rejected | cancelled.
الصلاحية المطلوبة لموظّف الربط: tasks.task.update.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| taskId | string | نعم | معرّف المهمة أو عنوانها |
| status | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/set_task_status \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"taskId":"…","status":"…"}'تعديلPOST /api/v1/tools/update_taskتعديل مهمة▾
تعديل مهمة قائمة (العنوان/الوصف/الأولوية/الاستحقاق/الإسناد/الروابط).
الصلاحية المطلوبة لموظّف الربط: tasks.task.update.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| taskId | string | نعم | معرّف المهمة أو عنوانها |
| title | string | — | |
| description | string | — | |
| priority | string | — | |
| dueDate | string | — | |
| assignedToUserId | string | — | |
| projectId | string | — | |
| monthlyGoalId | string | — |
curl -X POST https://labeb.app/api/v1/tools/update_task \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"taskId":"…"}'المنتج19
قراءةPOST /api/v1/tools/get_product_cardتفاصيل بطاقة تقنية▾
تفاصيل بطاقة تقنية بعنوانها: الوصف والحالة والأولوية والنظام وعدد الطالبين + آخر التعليقات.
الصلاحية المطلوبة لموظّف الربط: product.cards.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| title | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/get_product_card \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"title":"…"}'قراءةPOST /api/v1/tools/get_product_reportتقرير إدارة المنتج▾
تقرير إدارة المنتج: توزّع البطاقات على الحالات والأولويّات والأنواع، وأقدمُ البطاقات العالقة، وحِمل كلّ مسؤول، وحال الإصدارات.
الصلاحية المطلوبة لموظّف الربط: product.cards.view
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_product_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_product_card_triggersمحفّزات البطاقات▾
محفّزات البطاقات التقنية: رسالة تُرسل عند تحوّل حالة البطاقة أو عند إطلاق إصدار.
الصلاحية المطلوبة لموظّف الربط: product.cards.view
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_product_card_triggers \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_product_cardsبطاقات المنتج▾
بطاقات المنتج (ميزات/أخطاء) مع الحالة والأولوية وعدد الطالبين — لتحليل أولويات التطوير.
الصلاحية المطلوبة لموظّف الربط: product.cards.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| status | string | — | |
| cardType | string | — | feature|bug |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_product_cards \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"…","cardType":"…"}'قراءةPOST /api/v1/tools/list_release_cardsبطاقات الإصدار▾
بطاقات إصدار منتجٍ واحد، لكلٍّ عمودُها على اللوحة، مع قصٍّ مُعلَن (totalRows/shownRows).
الصلاحية المطلوبة لموظّف الربط: product.cards.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| releaseId | string | نعم | معرّف إصدار المنتج أو نسخته أو عنوانه |
| status | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_release_cards \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"releaseId":"…"}'قراءةPOST /api/v1/tools/list_releasesالإصدارات▾
آخر إصدارات النظام (ما الجديد) وبنودها.
الصلاحية المطلوبة لموظّف الربط: product.releases.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_releases \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"limit":10}'تعديلPOST /api/v1/tools/pm_add_commentتعليق على بطاقة▾
تعليق داخلي على بطاقة منتج (نقاش الفريق — لا يصل العميل).
الصلاحية المطلوبة لموظّف الربط: product.cards.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
| text | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/pm_add_comment \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…","text":"…"}'تعديلPOST /api/v1/tools/pm_assign_cardإسناد بطاقة منتج▾
إسناد بطاقة منتج لعضو فريق (أو إلغاء الإسناد بترك userId فارغاً). يُشعر المُسنَد إليه.
الصلاحية المطلوبة لموظّف الربط: product.cards.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
| userId | string | — | معرّف المستخدم أو اسمه — اتركه فارغاً لإلغاء الإسناد |
curl -X POST https://labeb.app/api/v1/tools/pm_assign_card \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…"}'تعديلPOST /api/v1/tools/pm_assign_to_releaseضمّ بطاقة لإصدار▾
ضمّ بطاقة منتج إلى إصدار.
الصلاحية المطلوبة لموظّف الربط: product.cards.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
| releaseId | string | نعم | معرّف الإصدار أو رقمه |
curl -X POST https://labeb.app/api/v1/tools/pm_assign_to_release \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…","releaseId":"…"}'إضافةPOST /api/v1/tools/pm_create_cardإنشاء بطاقة منتج▾
إنشاء بطاقة منتج (ميزة/خطأ/تحسين/اقتراح) بمصدر داخلي. استخدمها حين يطلب المستخدم تسجيل طلب تطوير أو خطأ. cardType: bug|feature|improvement|suggestion · priority: low|normal|high|critical.
الصلاحية المطلوبة لموظّف الربط: product.cards.create
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| title | string | نعم | |
| description | string | — | |
| cardType | string | نعم | bug|feature|improvement|suggestion |
| priority | string | — | low|normal|high|critical |
| system | string | — | اسم النظام (اختياري) |
curl -X POST https://labeb.app/api/v1/tools/pm_create_card \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"title":"…","cardType":"…"}'تعديلPOST /api/v1/tools/pm_delete_cardحذف بطاقة منتج▾
حذف بطاقة منتج. **حذف ناعم**: تختفي من القوائم ويبقى أثرها وسجلّها للتدقيق، ولا تُفقد أوقاتُها المسجَّلة.
الصلاحية المطلوبة لموظّف الربط: product.cards.delete
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
curl -X POST https://labeb.app/api/v1/tools/pm_delete_card \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…"}'قراءةPOST /api/v1/tools/pm_list_time_entriesسجلّ أوقات العمل▾
سجلّ أوقات العمل على البطاقات بين تاريخين: الموظف والبطاقة والإصدار ونوع العمل والبداية والنهاية والمدة والملاحظة ومصدر الإدخال (يدويّ/مُعدَّل/أُغلق آلياً). from/to بصيغة ISO (اليوم كاملاً). employeeId/releaseId/categoryId فلاترٌ اختيارية.
الصلاحية المطلوبة لموظّف الربط: product.time.report.team
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| from | string | — | ISO date |
| to | string | — | ISO date |
| employeeId | string | — | معرّف الموظف أو اسمه |
| releaseId | string | — | معرّف الإصدار أو رقمه |
| categoryId | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/pm_list_time_entries \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"from":"…","to":"…"}'تعديلPOST /api/v1/tools/pm_remove_from_releaseإخراج بطاقة من إصدار▾
إخراج بطاقة من إصدارها. تعود البطاقة إلى مرحلتها قبل الضمّ (أو «مقبولة» إن لم يُعرف).
الصلاحية المطلوبة لموظّف الربط: product.cards.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
curl -X POST https://labeb.app/api/v1/tools/pm_remove_from_release \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…"}'تعديلPOST /api/v1/tools/pm_start_timerبدء عدّاد بطاقة▾
بدء عدّاد الوقت على بطاقة منتج للمستخدم الحالي — يوقف عدّاده الجاري (إن وُجد) تلقائياً.
الصلاحية المطلوبة لموظّف الربط: product.cards.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
curl -X POST https://labeb.app/api/v1/tools/pm_start_timer \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…"}'تعديلPOST /api/v1/tools/pm_stop_timerإيقاف عدّاد بطاقة▾
إيقاف عدّاد وقت المستخدم الحالي أياً كانت بطاقته، مع بيان ما أُنجز (اختياري).
الصلاحية المطلوبة لموظّف الربط: product.cards.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| note | string | — | بيان ما أُنجز |
curl -X POST https://labeb.app/api/v1/tools/pm_stop_timer \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"note":"…"}'قراءةPOST /api/v1/tools/pm_time_summaryتجميع أوقات العمل▾
تجميعُ أوقات العمل بين تاريخين: إجماليٌّ عامّ + حسب الإصدار + حسب الموظف. يُحسب على **كلّ** صفوف الفترة بلا قصّ. يميّز الدقائقَ المُدخلة يدوياً (تقديرٌ لا قياس).
الصلاحية المطلوبة لموظّف الربط: product.time.report.team
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| from | string | — | ISO date |
| to | string | — | ISO date |
| employeeId | string | — | معرّف الموظف أو اسمه |
| releaseId | string | — | معرّف الإصدار أو رقمه |
| categoryId | string | — |
curl -X POST https://labeb.app/api/v1/tools/pm_time_summary \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"from":"…","to":"…"}'تعديلPOST /api/v1/tools/pm_update_cardتعديل بطاقة منتج▾
تعديل بطاقة منتج قائمة: العنوان/الوصف/النوع/الأولوية/النظام. الحقول غير المذكورة تبقى كما هي. cardType: bug|feature|improvement|suggestion · priority: low|normal|high|critical.
الصلاحية المطلوبة لموظّف الربط: product.cards.update
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
| title | string | — | |
| description | string | — | |
| cardType | string | — | |
| priority | string | — | |
| system | string | — |
curl -X POST https://labeb.app/api/v1/tools/pm_update_card \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…"}'تعديلPOST /api/v1/tools/pm_update_card_statusنقل مرحلة بطاقة▾
نقل بطاقة منتج إلى مرحلة جديدة. **يُطلق رسالة التريغر للعملاء الطالبين** إن كان لتلك المرحلة تريغر فعّال. status: new|reviewing|accepted|rejected|in_release|in_progress|testing|done · reason إلزامي عند rejected.
الصلاحية المطلوبة لموظّف الربط: product.cards.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| cardId | string | نعم | معرّف البطاقة أو عنوانها |
| status | string | نعم | |
| reason | string | — | سبب الرفض — إلزامي عند rejected |
curl -X POST https://labeb.app/api/v1/tools/pm_update_card_status \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"cardId":"…","status":"…"}'قراءةPOST /api/v1/tools/release_status_summaryحالة الإصدار▾
عدّادات إصدار منتجٍ واحد على أعمدة اللوحة كما يراها المستأجر (أعمدة لوحة المطوّر بأسمائها عنده)، مع فصل «تمّ التطوير» عن «تمّت ورُفعت للإصدار». مرّر نسخة الإصدار أو عنوانه في releaseId.
الصلاحية المطلوبة لموظّف الربط: product.cards.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| releaseId | string | نعم | معرّف إصدار المنتج أو نسخته أو عنوانه — إصدارات المنتج لا نشرات النظام |
curl -X POST https://labeb.app/api/v1/tools/release_status_summary \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"releaseId":"…"}'الموارد البشرية18
تعديلPOST /api/v1/tools/attendance_check_inتسجيل حضور▾
تسجيل حضوري أنا الآن (يتطلب أن يكون لحسابك سجل موظف). اقتبس الوقت من checkInAt في النتيجة حرفياً — ولا تذكر وقتاً غيره.
الصلاحية المطلوبة لموظّف الربط: hr.attendance.create.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| notes | string | — |
curl -X POST https://labeb.app/api/v1/tools/attendance_check_in \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"notes":"…"}'تعديلPOST /api/v1/tools/attendance_check_outتسجيل انصراف▾
تسجيل انصرافي أنا الآن. اقتبس الوقت من checkOutAt في النتيجة حرفياً — ولا تذكر وقتاً غيره.
الصلاحية المطلوبة لموظّف الربط: hr.attendance.create.own
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/attendance_check_out \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'تعديلPOST /api/v1/tools/decide_leaveقرار إجازة▾
الموافقة على طلب إجازة أو رفضه. استخدم get_leaves_report أولاً — يعيد id لكل طلب مع اسم صاحبه.
الصلاحية المطلوبة لموظّف الربط: hr.leave.approve.direct
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| leaveId | string | نعم | معرّف طلب الإجازة أو اسم صاحبه |
| approve | boolean | نعم |
curl -X POST https://labeb.app/api/v1/tools/decide_leave \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"leaveId":"…","approve":true}'قراءةPOST /api/v1/tools/get_attendance_reportتقرير الحضور▾
تقرير الحضور لفترة (الافتراضي 14 يوماً): حضور/غياب/تأخير لكل موظف.
الصلاحية المطلوبة لموظّف الربط: hr.attendance.read.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_attendance_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_employee_attendanceحضور موظف▾
تقرير حضور موظف واحد بالاسم أو المعرّف خلال فترة (الافتراضي 30 يوماً): ملخص (حضور، تأخير، غياب، عن بعد، دقائق التأخير، ساعات العمل، نسبة الالتزام) + الإجازات + كل يوم بوقت الدخول والخروج بتوقيت الشركة. من يملك قراءة حضور الجميع يرى أي موظف، وغيره يرى نفسه ومن تحته فقط.
الصلاحية المطلوبة لموظّف الربط: hr.attendance.read.team
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| employee | string | نعم | اسم الموظف أو جزء منه، أو معرّف الموظف أو المستخدم |
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_employee_attendance \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"employee":"…"}'قراءةPOST /api/v1/tools/get_employee_team_attendanceحضور فريق موظف▾
تقرير حضور فريق موظف (من تحته في الخط الإداري) خلال فترة (الافتراضي 30 يوماً): ملخص الفريق + لكل عضو ملخصه وحالته اليوم + من لم يسجّل دخوله اليوم. بلا employee يعيد فريقك أنت. من يملك قراءة حضور الجميع يرى فريق أي مدير، وغيره يرى فريقه أو فريق مدير تحته فقط.
الصلاحية المطلوبة لموظّف الربط: hr.attendance.read.team
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| employee | string | — | اسم المدير أو معرّفه — اختياري |
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_employee_team_attendance \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"employee":"…","days":10}'قراءةPOST /api/v1/tools/get_leaves_reportتقرير الإجازات▾
طلبات الإجازات (معلقة وموافَقة) ضمن فترة.
الصلاحية المطلوبة لموظّف الربط: hr.leave.read.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_leaves_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_my_attendanceسجل حضوري▾
سجل حضوري خلال فترة (الافتراضي 14 يوماً).
الصلاحية المطلوبة لموظّف الربط: hr.attendance.read.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_my_attendance \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_my_teamفريقي▾
مَن في فريقي: الموظفون الذين أديرهم مباشرةً أو عبر الخطّ الإداري، بأسمائهم ومناصبهم.
الصلاحية المطلوبة لموظّف الربط: hr.employee.read.team
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_my_team \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/get_org_chartالهيكل الإداري▾
الهيكل الإداري: المناصب وشجرتها + الموظفون ومناصبهم ومدراؤهم المباشرون.
الصلاحية المطلوبة لموظّف الربط: hr.employee.read.all
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_org_chart \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/get_team_attendanceحضور فريقي▾
حضور فريقي خلال فترة (الافتراضي 14 يوماً): حضور وغياب وتأخير لكل فرد أديره.
الصلاحية المطلوبة لموظّف الربط: hr.attendance.read.team
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_team_attendance \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_team_member_profileبطاقة موظف في فريقي▾
البطاقة الوظيفية لموظف في فريقي بالاسم: المنصب والقسم وتاريخ التوظيف والمدير المباشر.
الصلاحية المطلوبة لموظّف الربط: hr.profile.read.team
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| name | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/get_team_member_profile \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"name":"…"}'قراءةPOST /api/v1/tools/list_coaching_notesملاحظات التدريب▾
ملاحظات التدريب (الكوتشينغ) للموظفين: العنوان والأولوية والحالة والمُسنَد إليه.
الصلاحية المطلوبة لموظّف الربط: coaching.notes.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| status | string | — | new|seen|started|submitted|resolved |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_coaching_notes \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"…","limit":10}'قراءةPOST /api/v1/tools/list_employeesقراءة الموظفين▾
قائمة الموظفين: id (معرّف الموظف)، userId (معرّف المستخدم — هذا ما تطلبه أدوات الإسناد)، الاسم، المنصب، القسم، الحالة.
الصلاحية المطلوبة لموظّف الربط: hr.employee.read.all
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_employees \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_payroll_grievancesتظلّمات الرواتب▾
تظلّمات الرواتب: الموضوع والحالة ومن فتحها ومتى روجعت.
الصلاحية المطلوبة لموظّف الربط: payroll.grievance.review
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| status | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_payroll_grievances \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"…","limit":10}'قراءةPOST /api/v1/tools/list_payroll_runsدورات الرواتب▾
دورات الرواتب: الفترة والحالة واعتمادات المدير والموارد البشرية وحاجة إعادة الاحتساب.
الصلاحية المطلوبة لموظّف الربط: payroll.run.read
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_payroll_runs \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'تعديلPOST /api/v1/tools/mark_employee_attendanceتسجيل حضور موظف▾
تسجيل حضور موظف آخر بالنيابة عنه اليوم (للمدير أو الموارد البشرية): action واحدة من present حاضر · late متأخر · absent غائب · remote عن بعد · check_out انصراف الآن. employee بالاسم أو المعرّف.
الصلاحية المطلوبة لموظّف الربط: hr.attendance.update.all
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| employee | string | نعم | |
| action | "present" | "late" | "absent" | "remote" | "check_out" | نعم | |
| notes | string | — | |
| workLocation | string | — |
curl -X POST https://labeb.app/api/v1/tools/mark_employee_attendance \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"employee":"…","action":"present"}'إضافةPOST /api/v1/tools/request_leaveطلب إجازة▾
تقديم طلب إجازة لي: النوع (annual|sick|unpaid|other) وتاريخا البداية والنهاية.
الصلاحية المطلوبة لموظّف الربط: hr.leave.request.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| leaveType | string | نعم | |
| startDate | string | نعم | |
| endDate | string | نعم | |
| reason | string | — |
curl -X POST https://labeb.app/api/v1/tools/request_leave \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"leaveType":"…","startDate":"…","endDate":"…"}'الاستراتيجية والأهداف12
إضافةPOST /api/v1/tools/create_monthly_goalإنشاء هدف شهري▾
إنشاء هدف شهري مرتبط بهدف سنوي (استخدم list_annual_goals للحصول على annualObjectiveId).
الصلاحية المطلوبة لموظّف الربط: strategy.monthly.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| annualObjectiveId | string | نعم | معرّف الهدف السنوي أو عنوانه |
| year | integer | نعم | |
| month | integer | نعم | |
| title | string | نعم | |
| description | string | — | |
| kpiName | string | — | |
| kpiTarget | number | — | |
| kpiUnit | string | — |
curl -X POST https://labeb.app/api/v1/tools/create_monthly_goal \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"annualObjectiveId":"…","year":10,"month":10,"title":"…"}'إضافةPOST /api/v1/tools/create_projectإنشاء مشروع▾
إنشاء مشروع جديد، مع ربط اختياري بأهداف سنوية/شهرية.
الصلاحية المطلوبة لموظّف الربط: strategy.projects.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| title | string | نعم | |
| description | string | — | |
| priority | string | — | low|medium|high |
| dueDate | string | — | |
| objectiveIds | string[] | — | |
| goalIds | string[] | — |
curl -X POST https://labeb.app/api/v1/tools/create_project \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"title":"…"}'حذفPOST /api/v1/tools/delete_monthly_goalحذف هدف شهري▾
حذف هدف شهري.
الصلاحية المطلوبة لموظّف الربط: strategy.monthly.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| goalId | string | نعم | معرّف الهدف الشهري أو عنوانه |
curl -X POST https://labeb.app/api/v1/tools/delete_monthly_goal \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"goalId":"…"}'حذفPOST /api/v1/tools/delete_projectحذف مشروع▾
حذف مشروع.
الصلاحية المطلوبة لموظّف الربط: strategy.projects.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| projectId | string | نعم | معرّف المشروع أو عنوانه |
curl -X POST https://labeb.app/api/v1/tools/delete_project \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"projectId":"…"}'قراءةPOST /api/v1/tools/list_annual_goalsقراءة الأهداف السنوية▾
الأهداف السنوية (الاستراتيجية) مع حالتها وتقدمها.
الصلاحية المطلوبة لموظّف الربط: strategy.objectives.view
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_annual_goals \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_goal_commentsتعليقات الأهداف▾
تعليقات الأهداف (سنوية/شهرية) — للاطلاع على نقاش الفريق حول هدف.
الصلاحية المطلوبة لموظّف الربط: strategy.comments.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| entityId | string | — | معرّف الهدف |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_goal_comments \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"entityId":"…","limit":10}'قراءةPOST /api/v1/tools/list_monthly_goalsقراءة الأهداف الشهرية▾
الأهداف الشهرية (التشغيلية) لشهر محدد مع KPI والتقدم. الافتراضي الشهر الحالي.
الصلاحية المطلوبة لموظّف الربط: strategy.monthly.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| year | integer | — | |
| month | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_monthly_goals \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"year":10,"month":10}'قراءةPOST /api/v1/tools/list_projectsقراءة المشاريع▾
المشاريع مع الحالة والتقدم والصحة وعدد المهام.
الصلاحية المطلوبة لموظّف الربط: strategy.projects.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| status | string | — | planning|active|on_hold|done|cancelled (اختياري) |
curl -X POST https://labeb.app/api/v1/tools/list_projects \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"…"}'قراءةPOST /api/v1/tools/list_strategic_pillarsالركائز الاستراتيجية▾
الركائز الاستراتيجية للشركة — الإطار الذي تُنسب إليه الأهداف والمخاطر.
الصلاحية المطلوبة لموظّف الربط: strategy.pillars.view
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_strategic_pillars \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_strategic_risksالمخاطر الاستراتيجية▾
سجلّ المخاطر الاستراتيجية مرتّباً بدرجة الخطورة: الاحتمال والأثر والحالة وخطة التخفيف.
الصلاحية المطلوبة لموظّف الربط: strategy.risks.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| status | string | — | |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_strategic_risks \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"status":"…","limit":10}'تعديلPOST /api/v1/tools/update_monthly_goalتعديل هدف شهري▾
تعديل هدف شهري (عنوان/وصف/حالة/KPI). الحقول غير المذكورة تبقى كما هي.
الصلاحية المطلوبة لموظّف الربط: strategy.monthly.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| goalId | string | نعم | معرّف الهدف الشهري أو عنوانه |
| title | string | — | |
| description | string | — | |
| status | string | — | new|in_progress|done|cancelled |
| kpiTarget | number | — | |
| kpiCurrent | number | — |
curl -X POST https://labeb.app/api/v1/tools/update_monthly_goal \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"goalId":"…"}'تعديلPOST /api/v1/tools/update_projectتعديل مشروع▾
تعديل مشروع (عنوان/وصف/حالة/أولوية/استحقاق). الحقول غير المذكورة تبقى.
الصلاحية المطلوبة لموظّف الربط: strategy.projects.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| projectId | string | نعم | معرّف المشروع أو عنوانه |
| title | string | — | |
| description | string | — | |
| status | string | — | planning|active|on_hold|done|cancelled |
| priority | string | — | |
| dueDate | string | — |
curl -X POST https://labeb.app/api/v1/tools/update_project \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"projectId":"…"}'المستشار والذكاء7
قراءةPOST /api/v1/tools/get_ai_agentقراءة برومبت وكيل▾
تفاصيل وكيل ذكاء واحد بما فيها البرومبت الكامل — للمراجعة أو التحسين.
الصلاحية المطلوبة لموظّف الربط: ai.prompt.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| agentKey | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/get_ai_agent \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"agentKey":"…"}'قراءةPOST /api/v1/tools/get_business_profileقراءة ملفّ الشركة▾
ملفّ الشركة (النشاط · المنتجات · الجمهور · النبرة · اللهجة · السياسات · الباقات · الأسئلة الشائعة …) مع **قائمة الحقول الناقصة** و**هل يصل الملفّ للبوت فعلاً** أم يحجبه برومبتٌ يدويّ. ابدأ بها قبل أي نصيحة عن ردود البوت: برومبتٌ ضعيف سببه غالباً ملفٌّ ناقص لا قالبٌ خاطئ.
الصلاحية المطلوبة لموظّف الربط: ai.prompt.manage
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_business_profile \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_ai_agentsقائمة وكلاء الذكاء▾
وكلاء الذكاء القابلون للضبط في الشركة (المبيعات، ما بعد البيع...) مع النموذج والحالة.
الصلاحية المطلوبة لموظّف الربط: ai.prompt.manage
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_ai_agents \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/plan_missionتفكيك إلى مهمة▾
استدعِها حين يتطلّب الطلب عدة خطوات أو قراءة بيانات كثيرة (مراجعة محادثات، تدقيق جودة، تحليل شامل، تقرير مركّب). بدل محاولة إنجازه في هذه الدورة — فتتوقف ناقصاً — فكّكه إلى خطوات متسلسلة تعمل في الخلفية ويرى المستخدم تقدّمها. لا تضف خطوة تجميع نهائية؛ تُضاف تلقائياً. للطلب البسيط لا تستدعِها إطلاقاً — أجب مباشرة.
الصلاحية المطلوبة لموظّف الربط: advisor.mission
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| steps | object[] | نعم |
curl -X POST https://labeb.app/api/v1/tools/plan_mission \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"steps":[]}'قراءةPOST /api/v1/tools/test_ai_agent_replyاختبار برومبت▾
اختبار برومبت وكيل: أرسل رسالة عميل تجريبية واحصل على ردّ الوكيل الفعلي (يُخصم من رصيد الذكاء).
الصلاحية المطلوبة لموظّف الربط: ai.prompt.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| agentKey | string | نعم | |
| sampleMessage | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/test_ai_agent_reply \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"agentKey":"…","sampleMessage":"…"}'تعديلPOST /api/v1/tools/update_ai_agentتعديل وكيل ذكاء▾
تعديل وكيل ذكاء: البرومبت أو النموذج أو الإعدادات أو التفعيل. يسري فوراً على ردود البوت.
الصلاحية المطلوبة لموظّف الربط: ai.prompt.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| agentKey | string | نعم | |
| systemPrompt | string | — | |
| model | string | — | |
| temperature | number | — | |
| maxTokens | integer | — | |
| isEnabled | boolean | — |
curl -X POST https://labeb.app/api/v1/tools/update_ai_agent \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"agentKey":"…"}'تعديلPOST /api/v1/tools/update_business_profileتعديل ملفّ الشركة▾
تعديل جزئيّ لملفّ الشركة ثم **إعادة بناء برومبت الوكلاء المبنيّين منه تلقائياً**. مرّر الحقول التي تريد تغييرها فقط؛ الحقل غير المُمرَّر لا يُلمس، والقيمة الفارغة تفريغٌ صريح. الوكيل ذو البرومبت اليدويّ لا يتأثّر (تُعاد نتيجةُ الأداة بذلك صراحةً).
الصلاحية المطلوبة لموظّف الربط: ai.prompt.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| companyName | string | — | |
| activity | string | — | |
| products | string | — | |
| audience | string | — | |
| tone | string | — | |
| dialect | string | — | |
| cityCountry | string | — | |
| differentiators | string | — | |
| policies | string | — | |
| notServed | string | — | |
| escalationTarget | string | — | |
| workingHours | string | — | |
| valueLine | string | — | |
| packages | string | — | |
| competitors | string | — | |
| officialLinks | string | — | |
| faqs | string | — | |
| objections | string | — | |
| examples | string | — |
curl -X POST https://labeb.app/api/v1/tools/update_business_profile \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"companyName":"…","activity":"…"}'الإعدادات والتقارير13
تعديلPOST /api/v1/tools/apply_labeeb_prompt_simulationاعتماد مسودة المحاكاة▾
يعتمد مسودة محاكاة مكتملة برومبتا محفوظا للموظف لبيب عبر مسار الحفظ الرسمي (نسخة احتياطية + سجل نسخ). لا تستعملها إلا بعد أن يرى المستخدم النتيجة ويوافق صراحة.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| id | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/apply_labeeb_prompt_simulation \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"id":"…"}'قراءةPOST /api/v1/tools/estimate_labeeb_prompt_simulationتقدير محاكاة البرومبت▾
تقدير محاكاة برومبت لبيب قبل بدئها: كم دورا حقيقيا في النطاق (range: today اليوم · yesterday أمس · 7d آخر 7 أيام · 24h · 48h · custom مع fromDate/toDate بساعة الحساب) أو في محادثات بعينها (threadKeys من list_labeeb_prompt_simulation_conversations) سيعاد، كم نداء ذكاء، وكم ستكلف من رصيد الذكاء الاصطناعي للحساب وهل الرصيد يكفي. اقرأ البرومبت الحالي أولا بـ get_ai_agent (sales) واكتب المسودة كاملة في draftPrompt. لا تكلف شيئا.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| draftPrompt | string | نعم | |
| range | "today" | "yesterday" | "7d" | "24h" | "48h" | "custom" | — | |
| fromDate | string | — | YYYY-MM-DD بساعة الحساب — مع custom |
| toDate | string | — | |
| threadKeys | string[] | — | |
| maxTurns | integer | — |
curl -X POST https://labeb.app/api/v1/tools/estimate_labeeb_prompt_simulation \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"draftPrompt":"…"}'قراءةPOST /api/v1/tools/get_labeeb_prompt_simulationنتيجة محاكاة البرومبت▾
نتيجة محاكاة برومبت لبيب: الحالة والتقدم، عدد الردود التي تحسنت أو ساءت أو بقيت، متوسط درجة الرد القديم مقابل الجديد، التكلفة الفعلية، ولكل دور رسالة العميل والرد القديم (before) والرد الجديد (after) ودرجتاهما وسبب المحكم. بلا id تعيد آخر المحاكاات.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| id | string | — | |
| includeItems | boolean | — | |
| take | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_labeeb_prompt_simulation \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"id":"…","includeItems":true}'قراءةPOST /api/v1/tools/get_labeeb_reportتقرير لبيب▾
تقرير لبيب لفترة (days الافتراضي 1 = اليوم، حتى 31): عدد المحادثات والردود والتحويلات للموظفين والمتابعات والمواعيد، التوزيع اليومي، ما يحتاج انتباهاً، المحادثات المنتظرة، الأسئلة التي لم يعرف جوابها، وزمن الاستجابة. channel اختياري: whatsapp · messenger · website.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.usage.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — | |
| channel | "all" | "whatsapp" | "messenger" | "website" | — |
curl -X POST https://labeb.app/api/v1/tools/get_labeeb_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10,"channel":"all"}'قراءةPOST /api/v1/tools/get_labeeb_settingsإعدادات لبيب▾
إعدادات الموظف لبيب كاملة: persona هويته (الاسم والنبرة واللهجة وطول الرد والإفصاح والإيموجي) · selling أسلوب البيع · limits حدود المتابعة · handoff قواعد التحويل للبشر · powers قدراته المفعلة · trial إعدادات التجربة · model نموذج الذكاء المستعمل · branches الفروع · rules قواعد رحلة العميل. بلا section تعيد الأقسام القياسية، والفروع والقواعد تقرأ بقسمها صراحة لأنها قد تكون مئات الصفوف. وترد مع كل حقل قيمه المسموحة.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.usage.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| section | "persona" | "selling" | "limits" | "handoff" | "powers" | "trial" | "model" | "branches" | "rules" | — |
curl -X POST https://labeb.app/api/v1/tools/get_labeeb_settings \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"section":"persona"}'قراءةPOST /api/v1/tools/get_quality_reportتقرير الجودة▾
تقرير جودة المحادثات (تدقيق البوت): درجات المحادثات، النتائج، مستوى الإحباط، الأسئلة المكررة، أبطأ استجابة.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.usage.view
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_quality_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"limit":10}'قراءةPOST /api/v1/tools/get_working_hoursساعات العمل▾
ساعات عمل الشركة والمنطقة الزمنية وإعدادات المواعيد — مرجع لأي تحليل عن زمن الاستجابة.
الصلاحية المطلوبة لموظّف الربط: tenant.settings.view
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_working_hours \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_automation_rulesقواعد الأتمتة▾
قواعد الأتمتة/التحويل المفعّلة: الاسم والنطاق والحالة والأولوية ومنطق المطابقة — لفهم «لماذا تصرّف النظام هكذا».
الصلاحية المطلوبة لموظّف الربط: tenant.rules.view
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_automation_rules \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_labeeb_prompt_simulation_conversationsمحادثات لمحاكاة البرومبت▾
المحادثات التي رد عليها لبيب في نطاق زمني (range: today · yesterday · 7d · 24h · 48h · custom مع fromDate/toDate) مع اسم العميل إن عُرف وعدد الأدوار وآخر رسالة — لتختار منها محادثة أو أكثر تمررها في threadKeys لمحاكاة البرومبت عليها بعينها. query للبحث بالاسم أو الرقم.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| range | "today" | "yesterday" | "7d" | "24h" | "48h" | "custom" | — | |
| fromDate | string | — | YYYY-MM-DD بساعة الحساب — مع custom |
| toDate | string | — | |
| query | string | — | |
| take | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_labeeb_prompt_simulation_conversations \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"range":"today","fromDate":"…"}'قراءةPOST /api/v1/tools/list_report_subscriptionsاشتراكات التقارير▾
اشتراكات التقرير الأسبوعي: من يستلم أي نطاق وهل اشتراكه مفعّل.
الصلاحية المطلوبة لموظّف الربط: reports.weekly.subscribe
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_report_subscriptions \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_weekly_reportsالتقارير الأسبوعية▾
التقارير الأسبوعية المولَّدة: النطاق والأسبوع ومتى قُرئت.
الصلاحية المطلوبة لموظّف الربط: reports.weekly.read.own
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| scope | string | — | personal|department|company |
| limit | integer | — |
curl -X POST https://labeb.app/api/v1/tools/list_weekly_reports \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"scope":"…","limit":10}'تعديلPOST /api/v1/tools/simulate_labeeb_promptبدء محاكاة البرومبت▾
يبدأ محاكاة حقيقية لمسودة برومبت لبيب: يعيد توليد رد لبيب على محادثات العملاء الحقيقية في النطاق (range اليوم/أمس/7d/24h/48h/custom) أو في محادثات بعينها (threadKeys) بالمسودة عبر نفس مسار الإنتاج، ويقارن كل رد جديد بالرد الذي وصل العميل فعلا بمحكم أعمى. **تكلف من رصيد الذكاء الاصطناعي للحساب** — قدرها أولا بـ estimate_labeeb_prompt_simulation وأخبر المستخدم بالتكلفة قبل البدء. لا تحفظ المسودة ولا ترسل شيئا للعملاء. تعمل في الخلفية دقائق؛ اقرأ النتيجة بـ get_labeeb_prompt_simulation.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| draftPrompt | string | نعم | |
| range | "today" | "yesterday" | "7d" | "24h" | "48h" | "custom" | — | |
| fromDate | string | — | YYYY-MM-DD بساعة الحساب — مع custom |
| toDate | string | — | |
| threadKeys | string[] | — | |
| maxTurns | integer | — |
curl -X POST https://labeb.app/api/v1/tools/simulate_labeeb_prompt \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"draftPrompt":"…"}'تعديلPOST /api/v1/tools/update_labeeb_settingsتعديل إعدادات لبيب▾
تعديل إعدادات لبيب: مرر section وvalues بالحقول المراد تغييرها فقط — وما لا ترسله لا يمس. persona: displayName tone dialect replyLength disclosure emojiLevel. selling: priceTiming questionDensity. limits: fuMaxPerLead fuQuietStartHour fuQuietEndHour fuRespectOptOut fuSkipWhenAssigned. handoff: يلزمه situation ثم isEnabled assignConversation assigneeUserIds assigneeUserIdsPostSale sendReassurance reassuranceText cooldownMinutes dailyCap slaMinutes slaEscalateToUserIds. powers: يلزمه toolKey وisEnabled. trial: replyTriggerEnabled replyTriggerMsgCount successStage successAssign successAssigneeIds. model: modelKey من الكتالوج. branches: بلا id ينشئ فرعا ومعه id يعدله، وحقوله name city phone address workingHours mapsUrl isActive sortOrder notes، والحذف بتمرير id مع delete صواب. rules: بلا id ينشئ قاعدة وتولد بوضع مراقبة ما لم تمرر mode بقيمة active، وحقولها name outcome targetStage fromStage detectDescription examplePhrases counterExamplePhrases priority isActive stopFollowUps sendFarewell successAssign successAssigneeIds، والحذف بتمرير id مع delete صواب. اقرأ الإعدادات أولا لترى القيم المسموحة.
الصلاحية المطلوبة لموظّف الربط: tenant.ai.manage
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| section | "persona" | "selling" | "limits" | "handoff" | "powers" | "trial" | "model" | "branches" | "rules" | نعم | |
| values | object | نعم |
curl -X POST https://labeb.app/api/v1/tools/update_labeeb_settings \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"section":"persona","values":"…"}'عامّ7
قراءةPOST /api/v1/tools/find_toolsبحث عن أدوات▾
ابحث عن أدوات إضافية في النظام بالعربية حين لا تجد بين أدواتك الحالية ما ينجز الطلب (ما بعد البيع، الرواتب، المنتجات، قواعد الأتمتة، الفرص، الأداء، الهيكل الإداري…). الأدوات المطابقة **تُتاح لك فوراً** فاستدعِها في ردّك التالي. لا تستدعِها إن كانت أدواتك الحالية تكفي.
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| query | string | نعم | وصف ما تريد فعله بالعربية |
curl -X POST https://labeb.app/api/v1/tools/find_tools \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"query":"…"}'قراءةPOST /api/v1/tools/get_advisor_self_reportمراجعة ذاتية▾
تقرير المستشار عن نفسه خلال فترة: عدد الطلبات وأزمنتها وتكلفتها، الأدوات التي فشلت ولماذا، حالات المهام، ونسبة الملاحظات التي وسمها المستخدم «غير دقيقة» (مقياس دقّتي الفعلي).
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_advisor_self_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_ai_usage_reportتقرير استهلاك الذكاء▾
تقرير استهلاك الذكاء الاصطناعي للشركة خلال فترة: الإجمالي وبحسب الوكيل. days الافتراضي 30.
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_ai_usage_report \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_usage_summaryاستعمال الشاشات▾
أكثر شاشات النظام فتحاً في مؤسستي خلال فترة (الافتراضي 30 يوماً): المسار وعدد الفتحات وعدد المستخدمين المختلفين وآخر مرّة.
الصلاحية المطلوبة لموظّف الربط: admin.usage.read
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| days | integer | — |
curl -X POST https://labeb.app/api/v1/tools/get_usage_summary \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"days":10}'قراءةPOST /api/v1/tools/get_workspace_overviewنظرة عامة▾
نظرة عامة على وضع المستخدم الآن: عدّادات الأهداف السنوية والشهرية والمشاريع النشطة ومهامه المفتوحة، مع التاريخ الحالي.
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/get_workspace_overview \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/list_usersقائمة الفريق▾
قائمة مستخدمي النظام (الفريق) بالمعرّف والاسم — استخدمها للحصول على userId قبل إسناد مهمة.
بلا وسائط — أرسل {}.
curl -X POST https://labeb.app/api/v1/tools/list_users \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{}'قراءةPOST /api/v1/tools/rememberحفظ في الذاكرة▾
احفظ حقيقة أو قراراً أو تفضيلاً **دائماً** عن المستخدم أو الشركة ذكره في المحادثة وسينفع في محادثات قادمة (مثل: «قرّرنا تأجيل كذا»، «أحمد يفضّل التقارير مختصرة»). لا تحفظ تفاصيل عابرة ولا أرقاماً متغيّرة ولا ما يمكن قراءته بالأدوات. جملة واحدة موجزة.
| الوسيط | النوع | مطلوب | الوصف |
|---|---|---|---|
| kind | string | نعم | fact|decision|preference |
| text | string | نعم |
curl -X POST https://labeb.app/api/v1/tools/remember \
-H "Authorization: Bearer wkm_…" \
-H "Content-Type: application/json" \
-d '{"kind":"…","text":"…"}'رمز التحقق عبر واتساب — بدل SMS
فعّل «رمز التحقق» من قائمة ⋮ في بطاقة قناتك الرسمية، وخذ المفتاح (يبدأ بـ wko_ ويظهر مرّةً واحدة). القالب يُنشأ ويُعتمد تلقائياً، والرمز يصل عبر قالب واتساب الرسمي مع زرّ «نسخ الرمز». ضع المفتاح في خادمك فقط، لا في المتصفّح ولا في التطبيق.
طلبان فقط
# 1) أرسل رمزاً
POST https://labeb.app/api/v1/otp/send
Authorization: Bearer wko_...
{ "phone": "9665XXXXXXXX" }
# => { "ok": true, "data": { "requestId": "...", "expiresInSeconds": 600 } }
# 2) هل الرمز الذي كتبه العميل صحيح؟
POST https://labeb.app/api/v1/otp/verify
Authorization: Bearer wko_...
{ "phone": "9665XXXXXXXX", "code": "123456" }
# => { "ok": true, "data": { "valid": true } }أمثلةٌ جاهزة بـ curl وJavaScript وPHP داخل نافذة «رمز التحقق» نفسها، بمفتاحك مضمَّناً. الأرقام العربية في الرمز (٠-٩) مقبولة. الرمز يُرسل عبر القالب الرسمي فقط — والأرقام السورية (+963) تحجب ميتا أغلبها، فوفّر لها بديلاً (بريداً مثلاً).
كلّ ردّ ممكن
| HTTP | code | المعنى وماذا تفعل |
|---|---|---|
| 200 | valid: true | الرمز صحيح — يُقبل مرّةً واحدة فقط |
| 200 | valid: false · wrong_code | رمزٌ خاطئ — attemptsLeft يقول كم بقي (5 محاولات لكلّ رمز) |
| 200 | valid: false · expired | انتهت صلاحيته — اطلب رمزاً جديداً |
| 200 | valid: false · too_many_attempts | استُنفدت المحاولات الخمس — اطلب رمزاً جديداً |
| 200 | valid: false · no_code | لا رمز فعّال لهذا الرقم (استُعمل أو لم يُطلب) |
| 400 | bad_request | الجسم ناقص: send يحتاج phone، وverify يحتاج phone وcode |
| 400 | bad_phone | الرقم ليس بصيغة دولية (أرقام فقط مع رمز الدولة) |
| 401 | unauthorized | المفتاح غائب أو خاطئ أو أُنشئ غيرُه |
| 403 | disabled | الخدمة متوقّفة على القناة |
| 422 | no_route | قالب التحقق لم تعتمده ميتا بعد، أو القناة غير متّصلة |
| 429 | too_many_requests | انتظر: 30 ثانية بين رمزين للرقم نفسه، و5 رموز في الساعة — الترويسة Retry-After تقول كم |
| 502 | send_failed | تعذّر الإرسال من واتساب — أعد المحاولة بعد قليل |
الويبهوك — الأحداث تصلك فور وقوعها
بدل أن يسأل برنامجك كل دقيقة «هل من جديد؟»، سجّل عنوان HTTPS من الإعدادات ← المطوّرون ← Webhooks واختر الأحداث. كل حدث يصل موقّعاً، ويُعاد إرساله عند الفشل (1 · 5 · 30 · 120 · 480 دقيقة)، ويظهر في سجل التسليم داخل حسابك.
الأحداث
lead.createdعميلٌ محتمل جديد▾
بطاقةُ عميلٍ أُنشئت (من واتساب أو يدويّاً أو عبر API).
{
"leadId": "…",
"phone": "9665…",
"fullName": "…",
"stage": "interested",
"source": "whatsapp",
"assignedTo": null
}lead.stage_changedتغيّرت مرحلةُ عميل▾
انتقلت بطاقةٌ من مرحلةٍ إلى أخرى (interested → engaged → won/lost…).
{
"leadId": "…",
"phone": "9665…",
"fromStage": "interested",
"toStage": "engaged"
}lead.assignedأُسند عميلٌ لموظّف▾
تغيّر المسؤولُ عن بطاقة عميل.
{
"leadId": "…",
"phone": "9665…",
"fromAssignedTo": null,
"toAssignedTo": "…"
}ticket.createdتذكرةٌ جديدة▾
فُتحت تذكرةُ دعمٍ (من الموظّف أو من لَبيب أو عبر API).
{
"ticketId": "…",
"ticketNumber": 2031,
"title": "…",
"status": "new",
"priority": "high",
"customerId": "…",
"sourcePhone": "9665…"
}ticket.status_changedتغيّرت حالةُ تذكرة▾
new → in_progress → resolved / cancelled / converted.
{
"ticketId": "…",
"ticketNumber": 2031,
"fromStatus": "new",
"toStatus": "resolved",
"resolvedAt": "2026-09-11T08:00:00Z"
}ticket.assignedأُسندت تذكرة▾
تغيّر المسؤولُ عن تذكرة.
{
"ticketId": "…",
"ticketNumber": 2031,
"fromAssignedTo": null,
"toAssignedTo": "…"
}appointment.createdموعدٌ جديد▾
أُنشئ موعدٌ (بانتظار وقتٍ أو مجدولٌ).
{
"appointmentId": "…",
"customerPhone": "9665…",
"customerName": "…",
"status": "scheduled",
"scheduledAt": "2026-09-12T10:00:00Z",
"assignedTo": "…",
"leadId": "…"
}appointment.status_changedتغيّر موعد▾
تغيّرت حالةُ موعدٍ أو وقتُه (scheduled / completed / cancelled / no_show…).
{
"appointmentId": "…",
"customerPhone": "9665…",
"fromStatus": "scheduled",
"toStatus": "completed",
"scheduledAt": "2026-09-12T10:00:00Z"
}message.receivedرسالةُ واتساب واردة▾
وصلت رسالةٌ من عميلٍ على أحد أرقامك (نصٌّ أو وسائط).
{
"threadKey": "9665…@s.whatsapp.net",
"fromPhone": "9665…",
"instanceId": "…",
"messageId": "…",
"text": "…",
"hasMedia": false,
"isGroup": false
}conversation.assignedأُسندت محادثة▾
تحوّلت محادثةٌ إلى موظّفٍ أو إلى لَبيب.
{
"threadKey": "…",
"assignedType": "human",
"assignedUserId": "…",
"reason": "…"
}conversation.resolvedأُغلقت محادثة▾
أُقفلت محادثةٌ مُسندة.
{
"threadKey": "…",
"resolvedBy": "…"
}conversation.handoffطلبُ تدخّلٍ بشريّ▾
لَبيب طلب تدخّل إنسان في محادثة.
{
"threadKey": "…",
"reason": "…"
}الغلاف والتوقيع
كل طلب POST بجسم JSON وثلاث ترويسات: X-Labeb-Event (اسم الحدث)، X-Labeb-Delivery (معرّف التسليم — يتكرّر عند الإعادة)، وX-Labeb-Signature.
{
"id": "6f1c…", // معرّف الحدث — تجاهل التكرار به
"event": "ticket.created",
"occurredAt": "2026-09-11T08:00:00Z",
"tenantId": "c1b3…",
"data": { ... } // حسب الحدث (انظر العيّنات)
}
X-Labeb-Signature: t=1757577600,v1=<hex>
v1 = HMAC-SHA256(secret, t + "." + rawBody)// Node.js — التحقّق من التوقيع
const crypto = require("crypto");
function verify(secret, header, rawBody) {
const { t, v1 } = Object.fromEntries(header.split(",").map(p => p.split("=")));
if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false; // ارفض القديم
const mac = crypto.createHmac("sha256", secret).update(t + "." + rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(mac), Buffer.from(v1));
}
// ردّ 2xx خلال 10 ثوانٍ = وصل. غير ذلك يُعاد الإرسال.- • السرّ يبدأ بـ
whsec_ويظهر مرّةً عند الإنشاء — وتدوّره من الإعدادات متى شئت. - • العناوين الداخلية وغير HTTPS مرفوضة. بعد 20 فشلاً متتالياً تُطفأ الوجهة تلقائياً ويظهر السبب في الإعدادات.
- • زر «أرسل اختباراً» يرسل
test.pingفوراً ويعرض لك ردّ خادمك.