مقدمة في إنشاء عميل متوقع تلقائيًا
في نظام إدارة علاقات العملاء من فراب، يمكنك تلقائيًا إنشاء عميل متوقع باستخدام ميزة السكربت على الخادم. يسمح لك نوع المستند السكربت على الخادم بكتابة كود بايثون على جانب الخادم دون إنشاء تطبيق مخصص أو نشر أي شيء.
أنواع السكربتات على الخادم
هناك أربعة أنواع من السكربتات على الخادم، ولكننا سنركز في هذا الدليل على:
- حدث المستند
- واجهة برمجة التطبيقات
- حدث المجدول
1. إنشاء عميل متوقع عند استلام البريد الإلكتروني (حدث المستند)
لنفترض أنك تريد إنشاء عميل متوقع في كل مرة يتم استلام بريد إلكتروني.

خطوة 1: انتقل إلى سكربت الخادم
اذهب إلى: البحث→ بحث سكربت الخادم → إضافة سكربت الخادم

خطوة 2: املأ الحقول التالية:
| الحقل | القيمة |
|---|---|
| نوع السكربت | حدث doctype |
| المستند | التواصل |
| الحدث | بعد الإدراج |
| السكربت | (انظر أدناه) |
سكربت عينة:
if doc.type_of_communication == 'تواصل' and doc.sent_or_received == 'تم الاستلام':
existing_lead = frappe.db.exists("عميل متوقع", {"البريد الإلكتروني": doc.مرسل})
if not existing_lead:
frappe.get_doc({
"doctype": "عميل متوقع",
"الاسم الأول": doc.اسم_المرسل_الكامل,
"البريد الإلكتروني": doc.مرسل,
"المصدر": "البريد الإلكتروني",
"الحالة": "جديد",
}).insert(ignore_permissions=True)
هذا سوف يخلق تلقائيًا عميلًا متوقعًا جديدًا لكل بريد إلكتروني جديد، وتجنب المكررات.

2. إنشاء عميل متوقع عبر واجهة برمجة التطبيقات المخصصة (سكربت واجهة برمجة التطبيقات)
أحيانًا قد تريد السماح لأنظمة خارجية بإنشاء عملاء متوقعين عن طريق استدعاء نقطة نهاية واجهة برمجة التطبيقات.
خطوة 1: انتقل إلى سكربت الخادم
اذهب إلى: البحث→ بحث سكربت الخادم → إضافة سكربت الخادم
خطوة 2: املأ الحقول التالية:
| الحقل | القيمة |
|---|---|
| نوع السكربت | واجهة برمجة التطبيقات (API) |
| طريقة واجهة برمجة التطبيقات | create_lead_api |
| السكربت | (انظر أدناه) |
سكربت عينة:
data = frappe.local.form_dict
if not data.get("البريد الإلكتروني") or not data.get("الاسم"):
frappe.throw("حقول مطلوبة مفقودة: 'البريد الإلكتروني' و 'الاسم'")
existing_lead = frappe.db.exists("عميل متوقع", {"البريد الإلكتروني": data["البريد الإلكتروني"]})
if existing_lead:
frappe.response["message"] = f"العميل المتوقع موجود بالفعل: {existing_lead}"
else:
lead = frappe.get_doc({
"doctype": "عميل متوقع",
"الاسم الأول": data["الاسم"],
"البريد الإلكتروني": data["البريد الإلكتروني"],
"الحالة": "جديد",
"المصدر": "واجهة برمجة التطبيقات"
})
lead.insert(ignore_permissions=True)
frappe.response["message"] = f"تم إنشاء العميل المتوقع: {lead.name}"
كيفية الاستخدام:
أرسل طلب POST إلى:
https://<موقعك>/api/طريقة/إنشاء_عميل_متوقع_واجهة_برمجة_التطبيقات
مع الجسم:
{
"البريد الإلكتروني": "شخص@مثال.كوم",
"الاسم": "شخص ما"
}

3. إنشاء عميل متوقع عبر وظيفة مجدولة (حدث المجدول)
قد تريد إنشاء عملاء متوقعين بشكل دوري بناءً على بعض المنطق — على سبيل المثال، العملاء من جدول آخر، أو مستخدمين غير نشطين.
خطوة 1: انتقل إلى سكربت الخادم
اذهب إلى: البحث→ بحث سكربت الخادم → إضافة سكربت الخادم
خطوة 2: املأ الحقول التالية:
| الحقل | القيمة |
|---|---|
| نوع السكربت | حدث المجدول |
| عبارة كرون | 0 * * * * (كل ساعة) |
| السكربت | (انظر أدناه) |
سكربت عينة:
# مثال: إنشاء عميل متوقع تجريبي كل ساعة لأغراض العرض
frappe.get_doc({
"doctype": "عميل متوقع",
"الاسم الأول": "تم إنشاؤه تلقائيًا",
"البريد الإلكتروني": f"عرض_{frappe.utils.now_datetime().strftime('%H%M%S')}@مثال.كوم",
"المصدر": "سكربت المجدول",
"الحالة": "جديد"
}).insert(ignore_permissions=True)
يمكنك استبدال هذا المنطق بأي استعلام أو فلتر أو قاعدة مخصصة لإنشاء العملاء المتوقعين.

استعلام الأذونات (تمت الإزالة)🔒
يستخدم نوع استعلام الأذونات للسيطرة على رؤية السجل بشكل ديناميكي. لا يتم استخدامه لإنشاء العملاء المتوقعين، لذلك سنقوم بتجاوزه في هذا الدليل.
نصائح**📌**
- اختبار السكربت دائمًا في موقع اختبار قبل استخدامه في الإنتاج.
- استخدم
ignore_permissions=Trueبحذر. - استخدم
frappe.throw()للتحقق من المدخلات في سكربتات واجهة برمجة التطبيقات.