الوكالات
فانل واحد، وعشرين عميل، وعشرين سمعة كل واحدة منهم لوحدها
وكالة من تلات أشخاص بتشتغل تسويق لعشرين بيزنس محلي عندها نفس المشكلة عشرين مرة، ونفس الحل عشرين مرة — غير إن قايمة كل عميل وهويته في الإرسال ودومينه وسجل موافقته لازم يفضلوا ملكهم بالكامل. الشغل المهم كله في كلمة "غير" دي.
مشروع لكل عميل، والحدود دي شغل الداتابيز مش شغل حد فاكر
كل حاجة هنا محدودة بـ tenant ومشروع مع بعض — الكونتاكتس والفانلات والكرييتيفز والحملات وهويات الإرسال والتقارير. التحديد ده مفروض بالـ row-level security جوه الداتابيز، مش بشرط لازم حد يفتكره يضيفه في الكويري. مشروع اتنسى يتحط فيه الشرط مش هيشوف حاجة خالص، مش هيشوف صفوف المشروع الأول.
يعني قايمة عميل مش ممكن تتسرب بالغلط لحملة عميل تاني، ويعني التقرير بتاع عميل واحد لأنه من ناحية البنية مش ممكن يكون عن اتنين.
كل عميل بيبعت باسمه هو
هوية الإرسال تابعة لمشروع: دومينهم ومفاتيح DKIM بتاعتهم، والبوت بتاعهم أو حساب البروفايدر بتاعهم، وسقف الإرسال بتاعهم. حملة وحشة لعميل مش ممكن تضر ديليفري عميل تاني، لأنهم عمرهم ما كانوا شاركين حاجة تتضر.
وكمان بيحل كلام محرج بدري. العميل مالك إرساله وقايمته وسجل موافقته. لما يمشي — وهماشي ناس — يمشي بكل حاجة بتاعته، ومش تكون بنيت موقف رهائن هتضطر تشرحه.
- 1جهات الاتصاللكل مشروع. مفروض في الداتابيز نفسها، مش بكويري لازم حد يفتكرها.
- 2الإرسالدومينهم وDKIM بتاعتهم وبوتهم أو البروفايدر بتاعهم وسقف الإرسال بتاعهم.
- 3الموافقةسجلهم. بيمشي معاهم بالدليل كله لو مشيوا.
- 4التقاريرلكل مشروع بالتصميم نفسه. مفيش طريقة إن اتنين عميل يتجمعوا بالغلط.
- معلومةاللي بتفضل معاكتعريفات الفانلات وطريقة شغلك. دي بتاعتك، وهي الجزء اللي يستاهل يعاد استخدامه.
مفيش سمعة مشتركةمفيش قايمة مشتركة
إعادة استخدام من غير نسخ ولزق
ابني الفانل مرة واحدة. وانشره بعدد عملائك.
الفانل جراف، والجراف JSON بمخطط معلن. يعني الحاجة اللي بتعيد استخدامها وثيقة، مش سكرين شوت لشاشة لازم تبنيها بإيدك في كل حساب.
فانلاتك الجاهزة
الترحيب، والسلة المتروكة، واللي ماجاش، والفواصل الزمنية، واسترجاع العميل. مكتوبة مرة واحدة على إيد أحسن واحد فيها، محفوظة في الريبو بتاعك، وبتتعمل في مشروع العميل بكول API واحد.
بتتفحص بنفس الطريقة في كل حتة
الفالديتور بيشتغل على الفانل بتاعك في كل مشروع بيوصل له. جراف هيلف من غير انتظار، أو هيبعت من غير عنوان، بيرفض هناك زي ما بيرفض هنا.
بيتجرب قبل ما يشتغل
اعمل dry-run لكونتاكت حقيقي من قايمة العميل ده جوه الفانل وشوف هيبعتله إيه. اعملها مرة واحدة مع كل نشر، وكلام "طلع غلط" بيقف يحصل.
بيتطور في مكان واحد
لما تتعلم حاجة — التذكير التاني بيشتغل أحسن الساعة عشر الصبح — بتغير التعريف وبتدخّله للقدام. العملاء اللي شغالين بالنسخة القديمة بيكمّلوا عليها؛ محدش في نص الشغل بيتزعزع.
والكرييتيفز كمان
الكرييتيف وثيقة فيها متغيرات دمج. نفس إيميل الترحيب، متصور ببراند كل عميل وألوانه ولوجوه — متجيبين من موقعه هو من أول تشغيل.
أو سيبها لوكيل يعملها
وجّه أسستنت للـ MCP server، محدود على مشروع واحد، وخليه يكتب ويفحص الفانل للعميل ده. كل حاجة هتوصل لإنسان حقيقي لسه محتاجة تأكيد صريح وبتفضل جوه الكوتا.

حداشر عميل، حداشر مُرسِل، ومكان واحد تبص فيه.
مشكلة التقرير الشهري
معظم وجع التقارير عند الوكالات مش في إنتاج أرقام. المشكلة في إنتاج أرقام تعيش لما العميل يسأل سؤال بعدها، وإنتاجها من غير تلات ساعات سكرين شوتس أول الشهر.
حاجتين بيحلوا المشكلة دي. التقارير API routes، يعني الحزمة الشهرية ممكن يتجمّعها سكريبت وتتصدّر PDF بدل إنسان وشيت إكسل. والأرقام صادقة في موضوع البوتات: الخام والمفلتر الاتنين موجودين ومسميين، فلما العميل يسأل ليه نسبة الفتح نزلت بعد ما نقل، تقدر تشرحها في جملة واحدة بدل ما تدافع عنها في أربع.
نفس التايلات بتنزل في dash-b — أداء الحملات، والنزول من الفانل، ونمو القايمة، والديليفري حسب الدومين — يعني العميل اللي عايز لوحة لايف ياخدها، على حسابه هو، ببيانات الدخول بتاعته، ومن غير أي مفتاح بتاعك في الصفحة.
- 1لكل مشروعتوكن واحد، نطاق مشروع واحد، نفس السكريبت.
- 2اسحبأداء الحملات، نقاط السقوط في الفانل، نمو القوايم، وقابلية التوصيل لكل دومين.
- 3رندرملفهم الإبداعي كصفحة تقرير، وبعدين PDF.
- 4إرسالأو حطه في البورد بتاعهم. أي واحد العميل بيفعله بجد.
- معلومةإيه اللي اتغيرتلات ساعات من السكرينشوتات بقت وظيفة مجدولة، لأن التقارير كانت مسارات من الأول.
خام ومفلتر، الاتنين معلَّمين
الحوار عن الموافقة، في وقت بدري
كل وكالة قابلت العميل اللي بييجي بشيت فيه أربعة آلاف عنوان وإجابة مش واضحة إنهم جايين منين. هنا ده مش جدال لازم تكسبه؛ ده حقل.
الاستيراد بيتسجّل كمصلحة مشروعة في أحسن الأحوال، ومش موافقة أبدًا، والخليط بين الأساسات بيتعرض قبل ما أي حملة تتبعت. لو قايمة مش ممكن تتبعت ليها، ده بيتقال وقت الاستيراد مش وقت الشكوى. ده بيحوّل حكم مُحرج لقراءة مشتركة لنفس الشاشة — وده وضع أحسن بكتير ليك لما العميل يصرّ.
يستاهل يتقال للعميل بصوت عالي: السمعة اللي القايمة الوحشة بتخاطر بيها هي سمعته هو، على دومينه هو، لأن كل مشروع بيبعت باسمه. ده جدال أقوى من أي لائحة، وهو اللي بيوصّل في الآخر.