system-prompts-and-models-o.../dealix/auto_client_acquisition/vertical_os/logistics.py
2026-05-01 14:03:52 +03:00

99 lines
5.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Dealix Logistics OS — productized vertical for shipping & 3PL."""
from __future__ import annotations
from auto_client_acquisition.vertical_os.base import KPI, MessageTemplate, VerticalOS, _register
LOGISTICS = VerticalOS(
vertical_id="logistics",
sector_ar="شحن ولوجستيات",
sector_en="Logistics & Shipping",
icp_company_size=("mid", "large"),
icp_cities=("الرياض", "جدة", "الدمام", "الخبر"),
icp_keywords=("شحن", "نقل", "لوجستيات", "logistics", "3PL", "fulfillment"),
pain_points_ar=(
"RFQs عبر إيميلات طويلة بدون متابعة سريعة",
"زمن الـ quote 3+ أيام — يخسرون لصالح المنافسين",
"اعتماد على القطاع الحكومي فقط — تذبذب",
"صعوبة دخول قطاعات جديدة (e-commerce, F&B)",
),
top_objection_ids=("OBJ_COMPETITOR_001", "OBJ_PRICE_001", "OBJ_TRUST_002"),
priority_signals=(
"tender_published",
"hiring_sales_rep",
"new_service_launched",
"ads_volume_increased",
),
dashboard_kpis=(
KPI("rfqs_per_month", "RFQs شهرياً", "إجمالي طلبات العروض المؤهلة", "rfq", True, 30, 100),
KPI("avg_quote_time_hours", "متوسط زمن الـ quote", "من استلام الطلب إلى إرسال العرض", "ساعة", False, 48, 1),
KPI("rfq_to_won_rate", "نسبة فوز RFQ", "نسبة الـ RFQs التي تتحول لعقود", "%", True, 0.18, 0.40),
KPI("avg_contract_value_sar", "متوسط قيمة العقد", "السنوية", "ريال", True, 80_000, 200_000),
KPI("client_concentration_top3_pct", "تركّز العملاء (top 3)", "نسبة الإيراد من أكبر 3 عملاء", "%", False, 0.60, 0.30),
),
message_templates=(
MessageTemplate(
template_id="logistics_email_tender",
channel="email",
purpose="cold",
subject_ar="بخصوص مناقصة {tender_title}",
body_ar=(
"السلام عليكم {first_name}،\n\n"
"لاحظنا منشور مناقصة {tender_title} في {city} بـ deadline {deadline}. "
"Dealix يساعد شركات لوجستيات سعودية على pre-qualification + جمع 5 موردين بدائل + "
"Bid response في {response_hours} ساعة بدلاً من أيام.\n\n"
"هل تفضلون عرض 15 دقيقة قبل الإثنين؟"
),
variables=("first_name", "tender_title", "city", "deadline", "response_hours"),
expected_reply_rate=0.08,
),
MessageTemplate(
template_id="logistics_wa_hiring",
channel="whatsapp",
purpose="cold",
subject_ar=None,
body_ar=(
"السلام عليكم {first_name}،\n"
"رأيت إعلانكم لتوظيف commercial reps. السؤال السريع: "
"متوسط زمن الـ quote عندكم اليوم كم يوم؟ شركات لوجستيات في {city} "
"قطعت زمن الـ quote من 3 أيام إلى ساعة عبر Dealix — "
"RFQs المؤهلة زادت 3×. مهتم نشوف؟"
),
variables=("first_name", "city"),
expected_reply_rate=0.09,
),
),
proposal_template_ar=(
"## عرض Dealix Logistics لـ {company_name}\n\n"
"**الهدف:** 100 RFQ مؤهل شهرياً + زمن الـ quote <1 ساعة\n\n"
"### الخدمة\n"
"- اكتشاف يومي للمناقصات الحكومية + خاصة (saudi tender feed + corporate RFPs)\n"
"- ICP match + budget verification قبل الـ quote\n"
"- Quote auto-draft من template مدمج بـ pricing engine\n"
"- Multi-channel reach (email + WhatsApp) للمشترين\n"
"- Dashboard للـ commercial director: rfqs / response_time / win_rate / pipeline\n\n"
"### السعر: {price_sar} ريال/شهر · success fee 5% على عقود +500K ريال\n"
),
qbr_section_template_ar=(
"## QBR — {customer_name}{period}\n\n"
"- RFQs مؤهلة: {rfqs}\n"
"- متوسط زمن الـ quote: {quote_hours} ساعة\n"
"- العقود الموقّعة: {contracts}\n"
"- إيراد محسوم: {revenue_sar:,.0f} ريال\n"
"- Pipeline: {pipeline_sar:,.0f} ريال\n"
),
avg_deal_value_sar=120_000,
avg_cycle_days=35,
benchmark_reply_rate=0.068,
benchmark_meeting_rate=0.30,
benchmark_win_rate=0.22,
compliance_notes_ar=(
"بيانات الشحنات قد تحتوي على معلومات تجارية حساسة — لا تشاركها مع subprocessors بدون DPA.",
"تواصلات المناقصات الحكومية تخضع لسياسة منصة اعتماد.",
),
recommended_channel_mix={"email": 0.45, "whatsapp": 0.35, "linkedin": 0.10, "phone": 0.10},
)
_register(LOGISTICS)