CRM module
Leads, opportunities, pipeline, and sales teams.
Models
| Model | Purpose |
|---|---|
crm.lead | Lead/opportunity (type, stage, revenue, UTM, tags) |
crm.stage | Pipeline stages (is_won, sequence) |
crm.team, crm.team.member | Sales teams and assignment |
crm.tag, crm.lost.reason, crm.recurring.plan | Configuration |
crm.activity.report | Denormalized activity reporting |
Wizards
| Model | Purpose |
|---|---|
crm.lead.lost | Mark lost with reason |
crm.lead2opportunity | Convert lead to opportunity |
crm.merge.opportunity | Merge opportunities |
Object actions
Registered in services/hooks.go: action_set_won, action_restore, action_convert_opportunity, action_convert_wizard, action_merge_wizard, action_lost_wizard, action_assign_leads, …
Form Convert opens action_convert_wizard; Merge opens action_merge_wizard. Lost wizard writes lost_feedback onto the lead.
Analysis and forecast
Pipeline Analysis and Leads Analysis use view_mode="graph,pivot,list,form". Forecast kanban sets quick_create="0" (no inline create on date buckets).
Events
record.created— default stage, assign userrecord.updated— won/lost stage handlingcrm.cron_assign_leads— round-robin for teams with assignment enabled; no seededsys.cron. Use Assign Leads (action_assign_leads) on the team form.
Kanban
swcmeta.RegisterKanbanGroupExpander for pipeline (stage_id) and forecast (date_deadline).
Security groups
crm.group_user, crm.group_manager, crm.group_use_lead, recurring revenue group. Record rules: own vs all leads.
Depends
base, contacts, mail, utm
Paths
sumeru_addons/crm/services/hooks.gosumeru_addons/crm/views/menus.xml