diff --git a/salesflow-saas/backend/app/api/v1/founder_outreach.py b/salesflow-saas/backend/app/api/v1/founder_outreach.py new file mode 100644 index 00000000..3dacb2ec --- /dev/null +++ b/salesflow-saas/backend/app/api/v1/founder_outreach.py @@ -0,0 +1,217 @@ +"""Founder Outreach — hyper-personalized emails from Sami as founder. + +Each email researches the company's weakness, estimates lost revenue, +and writes a personal message showing exact ROI Dealix can deliver. +""" + +from __future__ import annotations + +import logging +from datetime import datetime, timezone +from typing import Any, Dict, List, Optional + +from fastapi import APIRouter +from pydantic import BaseModel + +logger = logging.getLogger("dealix.founder_outreach") + +router = APIRouter(prefix="/founder-outreach", tags=["Founder Outreach"]) + +SECTOR_WEAKNESS_MAP = { + "real_estate": { + "weakness_ar": "شركات العقار تستقبل 50-200 استفسار/شهر عن الأسعار والمواقع. المشكلة: 60-70% ما يُتابع خلال أول ساعة = العميل يروح للمنافس", + "weakness_en": "Real estate companies receive 50-200 inquiries/month about prices and locations. Problem: 60-70% don't get a response within the first hour = client goes to competitor", + "revenue_loss_ar": "لو عندكم 100 استفسار/شهر و60% تضيع = 60 فرصة ضائعة. لو 10% منها كانت بتتحول = 6 صفقات × متوسط 50,000 ريال = ~300,000 ريال ضائعة سنوياً", + "revenue_loss_en": "If you get 100 inquiries/month and 60% are lost = 60 missed opportunities. If 10% would convert = 6 deals × avg 50,000 SAR = ~300,000 SAR lost annually", + "dealix_impact_ar": "Dealix يرد خلال 45 ثانية ويحفظ 30-40% من الفرص الضائعة = ~120,000 ريال إضافية/سنة. تكلفة Dealix = 990 ريال/شهر = ROI 10x", + "dealix_impact_en": "Dealix responds in 45 seconds and saves 30-40% of lost opportunities = ~120,000 SAR additional/year. Dealix costs 990 SAR/month = 10x ROI", + }, + "construction": { + "weakness_ar": "شركات المقاولات تستقبل طلبات عروض أسعار يومياً. المشكلة: فرز الطلبات الجادة من غيرها ياخذ ساعات من المهندسين — وقت ممكن يُصرف في التنفيذ", + "weakness_en": "Construction companies receive quote requests daily. Problem: Sorting serious from non-serious requests takes hours of engineer time", + "revenue_loss_ar": "لو فريق المبيعات يقضي 2 ساعة/يوم في فرز الطلبات = 40 ساعة/شهر = تكلفة ~8,000 ريال/شهر من وقت الفريق", + "revenue_loss_en": "If sales team spends 2 hours/day sorting requests = 40 hours/month = ~8,000 SAR/month in team time cost", + "dealix_impact_ar": "Dealix يستقبل الطلب، يسأل 3 أسئلة تأهيل، ويصنّف الجدية تلقائياً. يوفّر 80% من وقت الفرز = ~6,400 ريال/شهر. ROI: 6.5x", + "dealix_impact_en": "Dealix receives requests, asks 3 qualifying questions, and auto-classifies urgency. Saves 80% of sorting time = ~6,400 SAR/month. ROI: 6.5x", + }, + "hospitality": { + "weakness_ar": "الفنادق والقاعات تستقبل استفسارات حجز يومياً. المشكلة: كل ساعة تأخير = احتمال 50% العميل يحجز عند المنافس", + "weakness_en": "Hotels and event venues receive booking inquiries daily. Problem: every hour of delay = 50% chance the client books with a competitor", + "revenue_loss_ar": "لو 10 استفسارات/أسبوع تضيع بسبب تأخر الرد × متوسط حجز 5,000 ريال = 200,000 ريال ضائعة/سنة", + "revenue_loss_en": "If 10 inquiries/week are lost due to slow response × avg booking 5,000 SAR = 200,000 SAR lost/year", + "dealix_impact_ar": "Dealix يرد فوراً، يسأل عن التاريخ والعدد والميزانية، ويحجز مبدئي. يحفظ 40% من الحجوزات الضائعة = ~80,000 ريال/سنة", + "dealix_impact_en": "Dealix responds instantly, asks about date, guest count, and budget, and makes a preliminary booking. Saves 40% of lost bookings = ~80,000 SAR/year", + }, + "agency": { + "weakness_ar": "الوكالات تصرف على إعلانات عملائها لكن المتابعة على الـ leads ضعيفة. النتيجة: العميل يلوم الوكالة على ضعف النتائج", + "weakness_en": "Agencies spend on client ads but lead follow-up is weak. Result: client blames agency for poor results", + "revenue_loss_ar": "كل عميل وكالة يدفع 5,000-20,000 ريال/شهر. لو عميل واحد يطلع بسبب ضعف المتابعة = خسارة 60,000-240,000 ريال/سنة", + "revenue_loss_en": "Each agency client pays 5,000-20,000 SAR/month. If one client leaves due to poor follow-up = loss of 60,000-240,000 SAR/year", + "dealix_impact_ar": "Dealix يصير خدمة جديدة تبيعونها: رد ذكي + تأهيل + حجز. Setup fee 3,000 + MRR 990/عميل = إيراد جديد بدل خسارة عميل", + "dealix_impact_en": "Dealix becomes a new service you sell: smart response + qualification + booking. Setup fee 3,000 + MRR 990/client = new revenue instead of losing a client", + }, + "saas": { + "weakness_ar": "شركات SaaS تجيها leads من الموقع والإعلانات لكن فريق المبيعات صغير. المشكلة: 30-50% من الـ leads تبرد خلال أول 24 ساعة", + "weakness_en": "SaaS companies get leads from website and ads but sales team is small. Problem: 30-50% of leads go cold within 24 hours", + "revenue_loss_ar": "لو 200 lead/شهر و40% تبرد = 80 lead ضائع. لو 5% كانت بتشتري × متوسط 5,000 ريال/سنة = 20,000 ريال ضائعة/شهر", + "revenue_loss_en": "If 200 leads/month and 40% go cold = 80 lost leads. If 5% would buy × avg 5,000 SAR/year = 20,000 SAR lost/month", + "dealix_impact_ar": "Dealix يرد بالعربي خلال 45 ثانية على كل lead، يؤهل، ويحجز demo. يحفظ 30% من الضائع = ~6,000 ريال إضافية/شهر. ROI: 6x", + "dealix_impact_en": "Dealix responds in Arabic within 45 seconds to every lead, qualifies, and books demos. Saves 30% of lost leads = ~6,000 SAR additional/month. ROI: 6x", + }, + "logistics": { + "weakness_ar": "شركات الشحن تستقبل طلبات أسعار متكررة. المشكلة: كل طلب ما يُتابع = شحنة تروح للمنافس مباشرة", + "weakness_en": "Shipping companies receive repeated quote requests. Problem: every unfollowed request = shipment goes directly to competitor", + "revenue_loss_ar": "لو 5 طلبات/أسبوع تضيع × متوسط 3,000 ريال/شحنة = 60,000 ريال ضائعة/شهر", + "revenue_loss_en": "If 5 requests/week are lost × avg 3,000 SAR/shipment = 60,000 SAR lost/month", + "dealix_impact_ar": "Dealix يستقبل الطلب، يسأل عن نوع الشحنة والوجهة، ويعطي تقدير أولي فوراً. يحفظ 40% = ~24,000 ريال/شهر", + "dealix_impact_en": "Dealix receives requests, asks about shipment type and destination, gives instant estimate. Saves 40% = ~24,000 SAR/month", + }, +} + + +class FounderEmailRequest(BaseModel): + company: str + sector: str + contact_name: str = "" + contact_email: str = "" + city: str = "" + website: str = "" + signals: List[str] = [] + language: str = "ar" + estimated_monthly_leads: int = 100 + + +@router.post("/generate") +async def generate_founder_email(req: FounderEmailRequest) -> Dict[str, Any]: + """Generate a hyper-personalized founder email that targets the company's weakness.""" + sector_data = SECTOR_WEAKNESS_MAP.get(req.sector, SECTOR_WEAKNESS_MAP.get("saas", {})) + lang = req.language + + if lang == "en": + return _build_en(req, sector_data) + + name = req.contact_name or f"فريق {req.company}" + weakness = sector_data.get("weakness_ar", "") + revenue_loss = sector_data.get("revenue_loss_ar", "") + impact = sector_data.get("dealix_impact_ar", "") + + signal_line = "" + if "hubspot" in [s.lower() for s in req.signals]: + signal_line = f"شفت إن {req.company} تستخدمون HubSpot — يعني عندكم leads تجي من الموقع. " + elif "whatsapp_widget" in [s.lower() for s in req.signals]: + signal_line = f"لاحظت إن عندكم واتساب كقناة رئيسية للعملاء. " + + subject = f"{name} — فرصة توفير {req.estimated_monthly_leads * 50} ريال/شهر لـ {req.company}" + + body = f"""مرحباً {name}، + +أنا سامي العسيري، مؤسس Dealix. + +{signal_line}أكتب لك شخصياً لأن لاحظت شي مهم عن {req.company}: + +📊 المشكلة: +{weakness} + +💰 التكلفة الحقيقية: +{revenue_loss} + +🎯 الحل: +{impact} + +ما أبي أبيعك شي الحين — أبي أوريك بالأرقام. + +نسوي pilot 7 أيام على leads حقيقية عندكم: +• نرد على كل استفسار خلال 45 ثانية +• نسأل أسئلة التأهيل المهمة لقطاعكم +• نحجز المواعيد أو نحوّل للمبيعات +• نرسل تقرير يومي بالنتائج + +السعر: 499 ريال فقط (مع ضمان استرداد كامل). + +يناسبك 15 دقيقة هذا الأسبوع أوريك النظام على سيناريو من شغلكم؟ +📅 calendly.com/sami-assiri11/dealix-demo + +وإذا عندك سؤال — رد على هالإيميل مباشرة. أنا شخصياً أرد. + +سامي العسيري +مؤسس Dealix +dealix.me ++966 59 778 8539 + +إذا ما يناسبكم هالنوع من الرسائل، اكتبوا "إيقاف" وما بنتواصل مرة ثانية.""" + + return { + "type": "founder_personal", + "company": req.company, + "language": "ar", + "subject": subject, + "body": body, + "weakness_targeted": weakness[:100], + "revenue_loss_estimate": revenue_loss[:100], + "dealix_roi": impact[:100], + "opt_out_included": True, + "word_count": len(body.split()), + } + + +def _build_en(req: FounderEmailRequest, sector_data: Dict) -> Dict[str, Any]: + name = req.contact_name or f"{req.company} team" + weakness = sector_data.get("weakness_en", "") + revenue_loss = sector_data.get("revenue_loss_en", "") + impact = sector_data.get("dealix_impact_en", "") + + signal_line = "" + if "hubspot" in [s.lower() for s in req.signals]: + signal_line = f"I noticed {req.company} uses HubSpot — meaning you have leads coming from your website. " + + subject = f"{name} — opportunity to save {req.estimated_monthly_leads * 50} SAR/month for {req.company}" + + body = f"""Hi {name}, + +I'm Sami Alassiri, founder of Dealix. + +{signal_line}I'm writing personally because I noticed something important about {req.company}: + +📊 The Problem: +{weakness} + +💰 The Real Cost: +{revenue_loss} + +🎯 The Solution: +{impact} + +I'm not trying to sell you anything right now — I want to show you with numbers. + +We'll run a 7-day pilot on your actual leads: +• Respond to every inquiry within 45 seconds +• Ask the right qualifying questions for your industry +• Book meetings or route to sales +• Send you a daily results report + +Price: 499 SAR only (with full money-back guarantee). + +Do you have 15 minutes this week? I'll show you the system on a scenario from your business. +📅 calendly.com/sami-assiri11/dealix-demo + +Questions? Reply to this email directly. I personally respond. + +Sami Alassiri +Founder, Dealix +dealix.me ++966 59 778 8539 + +To stop receiving these emails, reply "STOP".""" + + return { + "type": "founder_personal", + "company": req.company, + "language": "en", + "subject": subject, + "body": body, + "weakness_targeted": weakness[:100], + "revenue_loss_estimate": revenue_loss[:100], + "dealix_roi": impact[:100], + "opt_out_included": True, + "word_count": len(body.split()), + } diff --git a/salesflow-saas/backend/app/api/v1/router.py b/salesflow-saas/backend/app/api/v1/router.py index a1aca09a..de0b55d4 100644 --- a/salesflow-saas/backend/app/api/v1/router.py +++ b/salesflow-saas/backend/app/api/v1/router.py @@ -152,3 +152,7 @@ api_router.include_router(followups_router.router) # ── Full OS — unified deal lifecycle orchestration ───────────── from app.api.v1 import full_os as full_os_router api_router.include_router(full_os_router.router) + +# ── Founder Outreach — hyper-personalized founder emails ─────── +from app.api.v1 import founder_outreach as founder_outreach_router +api_router.include_router(founder_outreach_router.router)