CRM/docs/P2_PROFESSIONAL_CRM_FA.md

6.4 KiB
خام سرزنش تاریخچه

راهنمای فاز P2 — CRM حرفه‌ای

این فاز قابلیت‌های حرفه‌ای فروش را روی پایه امن P0/P1 اضافه می‌کند. داشبوردهای نقش‌محور حذف یا جایگزین نشده‌اند و مسیر / همچنان پس از ورود، داشبورد مجاز کاربر را نمایش می‌دهد.

قابلیت‌های تحویل‌شده

  • داشبورد: حفظ داشبوردهای Admin/Supervisor/Agent، refresh دستی و دوره‌ای، loading و error/retry واقعی، و ترجیحات شخصی ویجت‌ها.
  • فرصت فروش: چند پایپ‌لاین و چند مرحله، برد کانبان، مجموع ارزش مرحله، ارزش وزنی، workspace جزئیات، تاریخچه مرحله، بستن موفق/ناموفق با دلیل و مبلغ نهایی، و optimistic locking با version.
  • بهره‌وری: جست‌وجوی سراسری scopeشده برای Lead/Deal/Company/Contact/Call، نماهای ذخیره‌شده private/team/public، و ترجیحات اعلان و داشبورد.
  • هوشمندی: امتیازدهی deterministic لید با breakdown و سطح cold/warm/hot، SLA برای اولین تماس، پیگیری و فرصت راکد، تشخیص idempotent و اعلان قابل mute.
  • پیکربندی: اتوماسیون محدود و قابل audit برای ایجاد Task، اعلان و تغییر اولویت لید؛ triggerهای واقعی lead_created، lead_scored، deal_stage_changed و sla_breached؛ سقف اجرا و event key ضدتکرار.
  • فیلد سفارشی: تعریف فیلد برای Lead/Deal/Company/Contact با نوع‌های متنی، عددی، تاریخ، boolean و انتخابی؛ ذخیره typed و indexپذیر و کنترل visibility نقش.
  • کیفیت و اسکریپت: strengths/improvement areas، acknowledgement کارشناس و پاسخ او، metadata اسکریپت شامل category/source/questions/disclosures/template و جست‌وجوی سروری.
  • گزارش و اعلان: گزارش عملیات فروش شامل pipeline/forecast/won/SLA/task، فیلتر اعلان خوانده‌نشده و لینک ترجیحات.

مسیرهای UI

  • / داشبورد نقش‌محور و صفحه پیش‌فرض
  • /deals برد فرصت‌ها
  • /deals/{id} workspace فرصت و تاریخچه مرحله
  • /operations مرکز SLA، اتوماسیون، فیلد سفارشی و ترجیحات
  • /reports تب «عملیات فروش و SLA»
  • /sales-scripts اسکریپت‌های توسعه‌یافته
  • /quality-reviews ارزیابی و acknowledgement

جست‌وجوی سراسری در Header با Ctrl+K در دسترس است.

APIهای اصلی

حوزه Endpointهای اصلی
Pipeline GET /api/pipelines, POST /api/pipelines, GET /api/pipelines/{id}/board, PATCH /api/deals/{id}/stage
Search/View GET /api/global-search, GET/POST/DELETE /api/saved-views
Preferences GET/PUT /api/workspace-preferences
Scoring/SLA POST /api/leads/{id}/score, POST /api/leads/bulk-score, GET/POST /api/sla-rules, POST /api/sla/detect, PATCH /api/sla-breaches/{id}/resolve
Automation GET/POST /api/automations, POST /api/automations/{id}/run, GET /api/automation-runs
Custom fields GET/POST /api/custom-fields, GET/PUT /api/custom-field-values/{type}/{id}
QA POST /api/quality-reviews/{id}/acknowledge
Reports GET /api/reports/operations

تمام endpointهای رکوردی مجوز و scope مالک/تیم را در backend اعمال می‌کنند. مخفی‌کردن کنترل در UI جایگزین authorization سرور نیست.

مجوزهای جدید

view_pipelines, manage_pipelines, move_deals, close_deals, manage_saved_views, share_team_views, use_global_search, score_leads, view_sla, manage_sla, manage_automations, view_automation_logs, manage_custom_fields, acknowledge_quality_reviews, manage_dashboard_preferences, manage_notification_preferences.

بعد از deploy این فرمان را اجرا کنید تا permissionهای جدید ساخته و نقش‌های پیش‌فرض همگام شوند:

php artisan permissions:sync-defaults

Scheduler و عملیات

پایش SLA هر ۱۵ دقیقه در scheduler ثبت شده و از withoutOverlapping و event key یکتا استفاده می‌کند. اجرای دستی و idempotent:

php artisan sla:monitor

در production اجرای php artisan schedule:run در هر دقیقه الزامی است. اعلان SLA ترجیح notification_type=sla را رعایت می‌کند.

مهاجرت و rollback

پنج migration این فاز با prefixهای 030000 تا 034000 به‌ترتیب pipeline، preferences، scoring/SLA، automation/custom fields و QA/scripts را ایجاد می‌کنند.

پیش از migration از دیتابیس backup بگیرید:

php artisan migrate --force
php artisan permissions:sync-defaults

برای rollback کامل P2 در محیط کنترل‌شده، آخرین پنج migration را برگردانید:

php artisan migrate:rollback --step=5 --force

Rollback جدول‌ها و ستون‌های P2 را حذف می‌کند؛ در production بازیابی داده‌های pipeline/history/custom fields باید از backup انجام شود. ابتدا روی staging تمرین شود.

کنترل کیفیت

cd backend
php artisan test
vendor\bin\pint --test

cd ..\frontend
npm run lint
npm run test:run
npm run build
npm run test:e2e

تست ProfessionalCrmP2Test scope تیم، بستن فرصت و version conflict، audit، search/view/preferences، scoring/SLA، idempotency اتوماسیون، typed custom field و acknowledgement QA را پوشش می‌دهد. تست کامپوننت rollback کانبان و خطای جست‌وجو و Playwright مسیر جست‌وجو تا جابه‌جایی فرصت را پوشش می‌دهند.

محدودیت‌های عمدی

Automation یک DSL محدود است و PHP/SQL دلخواه اجرا نمی‌کند. actionهای مجاز فقط create_task، notify و set_lead_priority هستند. برای افزودن action جدید، validation، authorization، audit و تست idempotency هم‌زمان توسعه داده شوند.