أدوات MCP
الفريق والإعدادات والملف الشخصي
أدوات MCP لأعضاء الفريق ودعواتهم وإعدادات المؤسسة وملفك الشخصي.
تجمع هذه الصفحة أدوات إدارة المؤسسة: أعضاء الفريق ودعواتهم، وبيانات المؤسسة التي تطبع على عروض الأسعار، وملفك الشخصي. أغلبها للمالك والمدير، وبعضها للمالك وحده، وتذكر كل أداة من يستطيع استخدامها.
الأدوار التي يمكن تعيينها ستة: admin وsales وpurchasing وtechnical وviewer وviewer_no_pricing. المدير يدير الفريق والتكاملات، أما الفوترة وبيانات المؤسسة وسجل نشاط الفريق فللمالك وحده. المبيعات والمشتريات يعملان على العطاءات وعروض الأسعار والكتالوج ويريان أسعار البيع. والمبيعات لا ترى أسعار التكلفة ولا عروض الموردين، أما المشتريات فترى الجانبين. الفني يقرأ الكتالوج والشركات المصنعة والمنافسات دون أي أسعار. المشاهد للقراءة فقط ويرى كل الأسعار، والمشاهد بدون تسعير للقراءة فقط دون أسعار. وأما المالك (owner) فهو من أنشأ المؤسسة، ولا يعين ولا يتغير دوره ولا يزال بهذه الأدوات.
| الأداة | ما تفعله |
|---|---|
| team_list | عرض الفريق |
| team_update_role | تغيير دور عضو |
| team_remove | إزالة عضو من الفريق |
| team_invite_create | دعوة عضو إلى الفريق |
| team_invite_resend | إعادة إرسال دعوة |
| team_invite_cancel | إلغاء دعوة |
| settings_get | عرض إعدادات المؤسسة |
| settings_update | تعديل إعدادات المؤسسة |
| profile_get | عرض الملف الشخصي |
| profile_update | تعديل الملف الشخصي |
| zoho_books_get | عرض ربط Zoho Books |
| zoho_books_organizations_list | عرض منشآت Zoho Books |
| zoho_books_settings_update | تعديل إعدادات مزامنة Zoho Books |
| zoho_books_sync | مزامنة Zoho Books الآن |
| zoho_books_disconnect | فصل Zoho Books |
أعضاء الفريق والدعوات
الدعوة تنتهي بعد 7 أيام. وتحتسب المقاعد من الأعضاء الحاليين والدعوات المعلقة معا.
team_list
يعرض أعضاء المؤسسة ببريد كل عضو ورقم جواله، مع الدعوات المعلقة التي ما زال بإمكان أصحابها قبولها. منه تأخذ معرفات العضويات والدعوات لبقية أدوات الفريق.
للقراءة فقط · الصلاحية team.read · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
لا معاملات.
ما يعيده: members (لكل عضو id وهو معرف العضوية، وuser_id وrole وcreated_at وكائن profiles فيه email وfirst_name وlast_name وfull_name وphone_number وcompany_name) وinvitations (لكل دعوة id وemail وphone_number وrole وstatus وexpires_at).
- لا تعرض الدعوات المنتهية ولا المقبولة ولا الملغاة، فالقائمة تضم ما يمكن قبوله فقط.
team_update_role
يغير دور عضو في الفريق. دور المالك لا يتغير أبدا، ولا يمكن تعيين الدور owner بهذه الأداة.
يغير البيانات · الصلاحية team.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
member_id | integer | نعم | معرف العضوية، وهو id العضو في رد team_list وليس معرف المستخدم. |
role | string | نعم | الدور الجديد: admin أو sales أو purchasing أو technical أو viewer أو viewer_no_pricing، وشرحها في مقدمة الصفحة. لا يقبل owner. |
{
"member_id": 27,
"role": "purchasing"
}ما يعيده: تأكيد success: true.
- المالك وحده محمي: تغيير دوره يرد 403، أما دور أي عضو آخر، ومنهم المدير، فيمكن تغييره. والعضو المجهول يرد 404.
- يسري الدور الجديد على طلبات العضو التالية فورا.
team_remove
يزيل عضوا من المؤسسة ويسحب وصوله إلى المنصة. لا يمكن التراجع عن ذلك، وعودته تتطلب دعوة جديدة. ولا يمكن إزالة المالك.
يحذف بيانات أو يستبدلها · الصلاحية team.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
member_id | integer | نعم | معرف العضوية، وهو id العضو في رد team_list. |
ما يعيده: تأكيد success: true.
- محاولة إزالة المالك ترد 403، وعضو غير موجود يرد 404.
- مفاتيح API التي أنشأها العضو تتوقف عن العمل بعد خروجه من المؤسسة.
team_invite_create
يرسل بالبريد دعوة للانضمام إلى المؤسسة بدور محدد. رقم جوال المدعو (واتساب) مطلوب إلى جانب بريده، وينسخ إلى ملفه عند قبول الدعوة، وبه تتعرف عليه المنصة، كالموافقة على انضمامه إلى مجموعات واتساب. وتحتسب المقاعد المشغولة والدعوات المعلقة معا ضمن حد خطتك، أو ضمن المقاعد المدفوعة إن كان اشتراكك يحسب لكل مستخدم. وعند بلوغ الحد يضيف المالك مقعدا من صفحة الفوترة أو الفريق في التطبيق، لأن ذلك يخصم من البطاقة.
يغير البيانات · الصلاحية team.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
email | string | نعم | بريد المدعو الإلكتروني، حتى 320 حرفا. يحفظ بأحرف صغيرة. |
phone_number | string | نعم | جوال المدعو (واتساب) مع رمز الدولة، مثل +9665XXXXXXXX. يقبل الرقم المحلي السعودي 05XXXXXXXX ويكمل برمز الدولة، ويحفظ أرقاما فقط. والرقم غير الصالح يرد 400. |
role | string | نعم | الدور الذي يمنح للعضو: admin أو sales أو purchasing أو technical أو viewer أو viewer_no_pricing، وشرحها في مقدمة الصفحة. لا يقبل owner. |
{
"email": "layla.hassan@acme-medical.example",
"phone_number": "+966501234567",
"role": "sales"
}ما يعيده: success وinvitation_id وemail_sent، وهذا الأخير يبين هل خرج بريد الدعوة فعلا.
- إذا بلغ مجموع الأعضاء والدعوات المعلقة حد خطتك ردت الأداة 402
plan_limit_reachedمعlimitوcurrent. والخطة التي لا تتيح تمييز الأدوار (البداية) لا تقبل إلا الدورadmin، وغيره يرد 402plan_feature_required. - يرد 409 إذا كان صاحب البريد عضوا في مؤسسة، هذه أو غيرها، أو عنده دعوة معلقة إلى أي مؤسسة: لكل شخص مؤسسة واحدة ودعوة مفتوحة واحدة.
- تنتهي الدعوة بعد 7 أيام. ورابطها يأخذ المدعو إلى التسجيل ليدخل هذه المؤسسة.
team_invite_resend
يعيد إرسال بريد دعوة ما زالت معلقة ولم تنته مدتها، بالرابط نفسه. ولا يمد مدة الدعوة.
يغير البيانات · الصلاحية team.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
invitation_id | integer | نعم | معرف الدعوة، من team_list. |
ما يعيده: success وemail_sent، وهذا الأخير يبين هل خرج البريد فعلا.
- الدعوة المجهولة ترد 404، والتي لم تعد معلقة (قبلت أو ألغيت) ترد 400، والمنتهية ترد 410: ألغها وأرسل دعوة جديدة.
team_invite_cancel
يلغي دعوة معلقة فلا يعود رابطها يقبل. لا يمكن التراجع، وإن أردت دعوة الشخص من جديد فأرسل دعوة أخرى.
يحذف بيانات أو يستبدلها · الصلاحية team.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
invitation_id | integer | نعم | معرف الدعوة، من team_list. |
ما يعيده: تأكيد success: true.
- المعلقة وحدها تلغى، وغيرها (كالمقبولة) يرد 400. والإلغاء يعيد المقعد إلى حد خطتك.
إعدادات المؤسسة
هذه البيانات تطبع على عروض الأسعار ومستنداتها، وهي للمالك وحده قراءة وكتابة. ولصورتي الشعار والختم أدوات رفع خاصة، منها `settings_logo_upload_url_create` و`settings_stamp_upload_url_create`.
settings_get
يعرض بيانات المؤسسة التي تطبع على عروض الأسعار: الأسماء وأرقام التسجيل والعنوان وبيانات الاتصال، وقيم عروض الأسعار الافتراضية. للمالك وحده.
للقراءة فقط · الصلاحية settings.read · الأدوار: المالك · الخطة الاحترافية وخطة المؤسسات
لا معاملات.
ما يعيده: سجل المؤسسة: name وlegal_name_ar وlegal_name_en وcr_number وcc_number وsfda_license وvat_number وaddress_ar وaddress_en وphone وfax وpo_box وcity وpostal_code وحقول القيم الافتراضية وquote_number_prefix، مع logo_path وstamp_path اللذين يدلان على وجود الصورتين.
- القراءة نفسها محصورة بالمالك: أي دور آخر يرد 403.
logo_pathوstamp_pathللقراءة فقط هنا. وترفع الصورتان أو تحذفان بأدوات الشعار والختم.
settings_update
يعدل نصوص بيانات المؤسسة وقيم عروض الأسعار الافتراضية. لا يتغير إلا ما ترسله، ويمسح النص الفارغ الحقل. للمالك وحده.
يغير البيانات · الصلاحية settings.write · الأدوار: المالك · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
name | string | لا | اسم المؤسسة المعروض، من حرف إلى 200 حرف. لا يمسح. |
legal_name_ar | string | لا | الاسم القانوني بالعربية، حتى 200 حرف. أرسل null لمسحه. |
legal_name_en | string | لا | الاسم القانوني بالإنجليزية، حتى 200 حرف. أرسل null لمسحه. |
cr_number | string | لا | رقم السجل التجاري، حتى 50 حرفا. أرسل null لمسحه. |
cc_number | string | لا | رقم عضوية الغرفة التجارية، حتى 50 حرفا. أرسل null لمسحه. |
sfda_license | string | لا | رقم ترخيص هيئة الغذاء والدواء (SFDA)، حتى 100 حرف. أرسل null لمسحه. |
vat_number | string | لا | الرقم الضريبي، حتى 50 حرفا. أرسل null لمسحه. |
address_ar | string | لا | العنوان بالعربية، حتى 500 حرف. أرسل null لمسحه. |
address_en | string | لا | العنوان بالإنجليزية، حتى 500 حرف. أرسل null لمسحه. |
phone | string | لا | هاتف المؤسسة، حتى 50 حرفا. أرسل null لمسحه. |
fax | string | لا | رقم الفاكس، حتى 50 حرفا. أرسل null لمسحه. |
po_box | string | لا | صندوق البريد، حتى 50 حرفا. أرسل null لمسحه. |
city | string | لا | المدينة، حتى 100 حرف. أرسل null لمسحها. |
postal_code | string | لا | الرمز البريدي، حتى 20 حرفا. أرسل null لمسحه. |
default_quote_validity_days | integer | لا | مدة صلاحية عرض السعر الافتراضية بالأيام، من 1 إلى 3650. تملأ بها العروض الجديدة. |
default_delivery_period_days | integer | لا | مدة التوريد الافتراضية بالأيام، من 1 إلى 3650. تملأ بها العروض الجديدة. |
default_payment_terms | string | لا | شروط الدفع الافتراضية للعروض الجديدة. إما مفتاح جاهز: advance_100 (دفعة مقدمة كاملة) أو advance_50_balance_on_delivery (نصف المبلغ مقدما والباقي عند التسليم) أو on_delivery (الدفع عند التسليم) أو net_30 أو net_60 أو net_90 (خلال 30 أو 60 أو 90 يوما من تاريخ الفاتورة)، وإما نص مخصص يطبع كما كتبته، حتى 500 حرف. أرسل null لتطبع العروض الجديدة بلا شروط دفع. |
default_first_delivery_days | integer | لا | مدة التوريد الأولى الافتراضية للمؤسسة بالأيام، من 0 إلى 3650. تستخدم في مستندات العطاء حين لا يحدد المنتج مدة خاصة به. |
default_order_delivery_days | integer | لا | مدة توريد الطلبات الافتراضية للمؤسسة بالأيام، من 0 إلى 3650. تستخدم في مستندات العطاء حين لا يحدد المنتج مدة خاصة به. |
quote_number_prefix | string | لا | البادئة التي تبدأ بها أرقام عروض الأسعار، من حرف إلى 10 أحرف. |
catalog_pricing_lowest_price | boolean | لا | حين يشترك عدة منتجات في كود نوبكو لبند ولا منتج افتراضي للكود، يسعر tenders_catalog_pricing البند بأقل سعر بيع بينها. يعمل افتراضيا، وfalse يترك هذه البنود ليختار لها شخص. |
{
"cr_number": "1010123456",
"vat_number": "300012345600003",
"default_quote_validity_days": 30,
"default_payment_terms": "net_30",
"quote_number_prefix": "ACM-"
}ما يعيده: تأكيد success: true.
- يمسح الحقل النصي بنص فارغ أو بـ
null. أماnameوquote_number_prefixوحقول الأيام فلا تمسح. - تحتفظ عروض الأسعار القائمة ببياناتها كما طبعت يوم إنشائها، ولا يسري التغيير إلا على العروض الجديدة.
ملفك الشخصي
الأداتان تعملان على العضو الذي ربط الاتصال، وهو من تنسب إليه كل عملية كتابة.
profile_get
يعرض ملف العضو الذي ربط الاتصال: اسمه وبريده ورقم جواله، مع مؤسسته وصلاحيات الاتصال ودوره وخطة المؤسسة وما يتاح لدوره من قدرات.
للقراءة فقط · الصلاحية settings.read · كل الأدوار · الخطة الاحترافية وخطة المؤسسات
لا معاملات.
ما يعيده: user_id وorg_id وscopes وrole وplan (فيها tier وfeatures) وcapabilities (ما يراه الدور ويديره، مثل can_view_bid_pricing) وfirst_name وlast_name وfull_name وphone_number وemail.
plan.featuresيبين ما تتيحه خطة المؤسسة. والأداة التابعة لميزة غير متاحة في الخطة ترد 403plan_upgrade_required.capabilitiesتلخص ما يستطيعه الدور: رؤية الأسعار وعروض الموردين والتسليمات والأوامر، وتعديل العطاءات والمنتجات.- المفتاح الذي غادر صاحبه المؤسسة يرد 403 على كل استدعاء، لا على هذه الأداة وحدها، ويلزم أن يصدر المدير مفتاحا جديدا.
profile_update
يعدل ملفك الشخصي: الاسم الأول واسم العائلة ورقم الجوال. والرقم هو جهة اتصالك مندوبا للمبيعات في عروض الأسعار، وبه تتعرف عليك المنصة، كالموافقة على انضمامك إلى مجموعات واتساب.
يغير البيانات · الصلاحية settings.write · الأدوار: المالك، المدير، المبيعات، المشتريات · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
first_name | string | لا | الاسم الأول، حتى 100 حرف. أرسل null لمسحه. |
last_name | string | لا | اسم العائلة، حتى 100 حرف. أرسل null لمسحه. |
full_name | string | لا | الاسم الكامل بديلا عن الاسمين السابقين، حتى 200 حرف. يقسم عند أول مسافة إلى اسم أول واسم عائلة، ويهمل إذا غيرت الاسم الأول أو اسم العائلة في الطلب نفسه. أرسل null لمسحه. |
phone_number | string | لا | جوالك (واتساب) مع رمز الدولة، حتى 30 حرفا. يحفظ أرقاما فقط، ويقبل الرقم المحلي السعودي 05XXXXXXXX ويكمله برمز الدولة. أرسل null أو نصا فارغا لمسحه. |
{
"first_name": "Layla",
"last_name": "Hassan",
"phone_number": "+966501234567"
}ما يعيده: تأكيد success: true.
- الاسم الكامل يشتق من الاسم الأول واسم العائلة. والرقم غير الصالح يرد 400، والطلب الذي لا يحمل أي حقل يرد 400 أيضا.
- تتحدث إدخالات سجل مندوبي المبيعات المرتبطة بك تلقائيا مع ملفك، أما عروض الأسعار التي أنشئت من قبل فتحتفظ ببيانات الاتصال المطبوعة عليها.
ربط Zoho Books
تستخدم كل منشأة عميل API خاصا بها في Zoho. يدخل المالك أو المدير بيانات هذا العميل ثم يربط الحساب من الإعدادات ← التكاملات في التطبيق، لأن الرمز السري لا يمر عبر هذه الأدوات ومنح الصلاحية يتم في صفحة Zoho نفسها. وبعد الربط تدار المزامنة كلها بهذه الأدوات. تعمل المزامنة كل ساعة، ولا تحذف أي سجل في أي من الجانبين.
zoho_books_get
يعرض حالة الربط ومنشأة Zoho Books المختارة، والاتجاهات المفعلة، وتاريخ البدء، ونتيجة آخر مزامنة وأعدادها.
للقراءة فقط · الصلاحية settings.read · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
لا معاملات.
ما يعيده: كائن فيه connected وzoho_organization_name وimport_sales_orders وimport_mode وexport_sales_orders وexport_quotations وsync_since وlast_sync_at وlast_sync_ok وlast_sync_summary. لا يعيد أي رمز دخول.
zoho_books_organizations_list
يعرض منشآت Zoho Books التي يصل إليها الحساب المربوط، لتختار واحدة منها للمزامنة.
للقراءة فقط · الصلاحية settings.read · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
لا معاملات.
ما يعيده: قائمة organizations، فيها organization_id وname لكل منشأة.
zoho_books_settings_update
يختار منشأة Zoho Books ويفعل اتجاهات المزامنة أو يوقفها. لا يتغير إلا ما ترسله.
يغير البيانات · الصلاحية settings.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
zoho_organization_id | string | لا | معرف المنشأة من zoho_books_organizations_list. |
import_sales_orders | boolean | لا | استيراد أوامر البيع من Zoho Books. |
import_mode | string | لا | طريقة الاستيراد: records تنسخ الأمر وملفاته كل ساعة، وfiles لا تنشئ شيئا تلقائيا بل يقرأ العضو أمر الشراء المرفق من صفحة استيراد أوامر البيع. |
import_sales_order_documents | boolean | لا | في طريقة records، انسخ الملفات المرفقة بكل أمر أيضا. مفعل افتراضيا. |
export_sales_orders | boolean | لا | إرسال أوامر البيع إلى Zoho Books. ولا ترسل الأوامر المستوردة منه. |
export_quotations | boolean | لا | إرسال عروض الأسعار المعتمدة كتقديرات، بعد بقائها معتمدة 24 ساعة. |
sync_since | string | لا | تاريخ بصيغة YYYY-MM-DD، ولا تنتقل إلا السجلات المؤرخة فيه أو بعده. |
{
"import_sales_orders": true,
"import_mode": "files",
"export_quotations": true
}ما يعيده: حالة الربط بعد التعديل، كما في zoho_books_get.
- لا يفعل أي اتجاه قبل اختيار المنشأة، ويرد الطلب 409.
zoho_books_sync
يشغل المزامنة فورا بدل انتظار التشغيل التالي، ويعيد ما تم في هذا التشغيل.
يغير البيانات · الصلاحية settings.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
لا معاملات.
ما يعيده: كائن summary فيه أعداد الأوامر والملفات المستوردة وأوامر البيع وعروض الأسعار المرسلة، وسطر لكل سجل رفضه Zoho.
- يرد 409 إذا كانت مزامنة أخرى جارية أو لم يفعل أي اتجاه.
zoho_books_disconnect
يلغي صلاحية بروكداك في Zoho Books ويوقف المزامنة ويحذف الرمز السري المحفوظ لعميل المنشأة. لا يحذف شيئا نسخ سابقا في أي من الجانبين.
يحذف بيانات أو يستبدلها · الصلاحية settings.write · الأدوار: المالك، المدير · الخطة الاحترافية وخطة المؤسسات
لا معاملات.
ما يعيده: تأكيد disconnected: true.
- إعادة الربط تتم من التطبيق فقط، ولا تنسخ أي سجل مرتين.