CRM
", "/api/pagibig-contribution-rates", "/api/withholding-tax-brackets", "/api/government-forms", "/api/government-filings", "/api/tin-compliance", "/api/ewt-payees", "/api/ewt-transactions"); } The hiring funnel, including the two genuinely public careers endpoints.
| Controllers | 7 |
| Endpoints | 41 |
| Tables | 10 |
| Screens | 8 |
| API reference | /api/ — group crm |
| OpenAPI spec | /openapi/crm.json |
URL prefixes
Endpoints belong to this module by URL, exactly as the OpenAPI group defines it in backend/src/main/java/com/motorph/payroll/config/OpenApiConfiguration.java.
/api/crm/**
Controllers
| Controller | Base path | Endpoints | GET | POST | PUT | PATCH | DELETE |
|---|---|---|---|---|---|---|---|
| CrmActivityController | /api/crm/activities | 5 | 2 | 1 | — | 1 | 1 |
| CrmContactController | /api/crm/contacts | 6 | 3 | 1 | 1 | — | 1 |
| CrmDealController | /api/crm/deals | 11 | 6 | 2 | 1 | 1 | 1 |
| CrmLeadController | /api/crm/leads | 7 | 2 | 2 | 1 | 1 | 1 |
| CrmOrganizationController | /api/crm/organizations | 5 | 2 | 1 | 1 | — | 1 |
| CrmPicklistController | /api/crm/picklists | 4 | 1 | 1 | 1 | — | 1 |
| CrmSettingsController | /api/crm/settings | 3 | 2 | — | 1 | — | — |
Across the module: 18 GET, 8 POST, 6 PUT, 3 PATCH, 6 DELETE.
Tables
Everything this module's controllers can reach through a repository, including through a shared service — so this is the upper bound of what the module touches, not the set of tables it owns. A table appearing under two modules means two modules can read it.
| Entity | Table | Columns | Tenant-scoped |
|---|---|---|---|
| CrmActivity | crm_activity | 10 | Yes |
| CrmContact | crm_contact | 10 | Yes |
| CrmDeal | crm_deal | 11 | Yes |
| CrmLead | crm_lead | 14 | Yes |
| CrmNote | crm_note | 3 | Yes |
| CrmOrganization | crm_organization | 12 | Yes |
| CrmPicklistItem | crm_picklist_item | 11 | Yes |
| CrmSettings | crm_settings | 12 | Yes |
| CrmSettingsChange | crm_settings_changes | 6 | Yes |
| Employee | employee | 24 | Yes |
Screens
Frontend routes gated by a permission this module's endpoints also require — the link between a page and its API is the permission string, not the URL.
| Route | Component | Requires |
|---|---|---|
/crm/activities | CrmActivities | crm.activities.manage |
/crm/analytics | CrmAnalytics | crm.reports.view |
/crm/contacts | CrmContacts | crm.contacts.manage |
/crm/dashboard | CrmDashboard | crm.view |
/crm/deals | CrmDeals | crm.deals.manage |
/crm/leads | CrmLeads | crm.leads.manage |
/crm/organizations | CrmOrganizations | crm.contacts.manage |
/crm/settings | CrmSettings | crm.settings.manage |
This page is rebuilt from the source on every docs build by docs-site/scripts/gen-code-wiki.mjs. Editing it has no effect — change the code, or, if what you want to say is prose, write it in docs/.