Opportunity & Pipeline Management

Business perspective: Opportunity & Pipeline Management

1. Business Summary

Tracks deals from creation through win/loss, with detailed translation specifications via OpportunityJob, consultant groups, follow-ups, activities, conversions to projects/jobs.

2. Business Value

Captures the sales pipeline value and converts wins into delivery work without re-keying specifications.

3. Users / Stakeholders

Sales, AMs, PMs.

4. Workflows

A. Opportunity creation
- From lead/account; assigned creator_id, account_id, contact_id.
- Probability and currency determine pipeline weight.
- Loss reason captured on close.

B. Job specification (OpportunityJob)
- Source/target language, job type/mode/modality, content type, subject matter, voice-over type, transcreation/sync mode, DTP/QC levels, MT engine, applications, units, currency.
- Forms reusable basis for converting opportunity → real Jobs.

C. Consultant group
- HABTM OpportunityConsultantGroupsUsers defines a delivery team for the opportunity; loss reasons captured per group.

D. Conversion
- Opportunity → Project → Job (auto-conversion via Automation pipeline).

5. Sub-Features

  • OpportunityJob detailed specs.
  • ConsultantGroup.
  • Activities, FollowUps, Notes, Cases linked.
  • Probability-driven forecasting.

6. Business Rules

  • OpportunityStatus and OpportunityLossReason govern won/lost.
  • Currency required.
  • Probability links to forecasts (0–100).

7. Data Entities

Opportunity, OpportunityJob, OpportunityConsultantGroup, OpportunityConsultantGroupsUser, OpportunityCategory, OpportunityType, OpportunityStatus, OpportunityLossReason, Probability.

8. Entry Points

  • crm/opportunities, crm/opportunityJobs, crm/opportunityConsultantGroups.
  • FreshSales: getOpportunities() (deals).

9. Inputs & Outputs

  • Inputs: opportunity data, jobs spec, consultant assignment.
  • Outputs: pipeline records, jobs/projects post-conversion.

10. Integrations

  • FreshSales: deals + custom fields.

11. Calculations / Logic

  • Weighted value = amount × probability.
  • Conversion of OpportunityJob spec into actual Job records.

12. Status Lifecycle

  • OpportunityStatus (open → won/lost/closed).
  • OpportunityLossReason on lost outcomes.

13. Permissions

  • Creator, modifier, account team.

14. Reports & KPIs

  • Pipeline weighted, win/loss ratio, loss-reason analysis, conversion rates.

15. Risks & Observations

  • "Partially won" semantics not enforced in code → risk of inconsistent pipeline math.
  • Consultant assignment HABTM duplicates possible without unique constraints.

16. Source Code Evidence

  • app/Plugin/crm/Model/Opportunity.php, OpportunityJob.php, OpportunityConsultantGroup.php.
  • app/Plugin/crm/Controller/OpportunitiesController.php, OpportunityJobsController.php, OpportunityConsultantGroupsController.php.
  • app/Plugin/crm/Controller/FreshSalesController.php :: getOpportunities.

← Deep dives index