Status Controller – Page and Relationships
Full Functional Description
1. What the Status Controller Page Is (Conceptually)
The Status Controller page is a matrix-style dashboard designed to give teams a single-screen overview of customer progress, stages, or states across multiple dimensions.
Think of it as:
Customers on the left × Status columns on the right, changing over time
Each row represents one customer, and each column represents one tracked concept (stage, status, step, approval, KPI, etc.).
Each cell answers a simple question:
“What is the status of this customer for this column in this month?”
2. Overall Page Structure (What the User Sees First)
When a user opens the Status Controller, the page feels like a dashboard, not a form.
At the top:
-
A clear title showing Status Controller and the currently selected month and year
-
A help icon for guidance
-
Date controls to move backward or forward in time
Below that:
-
Search input to quickly locate customers
-
A settings shortcut (gear icon) for admins
-
The main table occupying most of the screen
The design is intentionally wide and scrollable because:
-
Status tracking is horizontal by nature
-
Multiple columns must remain visible at once
3. Date Logic (Time-Based Behavior)
Time is a core dimension of the Status Controller.
By default:
-
The page loads with the previous month
-
This prevents accidental changes to the current month
-
It encourages reflective or reporting-style usage
Users can:
-
Change the month
-
Change the year
The moment either value changes:
-
The table reloads
-
All data shown now belongs to that month
-
The structure stays the same, only the values change
This makes the page function like:
-
A monthly snapshot
-
A historical tracker
-
A comparison tool across time
4. Search and Filtering Behavior
The search field filters customers only.
When a user types:
-
The system does not change columns
-
It does not affect status definitions
-
It simply narrows the visible customer rows
This is important because:
-
Structure remains stable
-
Focus stays on tracking, not restructuring
5. Table Layout – How the Grid Is Built
The table has two fixed columns on the left and multiple dynamic columns on the right.
Fixed columns
The first column always shows:
-
Customer identity
-
Usually name, avatar, or identifier
-
Sometimes includes selection checkboxes
The second column always shows:
-
Responsible team members
-
Derived from customer ownership or sharing
-
Displayed visually using avatars or initials
These columns never change position.
6. Dynamic Columns (The Heart of the System)
All columns after “Responsible” are dynamic.
They are:
-
Defined entirely in settings
-
Loaded from the system configuration
-
Rendered only if they have names
Each column:
-
Has a unique meaning
-
Represents a tracked dimension
-
Has its own set of allowed statuses
The system supports up to 10 columns, but users only see what is configured.
7. Cell Behavior (How Users Interact)
Every cell represents:
One customer + one column + one month
If no status exists:
-
The cell shows a placeholder
-
Typically “Select status”
When the user clicks the cell:
-
A dropdown opens
-
The dropdown lists all allowed statuses for that column
Each status:
-
Has a label
-
Has a color
-
May require additional input
8. Date and Value Capture (Advanced Interaction)
Some statuses are simple:
-
Click → applied → done
Other statuses are enhanced:
-
They require a date or numeric value
In those cases:
-
Selecting the status opens a small input modal
-
The user enters the required data
-
On submit, the status is saved together with that data
This allows the grid to capture:
-
Completion dates
-
Scores
-
Amounts
-
Quantitative progress
9. Loading Strategy (Performance by Design)
The Status Controller is designed for large datasets.
Instead of loading everything at once:
-
The system loads customers in batches
-
Initial load is fast
-
More rows can be loaded on demand
Users can:
-
Load more rows incrementally
-
Or load all rows at once if needed
This keeps the UI:
-
Responsive
-
Stable
-
Usable even with thousands of customers
10. Column Width and User Preferences
Each user can resize columns.
When a column is resized:
-
The new width is saved for that user
-
Next time they open the page, widths are restored
This personalization ensures:
-
Power users can optimize their view
-
Different roles can focus on different columns
11. Core Data Relationships (How Everything Connects)
Behind the scenes, the page is driven by four main entities working together.
Organization → Status configuration
Each organization has one Status configuration.
That configuration defines:
-
Which customers appear (via folder rules)
-
Which columns exist
-
What statuses are allowed
-
Which columns are static or time-based
This configuration is the blueprint of the page.
Customers (contacts)
Customers are:
-
Filtered by folder rules
-
Loaded only if they belong to allowed folders
-
Displayed one per row
Their responsibility data determines:
-
Who appears in the Responsible column
Monthly status records
For every customer and every month:
-
There is a dedicated status record
-
That record stores values for all columns
This design allows:
-
Historical tracking
-
Month-by-month comparisons
-
Safe editing without overwriting past data
Users (team members)
Users appear in two roles:
-
As responsible owners of customers
-
As configuration owners and permission holders
They also store:
-
Column width preferences
-
Module access permissions
12. How the Page and Settings Work Together
The Status Controller page is read–write, but not self-defining.
Users can:
-
Select statuses
-
Change values
-
Navigate months
But they cannot:
-
Create new columns
-
Add statuses
-
Change logic
All structural changes happen in Status Controller Settings.
This separation ensures:
-
Stability
-
Predictable reporting
-
Controlled customization
13. Mental Model for Users
For end users, the Status Controller feels like:
-
A living spreadsheet
-
A monthly tracker
-
A visual control panel
For admins, it is:
-
A configurable workflow engine
-
A reporting foundation
-
A flexible CRM layer
14. Summary
The Status Controller page is where configured business logic becomes visible, editable, and trackable.
It:
-
Displays customers filtered by rules
-
Shows progress across custom dimensions
-
Changes over time by month
-
Stores data safely and historically
-
Scales to large datasets
All relationships exist to support one goal:
Clear, fast, structured insight into customer state — at scale.
