Opportunities Module
Sales deals module on the frozen platform. Mirrors the Leads pipeline UX (stages + Kanban board + table) and the Activities / Contacts / Companies reference architecture for notes, assignment, and soft related links.
Sales Pipeline is delivered inside Opportunities — stages and the Kanban board are not a separate Marketplace SKU.
Guides
| Audience | Document |
|---|---|
| Operators / workspace users | opportunities.md |
| Engineers | opportunities-developer.md |
| Production / ops | opportunities-production.md |
| Module Development Standard | module-development.md |
| Reference blueprint | leads.md · activities.md |
| Tenant API | ../api/tenant-v1-opportunities.md |
Capabilities
- Deal fields: name (required), optional amount / currency / probability / expected close date
- Pipeline stages (seeded: Prospecting → Qualification → Proposal → Negotiation → Won / Lost)
- Colored tags — per-workspace Opportunities catalog; create/assign inline; filter by
tag_id - Kanban board (default) + table view; drag-and-drop auto-saves stage via
POST /opportunities/{id}/stage - KPIs via
GET /opportunities/stats; board viaGET /opportunities/board - Soft optional links: Contact / Company / Lead (FK rejected when that module is not installed; gated New inline create when entitled + create permission)
- Lead convert can optionally create an Opportunity (when Opportunities + create permission are present)
- Assignment with assignee scoping via
opportunities.assign - Notes + domain activity timeline
- Ask EloSync (with AI Assistant entitled): fetch a deal and confirm stage, assignment, or note suggestions — see Opportunities user guide
- Trash filtering plus Restore and Delete permanently
- Module licensing (
module:opportunities) + Spatie permissions — free Marketplace opt-in (Sales category) - Audit + activity logging; assignment notification
Permissions
opportunities.view · create · update · delete · restore · force.delete · assign
Enable Opportunities from Marketplace (free). Catalog: slug opportunities, category sales, is_default_included = false, is_billable = false, sort_order = 40, version 1.2.0. Only Leads and Tasks install automatically on new workspaces.
Related modules (optional)
No hard module_dependencies row today. Linking a Contact, Company, or Lead requires that module to be entitled; otherwise validation rejects the FK.
Planned hard dependencies (future): Quotations and Contracts are expected to depend on Opportunities when those Sales modules ship — see Module Dependencies.
Explicitly deferred
- Separate Marketplace SKU for “Sales Pipeline” (pipeline lives in this module)
- Custom stage admin UI (stages are seeded / idempotent seeder)
- Quotations / Contracts integration
- Real-time board sync (Reverb / Echo)
- Export / import