/admin/appconfig · /hrms/appconfig
UI ApplicationConfigPage
org.json + role.json
Application Configuration
& Access Control
The definitive guide to organization master data, feature toggles, and role permissions — every key documented with live values, UI behaviour, and downstream impact across HRMS, Project, Sales, and Timesheet.
Org master and access
Lists, keys, and role flags — the store other screens read
Application Configuration is the definitive guide to organization master data, feature toggles, and role permissions — every key with behaviour and downstream impact. The live editor is Application Config in the product; this page is the map of what those keys mean.
/admin/appconfig
HR Admin · Org Admin
The job of this console
Look up a key before you change it, understand which screens will move, then edit in the live Config UI. Use search on this page to find a flag or list without wandering the left nav blind.
Seat at the table
Administrators. The in-app Guide lives on the Config left nav, not the hero — on purpose. Employees never edit org.json.
The working rhythm
Search the key, read the impact, open live Application Config, change the value, verify the downstream screen. Do not duplicate lists into a new table.
Moments that bring you here
A missing leave type in a dropdown. A module that will not appear. Role permission hunting. After an industry template apply.
No matching configuration keys — try a shorter term or clear the filter.
Interactive data flow simulators
This page lists static flag keys from org.json and role.json. Open simulators to toggle flags live and trace table-level effects.
Overview
Org node
type=org — inherits parentValue until overridden. Use for team-specific department lists or regional notification emails.
Role node
type=role — permission template. Clone Site Admin to create Manager, Finance, or IC roles with reduced flags.
Inherit chain
Linked chain = use parent value. Broken chain = local override stored on this node (overridden=true).
Lock & hide
Lock blocks child overrides — ideal for enterprise-wide categoryMap. Hide removes from non-admin UI when combined with lock.
hrmsModules.appconfigEnabled on your role. Changes affect all users in the selected org scope on next config refresh.Screen layout
The live screen at /hrms/appconfig mirrors the wireframe below — left tree navigation, hero identity bar, and scrollable module panel with filters.
- ▸ Root
- ▸ Team Alpha
- ▸ Team Beta
- + Add org unit
Components
ApplicationConfigLeftMenu— org + role trees, create child nodesApplicationConfigHero— node identity inline editApplicationConfigSection— module cards, config blocksApplicationConfigRoleBar— attach role templates to org units
Save & filters
- All — every config key on selected node
- Overridden — keys with local values (broken chain)
- Locked — keys enforced for children
- Save — persists value changes; property edits use
updateConfigProperty
Configuration schema
Every item in org.json and role.json shares this shape — the UI renders different editors based on inputType.
labelDisplay name in module card header
valueScalar, string[], boolean map, or nested tree object
inputTypenull/list simple values · group CRUD toggles · multi tree editor
multiLevelLabelLevel names for 2–3 deep hierarchies (categoryMap, practiceMap)
overriddenNode stores its own value instead of inheriting parentValue
locked / hiddenPrevent child overrides; hide from non-admin when locked
parentValueEffective inherited value when chain is linked
longListVirtualized list UI for 50+ dropdown values
Compensation band
Simple listband
Dropdown on employee profile and roster filters. Bands group grades for reporting and headcount analytics treemap.
Employee create wizard, Employees charts, payroll exports
6 configured values
Grade within band
Simple listgrade
Finer compensation level (e.g. C 2, B 1). Used with band for org structure and capacity planning.
Profile, roster sort, manager dashboards
14 configured values
Skills tags
Simple listskills
Searchable skill tags assigned to employees. Drives Top skills chart and project staffing filters.
Employee wizard Skills step, resource reports
7 configured values
Business domains
Simple listdomains
Practice areas such as DPG, Data science. Cross-cuts departments for analytics.
Employee profile, utilization by domain
4 configured values
Professional certifications
Simple listcertifications
Optional credentials list for compliance and staffing.
Employee profile extended fields
2 configured values
Country
Simple listcountry
Employee work country for geo reporting and holiday calendars.
Profile, attendance, regional filters
5 configured values
Employee type
Simple listempType
Permanent, Contract, Consultant, Intern — affects roster filters and HR analytics donuts.
Employees register SHOW chips, workforce reports
4 configured values
Division
Simple listdivision
Top-level business division (e.g. Life Sciences, Research AI).
Org hierarchy, executive dashboards
6 configured values
Work location
Simple listlocation
Office or remote site — used in location column charts and facilities planning.
Profile, attendance matrix, hybrid workforce views
19 configured values
Team name
Simple listteamName
Delivery team labels; often populated per org unit. Empty at root means teams are created under org nodes.
Team scope bars, project assignment
Department
Simple listdepartment
HR department name on employee record. Powers department horizontal bar charts.
Employees directory, org analytics
35 configured values
Job designation
Simple listdesignation
Title ladder from Trainee through VP. Shown on profile hero and roster.
Profile, employee cards
31 configured values
Education qualification
Simple listqualification
Highest qualification bucket for HR records.
Employee profile
4 configured values
Sub-department
Simple listsubDepartment
Finer org unit under department for large enterprises.
Profile, filtered roster
60 configured values
HR service category
Simple listserviceCategory
Advisory, Delivery, Sales, Support, etc. — classifies employees for finance and utilization.
Workforce planning, cross-charge
9 configured values
Practice hierarchy
Multi-level treepracticeMap
Multi-level tree: Primary Practice → Secondary Practice. inputType=multi with multiLevelLabel.
Project staffing, practice-based reporting
multi- Primary Practice (2 sub-keys)
- Primary Practice 1 (3 sub-keys)
Multi-level tree — expand in App Config UI
Persona navigation access
Property mappersonaNavigationAdditional
Org-wide page→persona map and kill switches. Prefer the simplified UI at Admin → Persona navigation (/admin/persona-navigation): Turn off (personas / modules / pages) and Page access (pick one page, Product default vs Custom personas). Also editable under Application Config → Org → HRMS.
Sidebar filtering, route guards, persona switcher, Admin → Roles page toggles (shared org map)
org.json)
4 fields
| Field | What it controls | Default |
|---|---|---|
pagePersonaMap | Path → allowed persona codes. Empty = use shipped sidebar personas[] catalog defaults. | {} |
disabledPersonas | Org kill: listed personas unavailable to everyone. | [] |
disabledPaths | Org kill: listed routes hidden for everyone. Protected: roles, persona-navigation, appconfig, setup-checklist. | [] |
disabledModules | Org kill: whole product areas hidden (permission-module keys). | [] |
Org disables always win over role personaModules and page-map allow lists.
Attendance additional (org)
Feature togglesattendanceAdditional
Why: Org-level attendance enhancement flags. Today the primary seed flag is regularization — missed punch / correction requests that go through manager approval instead of silently rewriting the matrix.
Who: Admins set org policy. Employees submit corrections; reporting managers and attendance-scoped delegates approve. Requires role hrmsModules.attendanceEnabled.
org.json)
1 field
| Flag | What it controls | Who / related | Default |
|---|---|---|---|
attendanceRegularizationEnabled |
Turns on regularization request → approve flows on Attendance. | Employees request; managers/delegates approve. Related: role attendance access + approvalDelegationEnabled. |
true |
Timesheet additional (org)
Feature togglestimesheetAdditional
Why: Org master switches for week-based timesheet approval, optional partial-week day batches, reopen, and intelligence. Without timesheetApprovalEnabled, saves stay on the legacy TaskActivity path and approval APIs fail closed. partialWeekSubmissionEnabled requires approval on and defaults false (full-week only).
Who: Admins enable for the org. Employees submit weeks (or day batches when partial is on); managers and timesheet-scoped delegates approve/reject. Role enableTimeSheetApproval grants Approve UI — it does not replace this org switch.
org.json)
4 fields
| Flag | What it controls | Who / related | Default |
|---|---|---|---|
timesheetApprovalEnabled |
Submit → pending → approve/reject → lock via TimesheetWeek staging. | Employees submit; managers/delegates approve. Related: role enableTimeSheetApproval. |
true |
partialWeekSubmissionEnabled |
On: submit selected days as separate approval batches (ts_timesheet_submission_model); leftover DRAFT days stay editable. Off: full-week submit only; week locks while pending. |
Requires timesheetApprovalEnabled. Day chips in Timesheet / Employee360. Inbox ids SUBMISSION: vs WEEK:. |
false |
timesheetReopenEnabled |
Allows reopening approved/locked weeks for correction (and batch reopen when partial is on). | Managers (and owners in solo/self-approved cases). Related: role enableTimeSheetReopen. |
true |
timesheetIntelligenceEnabled |
Timesheet intelligence / billability helper panels. | Managers with Timesheet access. Related: usually needs approval workflow on. | true |
Approval delegation (org)
Feature togglesapprovalDelegation
Why: Lets managers assign trusted colleagues to cover attendance, timesheet, and/or leave approvals while away. Delegates are added as effective approvers — the reporting manager still sees and can act on the same pending requests.
Who: Admins enable org-wide. Managers create/revoke on Profile → Approval delegation. Delegates act from module pending panels and Workspace Approvals (Acting for badge). Employees may nudge approvers subject to cooldown.
org.json)
5 fields
| Flag | What it controls | Who / related | Default |
|---|---|---|---|
approvalDelegationEnabled |
Master switch for create/list/act-as delegation. | Managers + delegates. Related domain approval org flags. | true |
approvalReminderEnabled |
Automatic SLA reminder emails for pending approvals. | Managers + delegates as recipients. Related: SLA day fields below. | true |
slaFirstReminderDays |
Days pending before the first automatic reminder. | Admin policy; affects approver inboxes/email. | 2 |
slaRepeatReminderDays |
Days between repeat reminders while still pending. | Admin policy; same recipients as first reminder. | 2 |
employeeManualReminderCooldownHours |
Cooldown before an employee can re-nudge the same request. | Employees send; managers/delegates receive. | 24 |
Single service line mode
Simple listenableServiceLineSelection
When true, projects pick one service line from categoryMap instead of multi-line estimates.
Project create/edit, deliverable categories
Multi service line estimates
Simple listenableServiceLineEstimate
Enables multiple service lines each with hour/cost estimates on projects and POs.
Project details estimates tab, PO details
Category selection UI
Simple listenableCategorySelection
Shows category picker on project/deliverable forms using categoryMap hierarchy.
Project wizard, work item forms
Restrict by employee service line
Simple listenableRestrictProjectByEmployeeServiceLine
Limits which projects an employee can log time to based on their service line.
Timesheet project picker, task assignment
PO mandatory for projects
Simple listisPurchaseOrderMandatory
Blocks project creation or activation without linked purchase order when enabled.
Project create validation
Salesforce PO import
Simple listpurchaseOrderImportFromSalesForceEnabled
Allows importing purchase orders from Salesforce integration.
Sales → PO list, integration jobs
Disable team-scoped accounts
Simple listuserTeamAccountsDisabled
When true, account list is not filtered by user's teams (org-wide accounts visible per role).
Accounts list page
Cascade deliverable dates
Simple listenableDeliverableEndDateUpdateOnProjectEndDateChange
Auto-adjusts deliverable estimated end dates when project end date moves.
Project date edit, deliverable schedule
Service line tree
Multi-level treecategoryMap
3-level hierarchy: Service Line → Delivery Category → Task Category. Drives billable categorization on timesheets.
Project, deliverable, work item, timesheet
multi- Coding (4 sub-keys)
- Analysis (6 sub-keys)
- Reporting (0 sub-keys)
- BI and Viz (1 sub-keys)
- Data Processing (11 sub-keys)
- Project Management (16 sub-keys)
- Survey Programming (11 sub-keys)
Multi-level tree — expand in App Config UI
Project category
Simple listcategory
Flat list of portfolio categories for reporting and SHOW filters.
Project list chips, reports
7 configured values
PO notification emails
Simple listdefaultPurchaseOrderNotificationEmails
Distribution list emailed on PO create/update events.
Email notifications, workflow
2 configured values
PO finance notifications
Simple listdefaultPurchaseOrderNotificationEmailsForFinanceTeam
Finance-specific PO email recipients.
Finance alerts on contracts
2 configured values
Project notification emails
Simple listdefaultNotificationEmails
Default To/CC on project lifecycle notifications.
Project status emails
2 configured values
Project finance notifications
Simple listdefaultNotificationEmailsForFinanceTeam
Finance distribution for project billing events.
Invoice and project finance bridge
2 configured values
PII / compliance notifications
Simple listdefaultPIINotificationEmails
Data compliance mailbox for PII-related project flags.
Compliance workflow
1 configured values
Deliverable notifications
Simple listdefaultDeliverableNotificationEmails
Emails sent on deliverable milestone changes.
Deliverable status alerts
2 configured values
Delivery category list
Simple listtaskCategory
Legacy/flat delivery categories when not using full categoryMap tree.
Deliverable forms
8 configured values
Task category list
Simple listtaskActCategory
Activity-level categories for work items under deliverables.
Work item create, task activity
8 configured values
HR service category
Simple listserviceCategory
Advisory, Delivery, Sales, Support, etc. — classifies employees for finance and utilization.
Workforce planning, cross-charge
4 configured values
Tools used
Simple listtoolNames
Software tools tracked on projects (Microsoft Office, Power BI, etc.).
Project metadata, reports
2 configured values
Product names
Simple listproductName
Product dimension for productized delivery lines.
Project profile
2 configured values
Survey types
Simple listsurveyType
CATI, CAPI, Online, IDI, FGD, etc. — market research methodology.
Project setup, sales handoff
15 configured values
Project timezones
Simple listtimezone
AU, IST, EST, etc. for scheduling and client communication.
Calendar, due dates
7 configured values
Sample source
Simple listsample
Client vs Internal sample tracking on research projects.
Fieldwork projects
2 configured values
Currency codes
Simple listcurrency
USD, EUR, INR, etc. for PO and project financial fields.
PO value, estimates
6 configured values
Feedback service lines
Simple listfeedbackServiceLines
Lines available when configuring client feedback requests.
Feedback module
3 configured values
Task category list
Simple listtaskActCategory
Activity-level categories for work items under deliverables.
Work item create, task activity
21 configured values
Skip extra fields
Simple listexcludeAdditionalFieldsForCategory
Categories that hide extended form fields on quick entry (Leave, Holiday, etc.).
Timesheet modal UX
7 configured values
Division
Simple listdivision
Top-level business division (e.g. Life Sciences, Research AI).
Org hierarchy, executive dashboards
4 configured values
Non-billable client partner
Simple listclientPartner
Optional client partner dimension on internal/presales time.
Presales logging
4 configured values
Mode / kind of study
Simple listkindOfStudy
Sales bid taxonomy: Online Quant, CATI, Qualitative, etc.
Bid request forms, sales charts
7 configured values
Sales client names
Simple listclientName
Client picklist on bid and PO records.
Sales pipeline
4 configured values
Decision maker type
Simple listdm
BDM, ITDM, Financial DM — buyer persona on bids.
Bid demographics
6 configured values
Job designation
Simple listdesignation
Title ladder from Trainee through VP. Shown on profile hero and roster.
Profile, employee cards
3 configured values
Company size segment
Simple listcompanySize
Small Business, SMB, LE for bid segmentation.
Sales analytics
3 configured values
Company turnover band
Simple listturnover
Revenue size brackets on bid records.
Sales funnel reporting
3 configured values
Medical professional types
Simple listmedicalProfessionals
HCP specialties targeted in healthcare research bids.
Bid medical vertical
9 configured values
Patient types
Simple listpatients
Patient condition segments for healthcare studies.
Bid scoping
8 configured values
Hospital type
Simple listhospitalType
Private vs Government facility segmentation.
Healthcare bids
2 configured values
Bid countries
Simple listcountries
Geography list for bid pipeline charts.
Sales geography mix chart
19 configured values
Project notification emails
Simple listdefaultNotificationEmails
Default To/CC on project lifecycle notifications.
Project status emails
1 configured values
HRMS module visibility
listhrmsModules
Toggle each HRMS sidebar page and set default landing route after login.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
defaultRedirectPage | Landing route slug when user opens the module (e.g. dashboard, activites, bidrequests). | dashboard |
dashboardEnabled | Show HRMS/Project dashboard in sidebar and allow navigation. | true |
employeesEnabled | Show Employees directory. | true |
attendanceEnabled | Show Attendance matrix. | true |
holidaysEnabled | Show holiday management (within settings or HRMS). | true |
timesheetEnabled | Show Timesheet page. | true |
settingsEnabled | Show HRMS Settings. | true |
appconfigEnabled | Show Application Configuration (this page) — typically admin only. | true |
profileEnabled | Allow profile routes. | true |
invoiceEnabled | Show Invoices module. | true |
Invoice CRUD permissions
groupinvoice
Separate create/edit/remove/view gates for billing documents.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | false |
editEnabled | Allow editing existing records. | false |
removeEnabled | Soft remove / unlink from list views. | false |
viewEnabled | Read-only access to records. | false |
Settings page sections
listprofileSettings
Controls which HRMS Settings cards appear (devices, schedulers, health, company, locale, notifications).
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
deviceRegistrationEnabled | Mobile device registration card in Settings. | false |
schedulerViewEnabled | Cron scheduler admin section. | false |
serviceHealthEnabled | Service health indicators. | false |
companySettingsEnabled | Company information form. | false |
localizationSettingsEnabled | Locale and format settings. | false |
notificationSettingsEnabled | Notification routing preferences. | false |
Employee record permissions
groupemployees
Create, edit, delete, archive, remove, view on workforce directory.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
deleteEnabled | Hard delete (where supported). | true |
archiveEnabled | Move to archived state. | true |
removeEnabled | Soft remove / unlink from list views. | true |
viewEnabled | Read-only access to records. | true |
Employee extended rules
listemployeesAdditional
Switch teams on behalf of others, view history, set exit dates.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
viewOtherEmployeesHistoryEnabled | See other employees' activity history. | false |
updateUserExitDateEnabled | Set termination/exit date on profiles. | false |
Holiday calendar permissions
groupholidays
Manage public holiday entries synced to timesheet.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
removeEnabled | Soft remove / unlink from list views. | true |
Attendance matrix permissions
groupattendance
Why: CRUD gate for the Attendance matrix. Who: Roles that need to mark, view, or help approve attendance (managers typically need editEnabled or attendanceAdditional.approveTeamEnabled). Related: attendanceAdditional mark/auto-approve/approveTeam flags; org regularization + delegation.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Legacy create gate (prefer markOwn/Others flags in attendanceAdditional). | true |
editEnabled | Helps unlock team approve UI when approveTeam/auto-approve-others are off. | true |
deleteEnabled | Hard delete (where supported); prefer removeOwn/Others flags. | true |
viewEnabled | Read attendance matrix / day cells. | true |
Attendance additional (role)
listattendanceAdditional
Why: Role behaviour for marking, removing, auto-approving, and approving team attendance. Who: Employees use mark/remove-own; managers use mark-others + approveTeam. Related: Org attendanceAdditional.attendanceRegularizationEnabled, org approvalDelegation. Production seed keeps auto-approve off and approveTeamEnabled on.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope on the attendance matrix. | true |
autoApproveOwnAttendanceEnabled | Skip PENDING_APPROVAL when marking own attendance. Keep off for manager review. | false |
autoApproveOthersAttendanceEnabled | Auto-approve when marking for others. Keep off for production; do not use as the only approve gate. | false |
approveTeamEnabled | Role may approve team pending attendance (and related flows) without auto-approve. | true |
markOwnAttendanceEnabled | Mark own attendance days. | true |
markOthersAttendanceEnabled | Mark attendance for other employees in scope. | true |
removeOwnAttendanceEnabled | Request/remove own attendance where supported. | true |
removeOthersAttendanceEnabled | Remove others’ attendance in scope. | true |
Persona access
listpersonaModules
Which personas this role may use. Edited from Admin → Roles & permissions (persona-first UI) or Application Config → Role → HRMS. Page toggles on Roles write the shared org pagePersonaMap; org kill switches live only on Persona navigation.
Roles data flow simulator → · Screen guide
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
allowedPersonas | Explicit list of personas this role may activate. Absent = Automatic (derived from module flags until saved). | EMPLOYEE…ADMIN (all) |
defaultPersona | Landing persona when switcher is available. | ADMIN |
personaSwitchEnabled | Show header persona switcher for users in this role. | true |
Project module visibility
listprojectModules
Enables sidebar entries: dashboard, list, taskboard, reports, chat, etc.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
defaultRedirectPage | Landing route slug when user opens the module (e.g. dashboard, activites, bidrequests). | activites |
dashboardEnabled | Show HRMS/Project dashboard in sidebar and allow navigation. | true |
listEnabled | Project list register. | true |
taskPlannerEnabled | Task planner page. | true |
todoListEnabled | Todo list view. | true |
accountsEnabled | Accounts directory. | true |
taskBoardEnabled | Kanban taskboard. | true |
activitesEnabled | Task activity / work items list. | true |
reportsEnabled | Reports catalog page. | true |
fileManagerEnabled | File manager. | true |
chatEnabled | Chat module. | true |
calendarEnabled | Calendar. | true |
detailsEnabled | Project details deep link. | true |
searchEnabled | Global search. | true |
resourcePlannerEnabled | Team capacity / resource planner. | false |
feedbackEnabled | Feedback module. | true |
Project entity permissions
groupprojects
CRUD and archive on project records.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
duplicateEnabled | Clone record action. | true |
deleteEnabled | Hard delete (where supported). | true |
removeEnabled | Soft remove / unlink from list views. | true |
archiveEnabled | Move to archived state. | true |
viewEnabled | Read-only access to records. | true |
Project business rules
listprojectsAdditional
Status transitions, team scoping, PO date restrictions, checklist behavior, estimate visibility.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
allowStatusChange | User may transition workflow status fields. | true |
allowStatusLevelDown | Allow moving status backward (e.g. COMPLETED → INPROGRESS). | true |
changeableStatus | Array of status codes user may set. | NEW ASSIGNED INPROGRESS COMPLETED CLOSED |
listOnlyCurrentTeamProject | Filter lists to current team scope only. | true |
viewServiceLineEstimate | See service line estimate panels. | true |
enableProjectPurchaseOrderEditable | Edit linked PO on project after create. | false |
enableServiceLineEstimateHourEditable | Edit estimated hours on service lines. | false |
enableServiceLineEstimateHourVisible | Show hour estimates in UI. | false |
enableServiceLineEstimateCostEditable | Edit cost estimates. | false |
enableServiceLineEstimateCostVisible | Show cost estimates. | false |
showOnlyActiveUserTeamsSelectableInProjectCreateWindow | Team picker shows only active teams. | true |
showAllUserTeamsSelectableInProjectCreateWindow | Team picker shows all teams user belongs to. | false |
allowAccessToOtherUserTeamProjects | See projects outside own team scope. | false |
projectDatesRestrictedByPurchaseOrderDates | Project dates cannot exceed PO contract dates. | true |
checklistEnabled | Show checklist UI on entity. | true |
checklistSaveEnabled | Save checklist progress. | true |
checklistUpdateCompletedEnabled | Edit items after marked complete. | false |
checklistCompleteEnabled | Mark checklist complete. | true |
checklistChangeEnabled | Modify checklist template on instance. | true |
Deliverable permissions
grouptasks
CRUD on deliverable/milestone entities.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
duplicateEnabled | Clone record action. | true |
deleteEnabled | Hard delete (where supported). | true |
removeEnabled | Soft remove / unlink from list views. | true |
archiveEnabled | Move to archived state. | true |
viewEnabled | Read-only access to records. | true |
User team management
groupuserTeams
Create/delete delivery teams.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
deleteEnabled | Hard delete (where supported). | false |
removeEnabled | Soft remove / unlink from list views. | false |
Account directory permissions
groupaccounts
Client account CRUD.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
deleteEnabled | Hard delete (where supported). | true |
editEnabled | Allow editing existing records. | false |
removeEnabled | Soft remove / unlink from list views. | true |
Account visibility scope
listaccountsAdditional
Show all teams' accounts vs scoped.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
showAllUserTeamsAccount | Accounts list ignores team filter. | true |
showAllByAccounts | Expanded account visibility mode. | true |
Checklist template admin
groupchecklists
Manage reusable checklist templates.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
duplicateEnabled | Clone record action. | true |
removeEnabled | Soft remove / unlink from list views. | true |
viewEnabled | Read-only access to records. | true |
Feedback template admin
groupfeedbackTemplates
Design feedback form templates.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
viewEnabled | Read-only access to records. | true |
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
duplicateEnabled | Clone record action. | true |
removeEnabled | Soft remove / unlink from list views. | true |
Feedback request lifecycle
groupfeedbackRequest
Create, activate, resend client feedback campaigns.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
viewEnabled | Read-only access to records. | true |
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
activateEnabled | Activate feedback campaign. | true |
removeEnabled | Soft remove / unlink from list views. | true |
updateStatusEnabled | Change feedback request status. | true |
resendEnabled | Resend feedback invitation email. | true |
Deliverable extended rules
listtasksAdditional
Team switch, status downgrades, estimate edit flags, checklist toggles.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
allowStatusChange | User may transition workflow status fields. | true |
allowStatusLevelDown | Allow moving status backward (e.g. COMPLETED → INPROGRESS). | true |
changeableStatus | Array of status codes user may set. | NEW ASSIGNED INPROGRESS COMPLETED CLOSED |
showOnlyActiveUserTeamsSelectableInDeliverableCreateWindow | Permission flag — toggled per role in Access Control tree. | true |
allowAccessToOtherUserTeamDeliverables | Permission flag — toggled per role in Access Control tree. | false |
enableDeliverableEstimateHourEditable | Edit deliverable hour estimates. | false |
checklistEnabled | Show checklist UI on entity. | true |
checklistSaveEnabled | Save checklist progress. | true |
checklistUpdateCompletedEnabled | Edit items after marked complete. | false |
checklistCompleteEnabled | Mark checklist complete. | true |
checklistChangeEnabled | Modify checklist template on instance. | true |
Work item permissions
groupworkItems
CRUD on activities/work items.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
duplicateEnabled | Clone record action. | true |
deleteEnabled | Hard delete (where supported). | true |
removeEnabled | Soft remove / unlink from list views. | true |
archiveEnabled | Move to archived state. | true |
viewEnabled | Read-only access to records. | true |
Work item & time rules
listworkItemsAdditional
Hour caps, retro edit windows, skill restrictions, leave rules, checklist.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
restrictedBySkillsEnabled | Filter assignees by skill tags. | false |
switchEmployeesEnabled | Pick another employee in timesheet/task views. | true |
createWorkItemLogForOtherEmployees | Log time on behalf of others. | true |
enableCreateCompletedWorkItem | Create work items already in completed state. | true |
editCompletedWorkItemInfo | Edit metadata on completed items. | false |
editCompletedWorkItemHours | Change hours after completion. | false |
editCompletedWorkItemEstimatedHours | Change estimates after completion. | false |
viewWorkItemEstimatedHours | See estimate fields. | false |
enableWorkItemDeleteTillNextDayXHour | Grace period (hour of day) to delete yesterday's items. | 15 |
enableCompletedWorkItemHoursEditTillNextDayXHour | Grace period to edit completed item hours. | 15 |
maxHoursAllowedToEnter | Daily or entry hour cap validation. | 10 |
allowLeaveAndHolidayForFuture | Book leave on future dates. | true |
allowLeaveAndHolidayForPast | Book leave retroactively. | true |
listOnlyCurrentTeamProject | Filter lists to current team scope only. | true |
showWorkItemEstimatedHours | Permission flag — toggled per role in Access Control tree. | false |
disableWorkItemCreateBeforeYWorkingDaysAfterXHours | Cutoff rule: block create before N working days after hour X. | 15 |
disableNonProjectWorkItemCreateBeforeXWorkingDays | -1 = disabled; else days before today allowed for non-project entries. | -1 |
disableNonProjectWorkItemCreateAfterXWorkingDays | Forward limit for non-project create. | -1 |
disableNonProjectWorkItemAssignBeforeXWorkingDays | Assign window start for non-project. | -1 |
disableNonProjectWorkItemAssignAfterXWorkingDays | Assign window end for non-project. | -1 |
disableProjectWorkItemCreateBeforeXWorkingDays | Retro limit for project work items. | -1 |
disableProjectWorkItemCreateAfterXWorkingDays | Forward limit for project work items. | -1 |
disableProjectWorkItemAssignBeforeXWorkingDays | Assignment retro limit on projects. | -1 |
disableProjectWorkItemAssignAfterXWorkingDays | Assignment forward limit on projects. | -1 |
checklistEnabled | Show checklist UI on entity. | true |
checklistSaveEnabled | Save checklist progress. | true |
checklistUpdateCompletedEnabled | Edit items after marked complete. | false |
checklistCompleteEnabled | Mark checklist complete. | true |
checklistChangeEnabled | Modify checklist template on instance. | true |
Timesheet policy (role)
listtimeSheet
Why: Role-level entry/edit/approve/reopen/on-behalf-submit and window limits for the timesheet grid. Who: Employees need entry/edit; managers need enableTimeSheetApproval (and usually reopen). HR/time-admin roles that submit others’ already-saved weeks need enableTimeSheetSubmissionOnBehalfOf plus switchEmployeesEnabled — that is submit-only, not edit. Related: Org timesheetAdditional.timesheetApprovalEnabled / reopen; role timesheetAdditional auto-approve (keep off); org approvalDelegation.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
enableTimeSheetEntry | Allow logging hours on the grid. | true |
enableTimeSheetEdit | Allow editing hours after entry (subject to windows). | true |
enableTimeSheetApproval | Role may Approve/Reject others’ weeks. Org workflow must also be on. | true |
enableTimeSheetReopen | Role may reopen approved weeks when org reopen is on. | true |
enableTimeSheetSubmissionOnBehalfOf | Submit or resubmit an already-saved week for another in-scope employee. Submit-only — no edit/save/clear. Pair with switchEmployeesEnabled. Does not grant Approve/Reject. | true |
allowLeaveAndHolidayForFuture | Book leave/holiday on future dates in timesheet context. | true |
allowLeaveAndHolidayForPast | Book leave/holiday retroactively. | true |
listOnlyCurrentTeamProject | Filter project pickers to current team scope. | true |
restrictedBySkillsEnabled | Filter assignees by skill tags. | true |
disableWorkItemCreateBeforeYWorkingDaysAfterXHours | Cutoff rule: block create before N working days after hour X. | 15 |
disableNonProjectWorkItemCreateBeforeXWorkingDays | -1 = disabled; else days before today allowed for non-project entries. | -1 |
disableNonProjectWorkItemCreateAfterXWorkingDays | Forward limit for non-project create. | -1 |
disableProjectWorkItemCreateBeforeXWorkingDays | Retro limit for project work items. | -1 |
disableProjectWorkItemCreateAfterXWorkingDays | Forward limit for project work items. | -1 |
disableLastMonthAfterXDays | Lock prior month after X days into current month. | 3 |
enableFutureTimeSheetView | Navigate to future weeks. | false |
enablePastTimeSheetView | Navigate to historical weeks. | true |
maxHoursAllowedToEnter | Daily or entry hour cap validation. | 10 |
switchUserTeamsEnabled | Change team scope dropdown. | true |
switchEmployeesEnabled | Pick another employee in timesheet views. | true |
timeSheetNonBillableShowAllAccountsEnabled | Show all accounts on non-billable rows. | true |
Timesheet additional (role)
listtimesheetAdditional
Why: Role auto-approve behaviour for timesheet weeks. Who: Affects the employee/manager who submits or marks the week. Related: Org timesheetApprovalEnabled must be on for week workflow; keep these auto-approve flags false for production manager review. Pair with timeSheet.enableTimeSheetApproval for human approve.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
autoApproveOwnTimesheetEnabled | Auto-approve own weeks on submit (skips manager queue). | false |
autoApproveOthersTimesheetEnabled | Auto-approve when acting on others’ weeks. Independent of enableTimeSheetSubmissionOnBehalfOf — keep off for production manager review. | false |
Kanban board permissions
listtaskBoard
Multi-board, configure columns, delete cards.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
multiTaskBoardEnabled | Multiple kanban boards per team. | true |
allUserTeamMultiTaskBoardEnabled | Boards across all user teams. | true |
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
switchEmployeesEnabled | Pick another employee in timesheet/task views. | true |
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
deleteEnabled | Hard delete (where supported). | true |
removeEnabled | Soft remove / unlink from list views. | true |
configureEnabled | Edit board columns/configuration. | true |
workItemDeleteEnabled | Delete cards from board. | true |
workItemRemoveEnabled | Remove cards from board. | true |
Task planner scope
listtaskPlanner
Team switch on planner view.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
Report catalog access
listreporting
Each report type can be enabled/disabled per role.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
reportConfigurationEnabled | Admin report configuration. | true |
defaultReportEnabled | Standard default report export. | true |
format3ReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
employeeUtilizationReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
myUtilizationReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
myTimesheetDataReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
myTimesheetDataDumpReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
siteActivityReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
projectDetailsBySkillsReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
project15PercentageReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
estimateVsActualByDeliverablesByTaskDateReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
estimateVsActualByDeliverablesByActivityDateReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
weekWiseEmployeeUtilizationMonthlyReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
weekWiseEmployeeUtilizationMonthlyEndToEndReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
weeklyPOEstimationReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
weeklyProjectHoursReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
utilizationByEmployeeBySkillsReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
utilizationByEmployeeByProjectCategoryReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
dataDumpReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
resourceAllocationReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
projectFeedbackDumpReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
projectCompletionReportEnabled | Permission flag — toggled per role in Access Control tree. | true |
reportScheduleAllTeamAccessEnabled | Schedule reports for all teams. | true |
Sales module visibility
listsalesModules
Bid requests, purchase orders, default landing page.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
defaultRedirectPage | Landing route slug when user opens the module (e.g. dashboard, activites, bidrequests). | bidrequests |
purchaseOrdersEnabled | Purchase orders list. | true |
bidRequestsEnabled | Bid requests list. | true |
Bid request CRUD
groupbidRequest
Standard create/edit/delete/archive on bids.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
duplicateEnabled | Clone record action. | true |
deleteEnabled | Hard delete (where supported). | true |
removeEnabled | Soft remove / unlink from list views. | true |
archiveEnabled | Move to archived state. | true |
viewEnabled | Read-only access to records. | true |
Bid workflow rules
listbidRequestAdditional
Status change permissions and allowed status values.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
allowStatusChange | User may transition workflow status fields. | true |
allowStatusLevelDown | Allow moving status backward (e.g. COMPLETED → INPROGRESS). | true |
changeableStatus | Array of status codes user may set. | NEW ASSIGNED INPROGRESS WON LOST CANCELLED REJECTED CLOSED |
Purchase order CRUD
grouppurchaseOrders
Contract record permissions.
grouplongList| Flag | What it controls | Site Admin |
|---|---|---|
createEnabled | Allow creating new records. | true |
editEnabled | Allow editing existing records. | true |
duplicateEnabled | Clone record action. | true |
deleteEnabled | Hard delete (where supported). | true |
removeEnabled | Soft remove / unlink from list views. | true |
archiveEnabled | Move to archived state. | true |
viewEnabled | Read-only access to records. | true |
Allowed PO statuses
listpurchaseOrderStatusEnabled
Which contract statuses can be selected on this role.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
NEW | Permission flag — toggled per role in Access Control tree. | true |
ASSIGNED | Permission flag — toggled per role in Access Control tree. | true |
CREATED | Permission flag — toggled per role in Access Control tree. | true |
INPROGRESS | Permission flag — toggled per role in Access Control tree. | true |
COMPLETED | Permission flag — toggled per role in Access Control tree. | true |
CLOSED | Permission flag — toggled per role in Access Control tree. | true |
PO extended rules
listpurchaseOrdersAdditional
Estimate edit, team access, checklist, status downgrade.
listlongList| Flag | What it controls | Site Admin |
|---|---|---|
switchUserTeamsEnabled | Change team scope dropdown to view other teams' data. | true |
allowStatusChange | User may transition workflow status fields. | true |
allowStatusLevelDown | Allow moving status backward (e.g. COMPLETED → INPROGRESS). | true |
changeableStatus | Array of status codes user may set. | NEW ASSIGNED CREATED INPROGRESS COMPLETED CLOSED |
allowAccessToOtherUserTeamPurchaseOrder | View POs from other teams. | false |
showAllPurchaseOrderProjects | See all projects linked to PO regardless of team. | false |
enableServiceLineEstimateHourEditable | Edit estimated hours on service lines. | true |
enableServiceLineEstimateHourVisible | Show hour estimates in UI. | true |
enableServiceLineEstimateCostEditable | Edit cost estimates. | true |
enableServiceLineEstimateCostVisible | Show cost estimates. | true |
checklistEnabled | Show checklist UI on entity. | true |
checklistSaveEnabled | Save checklist progress. | true |
checklistUpdateCompletedEnabled | Edit items after marked complete. | false |
checklistCompleteEnabled | Mark checklist complete. | true |
checklistChangeEnabled | Modify checklist template on instance. | true |
Administrator workflows
Org tree → Root → HRMS → Departments → (+) → Save module. Appears immediately in employee wizard Organization step.
PROJECT → Service Line Configuration → expand Coding → Programming → add leaf task category. Timesheet billable picker updates on refresh.
Root → categoryMap → Lock → Hide. Child teams inherit identical tree; prevents accidental local drift.
Roles → custom Manager role → Timesheet Config → disable enableTimeSheetEdit, set disableLastMonthAfterXDays to 5.
HRMS Modules Access → appconfigEnabled true only on Admin role; false for all IC and manager roles.
Roles tree → (+) new role → copy Site Admin → disable delete/archive flags → assign to delivery teams via Role Bar.
Frequently asked questions
Complete Q&A for using Application Configuration at /hrms/appconfig — 41 questions covering access, org/role trees, saving, org.json data, role.json permissions, timesheet rules, and troubleshooting.
🔑 Access & getting started
5 questions
hrmsModules.appconfigEnabled set to true (see Access control → HRMS Modules Access). Without this flag the /hrms/appconfig route is hidden from the sidebar./hrms/settings) covers operational cards: devices, schedulers, company info, locale. App Config is the hierarchical org/role tree that drives dropdown lists, feature toggles, and permission templates across HRMS, Project, Sales, and Timesheet.initializeConfig(currentUserTeamId) on mount. If the team is not mapped to an org unit, contact a super-admin to attach the team in the org tree.appconfigEnabled on your role template, assign that role to your org unit via Role Bar, and ensure your user belongs to the correct team.🏢 Organization tree & inheritance
6 questions
fa-chain) = inherit parentValue from the parent org unit. Broken chain (fa-chain-broken, overridden=true) = this node stores its own value. Click the chain button on a config block header to toggle.locked=true prevents child org units from overriding that key. Combined with hidden=true, non-admin users may not see the block at all. Use lock on Root for enterprise-wide standards (e.g. categoryMap).parentLocked and cannot change inherit/lock/hide on that item — the chain and lock buttons are disabled.💾 Saving & filters
5 questions
updateConfig). Property-only edits (name, parent, category, overridden, locked, hidden) use updateConfigProperty and may save per-field. Watch for the unsaved-changes indicator before navigating away.org.json and role.json seed deployment. Runtime edits persist to the database. Re-deploying from JSON without migration can overwrite DB changes — export or document before major releases.appconfigEnabled, the module may be disabled on this node, or the key may be parentLocked. Check role permissions and parent lock state.📋 Application config (org.json data)
8 questions
band, grade, department, designation, skills, etc. Changes appear on the employee create wizard and profile after users refresh or open a new form.defaultNotificationEmails, defaultPurchaseOrderNotificationEmails set default distribution when projects or POs trigger workflow emails. Finance-specific keys route to finance inboxes.taskActCategory lists non-billable timesheet types (meetings, training, leave). excludeAdditionalFieldsForCategory hides extra fields for quick entry on Leave/Holiday rows.enableServiceLineEstimate, enableServiceLineSelection, enableCategorySelection. When enabled, projects and POs show estimate panels per service line — coordinate with finance before toggling.🔐 Roles & access control
10 questions
ApplicationConfigRoleBar on an org node — not directly on user records. Users inherit the role mapped to their team’s org unit.*Enabled in hrmsModules/projectModules) is separate from CRUD groups (createEnabled, editEnabled). Enable both the module flag and the action flag in the correct permission group.dashboard, activites, bidrequests). Set per role under HRMS/Project/Sales Modules Access.reporting group lists each report type as a boolean. Users only see reports they are allowed to run in the REPORT dropdown.timeSheet.switchEmployeesEnabled, enableTimeSheetEdit, and related work-item flags. Set on the manager’s role template, not per user.role.json → HRMS → personaModules (Admin → Roles). Org page→persona map and kill switches: org.json → HRMS → personaNavigationAdditional (Admin → Persona navigation). Product page defaults live in the sidebar catalog until you customize a path./admin/persona-navigation. Turn off — chip toggles for personas/modules and a searchable page list. Page access — select one page, choose Product default or Custom, then toggle personas. Click Save changes once. Roles links here via the Organization access card.org.json seeds empty pagePersonaMap and empty disabledPersonas / disabledPaths / disabledModules. Site Admin role.json seeds all personas allowed, defaultPersona: ADMIN, personaSwitchEnabled: true.personaModules → org pagePersonaMap (if set) → org disabledPersonas / disabledPaths / disabledModules (always win). Protected admin paths cannot be killed.⏱ Timesheet & work item rules
7 questions
enableTimeSheetEdit, enablePastTimeSheetView, disableLastMonthAfterXDays, and work-item window flags (disableProjectWorkItemCreateBeforeXWorkingDays, etc.) on their role.disableNonProjectWorkItemCreateBeforeXWorkingDays / AfterXWorkingDays and NONPROJECT categories in org config. Value -1 often means rule disabled — check your deployment’s convention.allowLeaveAndHolidayForFuture and allowLeaveAndHolidayForPast on the role control leave booking direction on non-project categories.enableTimeSheetSubmissionOnBehalfOf and switchEmployeesEnabled. The actor must already be able to see that employee’s team. This is submit/resubmit only — the grid stays read-only. It does not grant Approve/Reject.autoApproveOthersTimesheetEnabled is a separate flag and stays independent.🔧 Troubleshooting
6 questions
Most common mistakes
18 mistakes administrators make when configuring org data, roles, inheritance, and timesheet policy — and how to avoid them.
Editing Root without testing on a child org unit
What goes wrong: Root changes propagate to every team unless overridden. A wrong categoryMap or department list affects the entire company.
Do this instead: Create a sandbox child org unit, apply changes there, validate with a test team, then promote to Root or lock.
Granting appconfigEnabled to too many roles
What goes wrong: App Config access equals control over all dropdowns, trees, and permission templates.
Do this instead: Limit to 1–2 admin roles. Never enable for general managers or IC roles.
Confusing org tree with roles tree
What goes wrong: Org nodes hold data lists; role nodes hold permissions. Editing the wrong tree does not fix access issues.
Do this instead: Organization tab for departments/categoryMap; Roles tab for timesheet edit flags. Assign roles via Role Bar on org nodes.
Forgetting to Save after module edits
What goes wrong: Navigating away loses unsaved list additions and toggle changes.
Do this instead: Watch for unsaved indicator; click Save on each module card you modified before switching nodes.
Breaking inheritance without documenting why
What goes wrong: Future admins see a broken chain but not the business reason.
Do this instead: Record overrides in your internal runbook (team name, key, date, approver).
Locking without hiding sensitive keys
What goes wrong: Locked keys still visible to admins; hidden reduces clutter when combined with lock.
Do this instead: For enterprise-only keys, set lock + hide on Root so child admins are not distracted.
Deleting categoryMap leaves with historical data
What goes wrong: Old timesheets and reports reference removed category names/IDs.
Do this instead: Stop new usage via lock; retain legacy leaves or map migrations in backend.
Enabling all Site Admin permissions on every role
What goes wrong: Clone Site Admin and strip flags — do not assign Site Admin broadly.
Do this instead: Create Manager, Finance, IC templates with minimal required flags.
Setting module visibility without CRUD flags
What goes wrong: User sees sidebar entry but gets errors on Create/Save.
Do this instead: Enable both module flag (e.g. employeesEnabled) and group flags (createEnabled, editEnabled).
Ignoring parentLocked on child nodes
What goes wrong: Attempting to override locked parent keys wastes time — buttons are disabled.
Do this instead: Change the value on the parent node that holds the lock, or unlock at parent first (with change control).
Duplicating service line trees per team
What goes wrong: Each local categoryMap drift causes timesheet miscoding and report splits.
Do this instead: Maintain one locked categoryMap at Root; override only when legally required (regional practice).
Toggling PO mandatory without comms
What goes wrong: isPurchaseOrderMandatory blocks project workflows for teams without PO process.
Do this instead: Coordinate with PMO and finance; pilot on one org unit before Root enable.
Disabling timesheet edit without setting lock windows
What goes wrong: Users blocked entirely with no grace period for corrections.
Do this instead: Pair enableTimeSheetEdit=false with clear disableLastMonthAfterXDays and communicate cutoff dates.
Adding duplicate values in long lists
What goes wrong: Duplicate bands or departments pollute filters and charts.
Do this instead: Use search in App Config before add; dedupe in Excel before bulk paste.
Assuming UI permissions equal API security
What goes wrong: Direct API calls can bypass hidden buttons.
Do this instead: Treat false permission flags as server-side denies; verify backend enforcement for compliance.
Not assigning role after creating role template
What goes wrong: New role exists but no org unit uses it — users keep old permissions.
Do this instead: Open org node → Role Bar → attach new role → users re-login.
Changing notification emails without validating SMTP
What goes wrong: Workflow emails bounce or go to wrong inboxes.
Do this instead: Test with one project/PO event after change; use finance/IT distribution lists.
Disabling entire module when only one key should change
What goes wrong: Module enable toggle hides all keys in HRMS/PROJECT/SALES for that node.
Do this instead: Prefer editing individual keys or role flags instead of disabling whole module.