مكتب عقارات صغير تصله كل يوم ستون استفسارًا تقريبًا: من نموذج الموقع، ومن إعلانات فيسبوك، ومن البريد. بعضها عميل جاهز للشراء هذا الشهر بميزانية واضحة، وأكثرها «كم سعر المتر عندكم؟». السمسار يردّ عليها بالترتيب الذي وصلت به، فيتأخّر عن العميل الجاهز ساعات، وفي العقارات من يردّ أولًا يأخذ المعاينة.
سنبني في n8n «موظّفًا رقميًّا» لا يبيع ولا يفاوض، بل يفعل ما يستهلك وقت الفريق: يقرأ، ويستخرج، ويصنّف، ويسجّل، ويردّ ردًّا أوّليًّا، ويضع العميل الساخن أمام السمسار المناسب خلال دقيقة.
حدود الدور قبل أول عقدة#
ما يفعله النظام
- يستخرج البيانات من رسالة حرّة: الغرض، والنوع، والمنطقة، والميزانية، والتوقيت.
- يقيّم الجدّية بقواعد مكتوبة، ويسجّل كل عميل.
- يرسل ردًّا أوّليًّا مهذّبًا يؤكد الاستلام ويسأل عن الناقص.
- ينبّه السمسار المختص بالعملاء الساخنين فورًا.
ما لا يفعله
- لا يذكر أسعارًا أو توافرًا لوحدات بعينها؛ هذه معلومات تتغيّر ويؤكّدها إنسان.
- لا يَعِد بخصم أو موعد معاينة مؤكّد.
- لا يرفض عميلًا؛ «البارد» يدخل قائمة متابعة لا سلة المهملات.
- لا يقرّر وحده في الحالات الغامضة؛ يحوّلها إلى مراجعة بشرية.
خريطة سير العمل#
1. الاستقبال (Webhook / Form Trigger)
نقطة دخول واحدة تستقبل من نموذج الموقع وإعلانات فيسبوك والبريد. كل مصدر يُحوَّل إلى الشكل نفسه: الاسم، والهاتف، ونص الرسالة، والمصدر، والوقت.
2. التنظيف والتحقّق من التكرار
توحيد رقم الهاتف بصيغة دولية، والبحث في الجدول: هل هذا العميل موجود خلال آخر 30 يومًا؟ إن وُجد يُضاف الاستفسار إلى سجلّه بدل إنشاء عميل مكرّر.
3. الاستخراج بالنموذج (Structured Output)
عقدة نموذج لغوي تقرأ نص الرسالة وتُخرج JSON بحقول محدّدة، دون أي حكم أو ردّ.
4. التحقّق من المخرَج
عقدة كود تتأكّد أن JSON صالح، وأن القيم ضمن المسموح (المنطقة من القائمة، والميزانية رقم موجب). إن فشل: محاولة واحدة ثانية، ثم تحويل إلى مراجعة بشرية.
5. التقييم بالقواعد
درجة الجدّية تُحسب بالكود من الحقول المستخرجة، لا يقرّرها النموذج بانطباعه.
6. التسجيل في CRM
صف جديد في Google Sheets أو سجل في نظام CRM بكل الحقول والدرجة والمصدر ونص الرسالة الأصلي.
7. الرد الأوّلي
رسالة تأكيد عبر البريد أو قناة المكتب، تسأل فقط عن أهم معلومة ناقصة.
8. التوجيه والتنبيه
العميل الساخن يُسند إلى السمسار المختص بالمنطقة ويصله تنبيه فوري، والدافئ يدخل قائمة اليوم، والبارد قائمة المتابعة الأسبوعية.
9. سجلّ الأخطاء
أي فشل في أي عقدة يُسجَّل ويُرسل تنبيه لمسؤول النظام، ولا يضيع الاستفسار أبدًا.
قلب النظام: الاستخراج بمخرجات منظّمة#
القاعدة الأهم: النموذج يستخرج، والكود يقرّر. نطلب من النموذج تحويل الكلام الحرّ إلى حقول، ونترك الحساب والتوجيه لقواعد مكتوبة يمكن مراجعتها وتعديلها.
استخرج من رسالة العميل التالية البيانات المطلوبة فقط، ولا تكتب أي ردّ أو تعليق.
أخرج JSON صالحًا بهذه الحقول حصرًا:
{
"intent": "شراء" | "إيجار" | "بيع_عقار_يملكه" | "استفسار_عام",
"property_type": "شقة" | "فيلا" | "محل" | "أرض" | "غير_محدد",
"areas": [قائمة المناطق المذكورة كما وردت],
"budget_min": رقم بالجنيه أو null,
"budget_max": رقم بالجنيه أو null,
"timeline": "فوري" | "خلال_3_أشهر" | "أكثر_من_3_أشهر" | "غير_محدد",
"financing": "كاش" | "تقسيط" | "تمويل_عقاري" | "غير_محدد",
"missing": [أهم المعلومات الناقصة للتواصل الفعّال، بحد أقصى اثنتين],
"language_note": "ملاحظة قصيرة إن كانت الرسالة غامضة أو تحتمل أكثر من معنى، وإلا null"
}
قواعد:
- لا تخمّن ما لم يُذكر؛ استخدم null أو "غير_محدد".
- حوّل الأرقام المكتوبة بالكلمات أو بالاختصارات ("2 مليون"، "مليونين ونص") إلى أرقام.
- إن ذُكر رقم واحد للميزانية فضعه في budget_max.
رسالة العميل:
"""{{ $json.message }}"""وفي n8n فعّل خيار المخرجات المنظّمة (Structured Output Parser) في عقدة النموذج إن كان متاحًا، ليرفض أي مخرج لا يطابق المخطّط.
التقييم بالقواعد لا بالانطباع#
| الشرط | النقاط |
|---|---|
| الغرض شراء أو إيجار | +2 |
| الميزانية مذكورة | +2 |
| التوقيت «فوري» | +3 |
| التوقيت «خلال 3 أشهر» | +1 |
| منطقة واحدة أو اثنتان محدّدتان | +1 |
| طريقة الدفع محدّدة | +1 |
| الغرض «استفسار عام» فقط | −2 |
7 فأكثر = ساخن، و4–6 = دافئ، وأقل من ذلك بارد. ميزة القواعد أن صاحب المكتب يفهمها ويعدّلها بنفسه: إن رأى أن «التمويل العقاري» يعني جدّية أعلى في سوقه، يغيّر رقمًا واحدًا.
const d = $json;
let score = 0;
if (['شراء', 'إيجار'].includes(d.intent)) score += 2;
if (d.budget_max) score += 2;
if (d.timeline === 'فوري') score += 3;
else if (d.timeline === 'خلال_3_أشهر') score += 1;
if (Array.isArray(d.areas) && d.areas.length > 0 && d.areas.length <= 2) score += 1;
if (d.financing && d.financing !== 'غير_محدد') score += 1;
if (d.intent === 'استفسار_عام') score -= 2;
const tier = score >= 7 ? 'hot' : score >= 4 ? 'warm' : 'cold';
return [{ json: { ...d, score, tier } }];الرد الأوّلي: سريع ومهذّب ومحدود#
الرد يُولَّد من قالب ثابت تُملأ فراغاته، مع جملة واحدة يولّدها النموذج للسؤال عن المعلومة الناقصة. لا نترك النموذج يكتب الرسالة كاملة بحرية؛ فهذا أضمن للنبرة وأبعد عن الوعود.
أهلًا {{الاسم}}، وصلنا طلبك بخصوص {{نوع العقار}} {{للغرض}} في {{المنطقة}}، وشكرًا لتواصلك مع مكتبنا.
{{سؤال واحد عن أهم معلومة ناقصة، مثل: "هل تفضّل موعدًا للمعاينة هذا الأسبوع أم الأسبوع القادم؟"}}
سيتواصل معك أحد مستشارينا قريبًا.الإشراف البشري ومعالجة الأخطاء#
متى يتدخّل إنسان؟
تُحوَّل الحالة إلى قائمة «مراجعة» بدل المسار الآلي إن:
- فشل التحقّق من JSON مرتين.
- وُجدت language_note (رسالة غامضة).
- ذكر العميل شكوى أو مشكلة في عقد سابق.
- كانت الميزانية غير منطقية مقارنةً بالمنطقة (مثلًا أقل من حدّ يحدّده المكتب).
- Error Workflow في n8n: سير عمل منفصل يُستدعى عند فشل أي عقدة، يسجّل الخطأ والبيانات الأصلية ويرسل تنبيهًا.
- إعادة المحاولة على عقد الاتصال الخارجية (النموذج، وCRM) بعدد محدود وفاصل زمني.
- الاستفسار لا يضيع: أول ما يحدث بعد الاستقبال حفظ الرسالة الخام؛ فلو فشل كل ما بعدها يبقى العميل مسجّلًا.
- البيانات تُحفظ في حسابات المكتب لا حساباتك.
- لا تُرسل للنموذج إلا الحقول اللازمة (نص الرسالة)، لا رقم الهاتف.
- مفاتيح الواجهات البرمجية في بيانات اعتماد n8n المشفّرة، لا داخل العقد.
قبل التسليم: اختبره بخمسين رسالة حقيقية#
اطلب من المكتب خمسين استفسارًا قديمًا (بعد حذف البيانات الشخصية)، ومرّرها على النظام، وقارن تصنيفه بتصنيف السمسار نفسه. إن اتفقا في الأغلب، وكانت الاختلافات مفهومة، فالنظام جاهز. وإن لم يتفقا فعدّل القواعد أو التعليمات، لا النموذج. المنهج الكامل في كيف تقيس جودة تطبيق ذكاء اصطناعي.
كيف تبيع هذا المشروع؟#
- بِع النتيجة: «العميل الجاهز يصل إلى السمسار خلال دقيقة بدل ساعات، ولا يضيع أي استفسار»، لا «سير عمل n8n بنموذج لغوي».
- الحسابات باسم العميل: حساب n8n (سحابي أو مستضافًا)، ومفتاح النموذج، والجدول، كلها باسم المكتب ويدفع تكلفتها مباشرة.
- سعر الإعداد + صيانة شهرية: الإعداد يشمل البناء والاختبار والتدريب، والصيانة تشمل مراقبة الأخطاء وتعديل القواعد وتحديث القوالب.
تفاصيل التسعير وكتابة العرض في كيف تسعّر خدمات الذكاء الاصطناعي وتكتب عرضًا يفوز.
اختبر فهمك
لماذا تُحسب درجة الجدّية بالكود لا بحكم النموذج؟
النموذج يستخرج الحقائق، والقرار يبقى في قواعد شفّافة قابلة للمراجعة.
اختبر فهمك
فشلت عقدة CRM بسبب انقطاع مؤقت. ما الذي يضمن عدم ضياع العميل؟
أول قاعدة في الأتمتة: المدخل الأصلي لا يضيع مهما فشل ما بعده.
اختبر فهمك
عميل كتب رسالة غامضة تحتمل الشراء أو البيع. ماذا يفعل النظام؟
الغموض يُحسم بإنسان؛ والتخمين الآلي هنا قد يخسر عميلًا حقيقيًّا.