From 209c35759c1d0a304867caeacb53acdd6f59708a Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 25 Apr 2026 23:16:15 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20complete=20revenue=20package=20?= =?UTF-8?q?=E2=80=94=2020=20drafts=20+=20pilot=20plan=20+=20demo=20script?= =?UTF-8?q?=20+=20playbook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - seed_first_batch.py: 10 email + 10 WhatsApp drafts (20 total, 14 companies) - pricing.py: added 499 SAR pilot plan with money-back guarantee - demo_script.md: 10-minute Arabic demo script with objection handling - REVENUE_PLAYBOOK.md: day-by-day guide from deploy to first payment https://claude.ai/code/session_01W1rJthWDkasijTdXCfxVHs --- salesflow-saas/REVENUE_PLAYBOOK.md | 97 ++++ salesflow-saas/backend/app/api/v1/pricing.py | 21 + salesflow-saas/backend/scripts/demo_script.md | 50 ++ .../backend/scripts/seed_first_batch.py | 450 ++++-------------- 4 files changed, 265 insertions(+), 353 deletions(-) create mode 100644 salesflow-saas/REVENUE_PLAYBOOK.md create mode 100644 salesflow-saas/backend/scripts/demo_script.md diff --git a/salesflow-saas/REVENUE_PLAYBOOK.md b/salesflow-saas/REVENUE_PLAYBOOK.md new file mode 100644 index 00000000..02afc33d --- /dev/null +++ b/salesflow-saas/REVENUE_PLAYBOOK.md @@ -0,0 +1,97 @@ +# Dealix — Revenue Playbook + +## المطلوب قبل البدء +- [ ] Railway deploy شغّال (`curl https://api.dealix.me/health` → `{"status":"ok"}`) +- [ ] SMTP_USER + SMTP_PASSWORD في Railway env vars +- [ ] GREEN_API_INSTANCE_ID + GREEN_API_TOKEN في Railway env vars + +## اليوم 1: التفعيل + +```bash +# 1. تأكد كل شي شغّال +API_BASE=https://api.dealix.me bash scripts/go_live.sh + +# 2. ازرع أول 20 draft (10 email + 10 WhatsApp) +cd salesflow-saas/backend && python scripts/seed_first_batch.py + +# 3. شوف الـ drafts +curl https://api.dealix.me/api/v1/drafts?status=draft | python3 -m json.tool + +# 4. وافق عليهم +curl -X POST https://api.dealix.me/api/v1/drafts/approve-batch \ + -H "Content-Type: application/json" -d '{"batch_id":"BATCH_ID"}' + +# 5. ارسل أول 5 إيميلات +curl -X POST "https://api.dealix.me/api/v1/drafts/send-approved-batch?channel=email&batch_size=5" +``` + +## اليوم 2-3: المتابعة + +```bash +# شوف لو في ردود +curl https://api.dealix.me/api/v1/followups/due | python3 -m json.tool + +# ولّد follow-ups تلقائياً +curl -X POST https://api.dealix.me/api/v1/followups/generate + +# ارسل ثاني 5 إيميلات +curl -X POST "https://api.dealix.me/api/v1/drafts/send-approved-batch?channel=email&batch_size=5" +``` + +## اليوم 4-7: التوسيع + +```bash +# ولّد 10 targets جديدة +curl -X POST https://api.dealix.me/api/v1/automation/daily-pipeline/run \ + -H "Content-Type: application/json" \ + -d '{"sectors":["real_estate","saas","agency"],"daily_target_count":10}' + +# كرر: review → approve → send +``` + +## لما أحد يرد "مهتم" + +```bash +# صنّف الرد +curl -X POST https://api.dealix.me/api/v1/automation/reply/classify \ + -H "Content-Type: application/json" -d '{"reply_text":"مهتم أبي أجرب"}' + +# الرد التلقائي: يقترح demo +# أنت: احجز 10 دقائق (استخدم scripts/demo_script.md) +# بعد الـ demo: أرسل رابط الدفع +``` + +## لما أحد يوافق على Pilot + +```bash +# أنشئ checkout link +curl -X POST https://api.dealix.me/api/v1/pricing/checkout \ + -H "Content-Type: application/json" \ + -d '{"plan_id":"pilot","customer_name":"اسم العميل","customer_email":"email@company.com","customer_phone":"966XXXXXXXXX"}' +``` + +## الجدول اليومي (بتوقيت السعودية) + +| الوقت | المهمة | +|-------|--------| +| 09:00 | `daily_cycle.sh morning` — ولّد targets + drafts | +| 09:30 | راجع الـ drafts + عدّل لو لازم | +| 10:00 | وافق + ارسل أول batch (5 إيميلات) | +| 12:00 | ارسل ثاني batch (5 إيميلات) | +| 16:00 | `daily_cycle.sh afternoon` — follow-ups | +| 16:30 | شيك الردود + رد على المهتمين | + +## الأهداف الأسبوعية + +| الأسبوع | الهدف | +|---------|-------| +| 1 | 20 رسالة مرسلة، 3+ ردود، 1 demo | +| 2 | 40 رسالة، 5+ ردود، 2 demos، 1 pilot | +| 3 | 60 رسالة، أول 499 ريال (pilot) | +| 4 | أول 990 ريال/شهر (subscription) | + +## Safety Rules +- إيميل: max 15/يوم أول أسبوع +- واتساب: max 10/يوم أول أسبوع +- كل رسالة فيها opt-out +- لو أحد قال "إيقاف" → لا ترسل له أبداً diff --git a/salesflow-saas/backend/app/api/v1/pricing.py b/salesflow-saas/backend/app/api/v1/pricing.py index 2e9e4126..27dee8b2 100644 --- a/salesflow-saas/backend/app/api/v1/pricing.py +++ b/salesflow-saas/backend/app/api/v1/pricing.py @@ -21,6 +21,27 @@ logger = logging.getLogger("dealix.pricing") router = APIRouter(prefix="/pricing", tags=["Pricing & Checkout"]) PLANS: List[Dict[str, Any]] = [ + { + "id": "pilot", + "name_en": "7-Day Pilot", + "name_ar": "تجربة 7 أيام", + "price_sar": 499, + "billing": "one-time", + "features_en": [ + "7-day full access", + "AI lead response (45 sec)", + "Lead qualification", + "Demo booking automation", + "Full money-back guarantee", + ], + "features_ar": [ + "وصول كامل 7 أيام", + "رد ذكي على العملاء (45 ثانية)", + "تأهيل العملاء المحتملين", + "حجز مواعيد تلقائي", + "ضمان استرداد كامل", + ], + }, { "id": "starter", "name_en": "Starter", diff --git a/salesflow-saas/backend/scripts/demo_script.md b/salesflow-saas/backend/scripts/demo_script.md new file mode 100644 index 00000000..47b7c302 --- /dev/null +++ b/salesflow-saas/backend/scripts/demo_script.md @@ -0,0 +1,50 @@ +# Dealix — سكريبت Demo (10 دقائق) + +## قبل الـ Demo +- افتح api.dealix.me/api/v1/os/stages (يعرض الـ 12 مرحلة) +- جهّز رقم واتساب تجريبي + +## الدقائق 1-2: المشكلة +> "كم lead يجيكم بالشهر؟ وكم منهم تردون عليه خلال أول ساعة؟ +> الواقع: 60% من الـ leads تضيع بسبب تأخر الرد. هذا يساوي [حسب القطاع] ريال ضائعة." + +## الدقائق 3-5: العرض الحي +1. أرسل رسالة واتساب للرقم التجريبي +2. عدّ 45 ثانية — Dealix يرد بالعربي +3. وريهم الرد: سؤال عن الميزانية/الاحتياج +4. أرسل رد — Dealix يؤهل ويقترح موعد + +> "شفتوا؟ 45 ثانية. 24/7. بالعربي السعودي." + +## الدقائق 6-7: ROI +| القطاع | الخسارة الشهرية | Dealix يحفظ | التكلفة | +|--------|----------------|------------|---------| +| عقارات | ~25K ريال | 30-40% = ~8K | 990/شهر | +| SaaS | ~20K ريال | 30% = ~6K | 990/شهر | +| وكالة | عميل يطلع = 60-240K/سنة | يحفظ العميل | 990/شهر | +| مقاولات | ~8K وقت فريق | 80% = ~6.4K | 990/شهر | + +## الدقائق 8-9: العرض +> "عندنا pilot 7 أيام بـ 499 ريال مع ضمان استرداد كامل. +> لو ما شفتوا نتيجة — نرجّع الفلوس بدون أسئلة. +> لو عجبكم — 990 ريال/شهر." + +## الدقيقة 10: الإغلاق +> "نبدأ اليوم؟ أحتاج بس: +> 1. رقم واتساب البزنس أو إيميل الاستقبال +> 2. 3 أسئلة تأهيل تبونها (أو نختار حسب قطاعكم) +> 3. 499 ريال لبدء الـ pilot" + +## ردود على اعتراضات شائعة + +**"غالي"** +> "499 ريال لـ 7 أيام = 71 ريال/يوم. لو Dealix حفظلكم lead واحد = أكثر من 499 ريال. وعندكم ضمان استرداد." + +**"عندنا CRM"** +> "Dealix ما يبدّل الـ CRM — يكمّله. يرد قبل ما الـ lead يوصل الـ CRM." + +**"مو متأكد من AI"** +> "كل رسالة تمر عليكم أولاً. أنتم توافقون قبل ما ترسل. مو autonomous." + +**"نرجعلك"** +> "أكيد. بس كل يوم تأخير = leads تضيع. وش رأيكم نحجز موعد محدد؟" diff --git a/salesflow-saas/backend/scripts/seed_first_batch.py b/salesflow-saas/backend/scripts/seed_first_batch.py index d8f871cb..c565bd81 100644 --- a/salesflow-saas/backend/scripts/seed_first_batch.py +++ b/salesflow-saas/backend/scripts/seed_first_batch.py @@ -1,371 +1,115 @@ #!/usr/bin/env python3 -"""Seed first 10 outreach drafts — real companies, real messages.""" -import asyncio -import sys -import os +"""Seed 20 outreach drafts — 10 email + 10 WhatsApp for top Saudi companies.""" +import asyncio, sys, os, uuid +from datetime import datetime, timezone sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -BATCH = [ - { - "company": "Peak Content", - "contact_name": "فريق Peak Content", - "contact_email": "hello@peakcontent.sa", - "contact_phone": "", - "channel": "email", - "sector": "agency", - "subject": "خدمة جديدة تزيد إيراد عملائكم — بدون تكلفة عليكم", - "body": """السلام عليكم فريق Peak Content، - -أنا سامي من Dealix. شفت إنكم تخدمون عملاء في التسويق الرقمي. - -المشكلة اللي نشوفها عند كل وكالة: العميل يدفع 5,000-20,000 ريال/شهر على إعلانات، لكن المتابعة على الـ leads ضعيفة. النتيجة: العميل يلوم الوكالة. - -Dealix يحل هذا — نظام يرد على leads عملائكم بالعربي خلال 45 ثانية، يؤهلهم، ويحجز مواعيد تلقائياً. - -الفكرة: تقدمونه كخدمة إضافية لعملائكم (Setup 3,000 + 990 ريال/شهر لكل عميل). إيراد جديد بدون تكلفة تشغيل. - -أبي أعطيكم pilot مجاني لأول عميل عندكم — 7 أيام. - -وقتكم 10 دقائق هالأسبوع؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، تابع لرسالتي السابقة عن Dealix. لو عندكم عميل واحد يعاني من متابعة الـ leads — نجربه مجاناً 7 أيام. وش رأيكم؟", - "followup_5d": "آخر متابعة — لو الوقت مو مناسب الحين أفهم تماماً. بس لو تبون تشوفون كيف وكالات ثانية تستخدم Dealix كخدمة إضافية، أرسلوا 'مهتم' وأشارككم التفاصيل.", - "fit_score": 92, - "risk_score": 5, - }, - { - "company": "Aqar.fm", - "contact_name": "فريق عقار", - "contact_email": "info@aqar.fm", - "contact_phone": "", - "channel": "email", - "sector": "real_estate", - "subject": "300,000 ريال ضائعة سنوياً من استفسارات ما تُتابع — الحل", - "body": """السلام عليكم فريق عقار، - -أنا سامي من Dealix. منصتكم أكبر سوق عقاري بالسعودية — وهذا يعني آلاف الاستفسارات يومياً. - -الواقع: 60-70% من استفسارات العقار ما تُتابع خلال أول ساعة. العميل يروح للمنافس. - -لو 100 استفسار/شهر و60% تضيع = 60 فرصة. لو 10% كانت بتتحول = 6 صفقات × 50,000 ريال = ~300,000 ريال ضائعة سنوياً. - -Dealix يرد خلال 45 ثانية بالعربي، يسأل عن الميزانية والموقع المفضل، ويحجز جولة عرض تلقائياً. - -يحفظ 30-40% من الفرص الضائعة = ~120,000 ريال إضافية/سنة. تكلفة 990 ريال/شهر = ROI 10x. - -نجرّب pilot 7 أيام بـ 499 ريال فقط مع ضمان استرداد كامل. - -10 دقائق نتكلم؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، تابع لرسالتي عن Dealix. كل يوم تأخير = استفسارات تضيع. Pilot 7 أيام بـ 499 ريال مع ضمان استرداد. وش رأيكم؟", - "followup_5d": "آخر متابعة — لو تبون تشوفون demo حي لكيف Dealix يرد على استفسارات العقار خلال 45 ثانية، أرسلوا 'demo'.", - "fit_score": 95, - "risk_score": 3, - }, - { - "company": "Foodics", - "contact_name": "فريق Foodics", - "contact_email": "sales@foodics.com", - "contact_phone": "", - "channel": "email", - "sector": "saas", - "subject": "leads الموقع تبرد — حل يرد بالعربي خلال 45 ثانية", - "body": """السلام عليكم فريق Foodics، - -أنا سامي من Dealix. شفت إنكم تستخدمون HubSpot + WhatsApp — يعني عندكم pipeline قوي. - -لكن السؤال: كم lead من الموقع يبرد خلال أول 24 ساعة قبل ما فريق المبيعات يتواصل؟ - -الواقع عند شركات SaaS: 30-50% من الـ leads تبرد. لو 200 lead/شهر و40% تبرد = 80 lead ضائع. لو 5% كانت بتشتري = 20,000 ريال ضائعة/شهر. - -Dealix يرد بالعربي خلال 45 ثانية على كل lead، يؤهل، ويحجز demo تلقائياً. يشتغل مع HubSpot — يكمّل الـ stack مو يبدّله. - -يحفظ 30% من الضائع = ~6,000 ريال إضافية/شهر. تكلفة 990 ريال/شهر = ROI 6x. - -وقتكم 10 دقائق هالأسبوع؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، تابع لرسالتي عن Dealix. يكمّل HubSpot — يرد على الـ leads قبل ما تبرد. Pilot 7 أيام؟", - "followup_5d": "آخر متابعة — لو تبون demo حي لكيف Dealix يشتغل مع HubSpot، أرسلوا 'demo'.", - "fit_score": 88, - "risk_score": 8, - }, - { - "company": "Rewaa", - "contact_name": "فريق رواء", - "contact_email": "info@rewaatech.com", - "contact_phone": "", - "channel": "email", - "sector": "saas", - "subject": "الـ leads اللي تبرد قبل ما فريقكم يرد — حل سريع", - "body": """السلام عليكم فريق رواء، - -أنا سامي من Dealix. شفت إنكم تستخدمون WhatsApp widget على الموقع — ممتاز للتواصل. - -السؤال: وش يصير لما lead يرسل رسالة الساعة 11 بالليل أو الجمعة؟ ينتظر للصباح؟ - -Dealix يرد بالعربي خلال 45 ثانية 24/7، يؤهل العميل، ويحجز demo. لو عندكم 200 lead/شهر و40% تبرد = 80 فرصة ضائعة. - -Dealix يحفظ 30% = ~24 صفقة إضافية/شهر. بـ 990 ريال/شهر = ROI واضح. - -Pilot 7 أيام بـ 499 ريال مع ضمان استرداد كامل. - -10 دقائق نتكلم؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، تابع لرسالتي. كل ليلة بدون Dealix = leads تبرد. وش رأيكم بـ pilot سريع؟", - "followup_5d": "آخر متابعة — أرسلوا 'demo' لو تبون تشوفون كيف يشتغل مع WhatsApp widget.", - "fit_score": 86, - "risk_score": 5, - }, - { - "company": "BRKZ", - "contact_name": "فريق BRKZ", - "contact_email": "info@brkz.com", - "contact_phone": "", - "channel": "email", - "sector": "construction", - "subject": "فرز طلبات الأسعار تلقائياً — وفّروا 40 ساعة/شهر", - "body": """السلام عليكم فريق BRKZ، - -أنا سامي من Dealix. شركات المقاولات مثلكم تستقبل طلبات عروض أسعار يومياً. - -المشكلة: فرز الطلبات الجادة من غيرها ياخذ ساعات من المهندسين — وقت المفروض يُصرف في التنفيذ. - -لو فريقكم يقضي 2 ساعة/يوم في فرز الطلبات = 40 ساعة/شهر = ~8,000 ريال من وقت الفريق. - -Dealix يستقبل الطلب، يسأل 3 أسئلة تأهيل (نوع المشروع، الميزانية، الجدول)، ويصنّف الجدية تلقائياً. يوفّر 80% من وقت الفرز = ~6,400 ريال/شهر. ROI: 6.5x. - -Pilot 7 أيام بـ 499 ريال مع ضمان استرداد. - -10 دقائق نتكلم؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، تابع لرسالتي. كل طلب عرض سعر ما يُتابع = فرصة تروح للمنافس. Pilot 7 أيام؟", - "followup_5d": "آخر متابعة — لو تبون تشوفون كيف Dealix يفرز طلبات الأسعار تلقائياً، أرسلوا 'demo'.", - "fit_score": 84, - "risk_score": 5, - }, - { - "company": "Qoyod", - "contact_name": "فريق قيود", - "contact_email": "info@qoyod.com", - "contact_phone": "", - "channel": "email", - "sector": "saas", - "subject": "الـ leads اللي تجيكم من الموقع — كم واحد يبرد؟", - "body": """السلام عليكم فريق قيود، - -أنا سامي من Dealix. شفت إنكم تستخدمون HubSpot + WhatsApp — pipeline ممتاز. - -سؤال واحد: كم lead يجيكم من الموقع ويبرد قبل ما أحد يرد؟ - -عند شركات SaaS المحاسبية: 30-50% تبرد خلال 24 ساعة. الحل مو توظيف أكثر — الحل رد فوري بالعربي. - -Dealix يرد خلال 45 ثانية، يسأل عن حجم الشركة ونوع النشاط، ويحجز demo. يشتغل مع HubSpot. - -990 ريال/شهر. Pilot 7 أيام بـ 499 ريال مع ضمان استرداد. - -وقتكم 10 دقائق؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، متابعة سريعة. Dealix + HubSpot = كل lead يُتابع فوراً. مهتمين بـ pilot؟", - "followup_5d": "آخر متابعة — أرسلوا 'demo' لو تبون تشوفون Dealix يشتغل.", - "fit_score": 85, - "risk_score": 5, - }, - { - "company": "Maqsam", - "contact_name": "فريق مقسم", - "contact_email": "info@maqsam.com", - "contact_phone": "", - "channel": "email", - "sector": "saas", - "subject": "أنتم في الاتصالات — جربوا AI SDR يرد بالعربي", - "body": """السلام عليكم فريق مقسم، - -أنا سامي من Dealix. أنتم تبنون حلول اتصالات سحابية — يعني تفهمون قيمة الرد السريع أكثر من أي أحد. - -سؤال: كم من leads موقعكم تبرد لأن فريق المبيعات مشغول بالمكالمات الحالية؟ - -Dealix = AI SDR يرد بالعربي خلال 45 ثانية على كل lead، يؤهل، ويحجز demo. يكمّل HubSpot — مو يبدّله. - -الفكرة: أنتم تبيعون أدوات اتصال. لو أضفتوا Dealix كطبقة فوق منتجكم = ميزة تنافسية. - -نتكلم 10 دقائق عن partnership أو pilot؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، متابعة. ممكن يكون في فرصة partnership — Dealix فوق مقسم = حل متكامل. مهتمين نتكلم؟", - "followup_5d": "آخر متابعة — أرسلوا 'مهتم' لو تبون نستكشف الفكرة.", - "fit_score": 82, - "risk_score": 10, - }, - { - "company": "Digital8", - "contact_name": "فريق Digital8", - "contact_email": "hello@digital8.sa", - "contact_phone": "", - "channel": "email", - "sector": "agency", - "subject": "خدمة جديدة لعملائكم — إيراد إضافي بدون تكلفة تشغيل", - "body": """السلام عليكم فريق Digital8، - -أنا سامي من Dealix. أنتم وكالة رقمية — يعني تديرون حملات لعملاء. - -المشكلة المتكررة: العميل يدفع على الإعلانات لكن يلوم الوكالة لما الـ leads ما تتحول. السبب مو الإعلان — السبب بطء المتابعة. - -Dealix يحل هذا: يرد على leads عملائكم خلال 45 ثانية بالعربي، يؤهل، ويحجز مواعيد. - -تقدمونه كخدمة جديدة: Setup 3,000 ريال + 990/شهر لكل عميل. هذا إيراد جديد لكم + عميل سعيد ما يطلع. - -Pilot مجاني لأول عميل عندكم. 7 أيام. - -10 دقائق نتكلم؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، متابعة. لو عندكم عميل واحد يعاني من متابعة leads — نجربه مجاناً. وش رأيكم؟", - "followup_5d": "آخر متابعة — وكالات ثانية بدأت تبيع Dealix كخدمة إضافية. مهتمين بالتفاصيل؟ أرسلوا 'مهتم'.", - "fit_score": 90, - "risk_score": 5, - }, - { - "company": "Floward", - "contact_name": "فريق Floward", - "contact_email": "b2b@floward.com", - "contact_phone": "", - "channel": "email", - "sector": "logistics", - "subject": "طلبات الشركات اللي ما تُتابع — كل واحد = إيراد ضائع", - "body": """السلام عليكم فريق Floward، - -أنا سامي من Dealix. عندكم قسم طلبات الشركات (B2B) — هدايا موظفين، مناسبات، عملاء VIP. - -هالطلبات تحتاج متابعة سريعة: الشركة تبي عرض سعر لـ 50 باقة قبل المناسبة. كل ساعة تأخير = احتمال يطلب من المنافس. - -Dealix يستقبل الطلب فوراً بالعربي، يسأل عن العدد والميزانية والتاريخ، ويعطي تقدير أولي. فريقكم يستلم طلب مؤهّل جاهز. - -990 ريال/شهر. Pilot 7 أيام بـ 499 ريال مع ضمان استرداد. - -وقتكم 10 دقائق؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، متابعة. كل طلب B2B ما يُتابع = إيراد يروح. Dealix يرد فوراً. مهتمين؟", - "followup_5d": "آخر متابعة — أرسلوا 'demo' لو تبون تشوفون كيف يشتغل مع طلبات الشركات.", - "fit_score": 78, - "risk_score": 8, - }, - { - "company": "Sary", - "contact_name": "فريق ساري", - "contact_email": "info@sary.sa", - "contact_phone": "", - "channel": "email", - "sector": "logistics", - "subject": "طلبات التجار اللي تضيع — حل رد فوري", - "body": """السلام عليكم فريق ساري، - -أنا سامي من Dealix. أنتم أكبر منصة B2B supply بالسعودية — يعني volume كبير من طلبات التجار. - -المشكلة عند منصات B2B: التاجر يبي رد سريع على الأسعار والتوفر. كل طلب ما يُتابع = التاجر يطلب من مورد ثاني. - -Dealix يستقبل طلبات التجار فوراً بالعربي، يسأل عن المنتج والكمية، ويعطي تقدير أولي. يحفظ 40% من الطلبات الضائعة. - -990 ريال/شهر. Pilot 7 أيام بـ 499 ريال. - -10 دقائق نتكلم؟ - -سامي عسيري -مؤسس Dealix -dealix.me - -إذا ما يناسبكم، اكتبوا 'إيقاف' ولن نتواصل مرة ثانية.""", - "followup_2d": "السلام عليكم، متابعة. حجم طلباتكم كبير — Dealix يضمن ما يضيع منها شي. مهتمين بـ pilot؟", - "followup_5d": "آخر متابعة — أرسلوا 'demo' لو تبون تشوفون Dealix يشتغل.", - "fit_score": 75, - "risk_score": 10, - }, +# === 10 EMAIL DRAFTS === +EMAILS = [ + {"company": "Peak Content", "contact_email": "hello@peakcontent.sa", "sector": "agency", "fit": 92, + "subject": "خدمة جديدة تزيد إيراد عملائكم — بدون تكلفة عليكم", + "body": "السلام عليكم فريق Peak Content،\n\nأنا سامي من Dealix. المشكلة عند كل وكالة: العميل يدفع 5-20K ريال/شهر على إعلانات لكن المتابعة ضعيفة = يلوم الوكالة.\n\nDealix يرد على leads عملائكم بالعربي خلال 45 ثانية، يؤهل، ويحجز مواعيد.\n\nتقدمونه كخدمة: Setup 3,000 + 990/شهر لكل عميل = إيراد جديد.\n\nPilot مجاني لأول عميل — 7 أيام.\n\n10 دقائق نتكلم؟\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "تابع لرسالتي عن Dealix. لو عندكم عميل يعاني من متابعة leads — نجربه مجاناً 7 أيام.", "f5": "آخر متابعة — وكالات بدأت تبيع Dealix كخدمة إضافية. أرسلوا 'مهتم' للتفاصيل."}, + {"company": "Aqar.fm", "contact_email": "info@aqar.fm", "sector": "real_estate", "fit": 95, + "subject": "300K ريال ضائعة سنوياً من استفسارات ما تُتابع", + "body": "السلام عليكم فريق عقار،\n\nأنا سامي من Dealix. 60-70% من استفسارات العقار ما تُتابع خلال ساعة = العميل يروح للمنافس.\n\n100 استفسار/شهر × 60% ضائعة × 10% تحويل × 50K = ~300K ريال ضائعة/سنة.\n\nDealix يرد خلال 45 ثانية، يسأل عن الميزانية والموقع، ويحجز جولة عرض. يحفظ 30-40% = ~120K إضافية/سنة. تكلفة 990/شهر = ROI 10x.\n\nPilot 7 أيام بـ 499 ريال مع ضمان استرداد.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "كل يوم تأخير = استفسارات تضيع. Pilot 499 ريال مع ضمان استرداد.", "f5": "آخر متابعة — أرسلوا 'demo' لنعرض كيف يرد خلال 45 ثانية."}, + {"company": "Foodics", "contact_email": "sales@foodics.com", "sector": "saas", "fit": 88, + "subject": "leads موقعكم تبرد — حل يرد بالعربي خلال 45 ثانية", + "body": "السلام عليكم فريق Foodics،\n\nأنا سامي من Dealix. شفت إنكم تستخدمون HubSpot + WhatsApp.\n\n30-50% من leads SaaS تبرد خلال 24 ساعة. 200 lead/شهر × 40% بارد × 5% تحويل × 5K = 20K ضائعة/شهر.\n\nDealix يرد بالعربي خلال 45 ثانية، يؤهل، ويحجز demo. يكمّل HubSpot مو يبدّله.\n\nيحفظ 30% = ~6K إضافية/شهر. ROI 6x.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "يكمّل HubSpot — يرد قبل ما الـ leads تبرد. Pilot 7 أيام؟", "f5": "أرسلوا 'demo' لنعرض كيف يشتغل مع HubSpot."}, + {"company": "Rewaa", "contact_email": "info@rewaatech.com", "sector": "saas", "fit": 86, + "subject": "الـ leads اللي تبرد بالليل والويكند — حل 24/7", + "body": "السلام عليكم فريق رواء،\n\nأنا سامي من Dealix. عندكم WhatsApp widget — ممتاز. بس وش يصير لما lead يرسل الساعة 11 بالليل؟\n\nDealix يرد 24/7 بالعربي خلال 45 ثانية، يؤهل، ويحجز demo.\n\n990 ريال/شهر. Pilot 499 ريال مع ضمان استرداد.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "كل ليلة بدون Dealix = leads تبرد. pilot سريع؟", "f5": "أرسلوا 'demo' لنعرض كيف يشتغل."}, + {"company": "BRKZ", "contact_email": "info@brkz.com", "sector": "construction", "fit": 84, + "subject": "فرز طلبات الأسعار تلقائياً — وفّروا 40 ساعة/شهر", + "body": "السلام عليكم فريق BRKZ،\n\nأنا سامي من Dealix. فرز طلبات عروض الأسعار ياخذ 2 ساعة/يوم = 40 ساعة/شهر = ~8K ريال.\n\nDealix يستقبل الطلب، يسأل 3 أسئلة تأهيل، ويصنّف الجدية. يوفّر 80% = ~6.4K/شهر. ROI 6.5x.\n\nPilot 499 ريال مع ضمان استرداد.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "كل طلب ما يُتابع = فرصة تروح للمنافس. Pilot 7 أيام؟", "f5": "أرسلوا 'demo' لنعرض فرز الطلبات."}, + {"company": "Qoyod", "contact_email": "info@qoyod.com", "sector": "saas", "fit": 85, + "subject": "كم lead يجيكم ويبرد قبل ما أحد يرد؟", + "body": "السلام عليكم فريق قيود،\n\nأنا سامي من Dealix. عند شركات SaaS: 30-50% تبرد خلال 24 ساعة.\n\nDealix يرد خلال 45 ثانية بالعربي، يسأل عن حجم الشركة، ويحجز demo. يشتغل مع HubSpot.\n\n990/شهر. Pilot 499 ريال مع ضمان.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "Dealix + HubSpot = كل lead يُتابع فوراً. مهتمين؟", "f5": "أرسلوا 'demo' لنعرض."}, + {"company": "Maqsam", "contact_email": "info@maqsam.com", "sector": "saas", "fit": 82, + "subject": "أنتم في الاتصالات — جربوا AI SDR يرد بالعربي", + "body": "السلام عليكم فريق مقسم،\n\nأنا سامي من Dealix. أنتم تفهمون الرد السريع أكثر من أي أحد.\n\nDealix = AI SDR يرد بالعربي خلال 45 ثانية، يؤهل، ويحجز demo.\n\nالفكرة: Dealix فوق مقسم = حل متكامل. Partnership أو pilot؟\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "Dealix فوق مقسم = حل متكامل. مهتمين نتكلم؟", "f5": "أرسلوا 'مهتم' لنستكشف."}, + {"company": "Digital8", "contact_email": "hello@digital8.sa", "sector": "agency", "fit": 90, + "subject": "خدمة جديدة لعملائكم — إيراد إضافي", + "body": "السلام عليكم فريق Digital8،\n\nأنا سامي من Dealix. العميل يدفع على الإعلانات لكن يلوم الوكالة لما leads ما تتحول. السبب: بطء المتابعة.\n\nDealix يرد خلال 45 ثانية بالعربي. تقدمونه كخدمة: Setup 3K + 990/شهر لكل عميل.\n\nPilot مجاني لأول عميل. 7 أيام.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "عندكم عميل يعاني من leads؟ نجربه مجاناً.", "f5": "وكالات بدأت تبيع Dealix. أرسلوا 'مهتم'."}, + {"company": "Floward", "contact_email": "b2b@floward.com", "sector": "logistics", "fit": 78, + "subject": "طلبات الشركات B2B — كل واحد ما يُتابع = إيراد ضائع", + "body": "السلام عليكم فريق Floward،\n\nأنا سامي من Dealix. طلبات B2B (هدايا، مناسبات) تحتاج رد سريع. كل تأخير = يطلب من المنافس.\n\nDealix يستقبل الطلب فوراً، يسأل عن العدد والميزانية والتاريخ. فريقكم يستلم طلب مؤهّل.\n\n990/شهر. Pilot 499 ريال.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "كل طلب B2B ما يُتابع = إيراد يروح. مهتمين؟", "f5": "أرسلوا 'demo'."}, + {"company": "Sary", "contact_email": "info@sary.sa", "sector": "logistics", "fit": 75, + "subject": "طلبات التجار اللي تضيع — رد فوري", + "body": "السلام عليكم فريق ساري،\n\nأنا سامي من Dealix. كل طلب تاجر ما يُتابع = يطلب من مورد ثاني.\n\nDealix يرد فوراً بالعربي، يسأل عن المنتج والكمية. يحفظ 40% من الضائع.\n\n990/شهر. Pilot 499 ريال.\n\nسامي عسيري — مؤسس Dealix\ndealix.me\n\nإذا ما يناسبكم، اكتبوا 'إيقاف'.", + "f2": "حجم طلباتكم كبير — Dealix يضمن ما يضيع. pilot؟", "f5": "أرسلوا 'demo'."}, +] + +# === 10 WHATSAPP DRAFTS (shorter, direct) === +WHATSAPP = [ + {"company": "Peak Content", "phone": "", "sector": "agency", "fit": 92, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. عندنا نظام يرد على leads عملاء الوكالات خلال 45 ثانية بالعربي.\n\nتقدرون تقدمونه كخدمة لعملائكم (990 ريال/شهر لكل عميل).\n\nPilot مجاني لأول عميل. مهتمين؟"}, + {"company": "Aqar.fm", "phone": "", "sector": "real_estate", "fit": 95, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. 60% من استفسارات العقار تضيع بسبب تأخر الرد.\n\nDealix يرد خلال 45 ثانية ويحجز جولة عرض تلقائياً.\n\nPilot 7 أيام بـ 499 ريال مع ضمان استرداد. مهتمين؟"}, + {"company": "Foodics", "phone": "", "sector": "saas", "fit": 88, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. شفت إنكم تستخدمون HubSpot.\n\nDealix يرد على leads موقعكم خلال 45 ثانية بالعربي ويحجز demo. يكمّل HubSpot.\n\n10 دقائق نتكلم؟"}, + {"company": "Rewaa", "phone": "", "sector": "saas", "fit": 86, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. عندكم WhatsApp widget — بس وش يصير لما lead يرسل بالليل؟\n\nDealix يرد 24/7 خلال 45 ثانية. Pilot 499 ريال. مهتمين؟"}, + {"company": "BRKZ", "phone": "", "sector": "construction", "fit": 84, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. فرز طلبات الأسعار عندكم ياخذ وقت المهندسين.\n\nDealix يفرز تلقائياً — يسأل 3 أسئلة ويصنّف الجدية. يوفّر 80% من الوقت.\n\nPilot 499 ريال. مهتمين؟"}, + {"company": "Salla", "phone": "", "sector": "saas", "fit": 88, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. تجار سلة يحتاجون رد سريع على استفسارات العملاء.\n\nDealix يرد خلال 45 ثانية بالعربي ويؤهل العميل. ممكن يكون إضافة على منصتكم.\n\nمهتمين نتكلم partnership؟"}, + {"company": "Zid", "phone": "", "sector": "saas", "fit": 85, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. تجار زد يخسرون طلبات بسبب بطء الرد.\n\nDealix يرد فوراً ويؤهل. ممكن يكون إضافة على منصتكم.\n\npartnership أو pilot؟"}, + {"company": "Lean Technologies", "phone": "", "sector": "saas", "fit": 80, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. فريق مبيعات صغير + leads كثيرة = فرص تضيع.\n\nDealix يرد بالعربي خلال 45 ثانية ويحجز demo تلقائياً.\n\nPilot 7 أيام؟"}, + {"company": "Lucidya", "phone": "", "sector": "saas", "fit": 83, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. شفت عندكم 4 أدوات GTM.\n\nDealix يكمّل الـ stack — يرد على leads خلال 45 ثانية بالعربي قبل ما تبرد.\n\n10 دقائق نتكلم؟"}, + {"company": "HyperPay", "phone": "", "sector": "saas", "fit": 79, + "body": "السلام عليكم 👋\n\nأنا سامي من Dealix. استفسارات التجار عن بوابة الدفع تحتاج رد سريع.\n\nDealix يرد فوراً بالعربي ويؤهل التاجر.\n\nPilot 499 ريال. مهتمين؟"}, ] async def seed(): - """Insert drafts directly into DB.""" os.environ.setdefault("DATABASE_URL", "") from app.database import async_session, init_db from app.models.outreach_draft import OutreachDraft - import uuid - from datetime import datetime, timezone await init_db() + now = datetime.now(timezone.utc) + batch_id = f"founder_batch_{now.strftime('%Y%m%d_%H%M')}" + count = 0 async with async_session() as session: - batch_id = f"founder_batch_{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M')}" - for item in BATCH: - draft = OutreachDraft( - id=uuid.uuid4(), - company=item["company"], - contact_name=item["contact_name"], - contact_email=item["contact_email"], - contact_phone=item.get("contact_phone", ""), - channel=item["channel"], - subject=item["subject"], - body=item["body"], - followup_2d=item["followup_2d"], - followup_5d=item["followup_5d"], - sector=item["sector"], - pain_hypothesis=f"sector:{item['sector']}", - fit_score=item["fit_score"], - risk_score=item["risk_score"], - status="draft", - approval_required=True, - batch_id=batch_id, - created_at=datetime.now(timezone.utc), - ) - session.add(draft) - await session.commit() - print(f"✅ Seeded {len(BATCH)} drafts — batch_id: {batch_id}") - print(f" Companies: {', '.join(d['company'] for d in BATCH)}") - print(f"\n Next: GET /api/v1/drafts?status=draft to review") - print(f" POST /api/v1/drafts/approve-batch to approve") - print(f" POST /api/v1/drafts/send-approved-batch to send") + for e in EMAILS: + session.add(OutreachDraft( + id=uuid.uuid4(), company=e["company"], contact_name=f"فريق {e['company']}", + contact_email=e["contact_email"], contact_phone="", channel="email", + subject=e["subject"], body=e["body"], followup_2d=e["f2"], followup_5d=e["f5"], + sector=e["sector"], pain_hypothesis=f"sector:{e['sector']}", + fit_score=e["fit"], risk_score=5, status="draft", approval_required=True, + batch_id=batch_id, created_at=now)) + count += 1 + for w in WHATSAPP: + session.add(OutreachDraft( + id=uuid.uuid4(), company=w["company"], contact_name=f"فريق {w['company']}", + contact_email="", contact_phone=w["phone"], channel="whatsapp", + subject="", body=w["body"], followup_2d="", followup_5d="", + sector=w["sector"], pain_hypothesis=f"sector:{w['sector']}", + fit_score=w["fit"], risk_score=5, status="draft", approval_required=True, + batch_id=batch_id, created_at=now)) + count += 1 + + await session.commit() + print(f"✅ Seeded {count} drafts (10 email + 10 WhatsApp)") + print(f" Batch: {batch_id}") + print(f"\n Review: GET /api/v1/drafts?status=draft") + print(f" Approve: POST /api/v1/drafts/approve-batch") + print(f" Send: POST /api/v1/drafts/send-approved-batch?channel=email&batch_size=5") if __name__ == "__main__": asyncio.run(seed())