Dashboard
The home dashboard is a fully customizable widget-based homepage. You choose which widgets to show, drag them into your preferred order, and expand or collapse each one individually. Your layout is saved per user in the database and persists across sessions, devices, and browsers.
Available widgets
The dashboard has 10 widgets. Which ones you see depends on your role and permissions.
Widget availability by role
| Widget | Regular user | Approver | Administrator |
|---|---|---|---|
| Key metrics | ✓ (3 cards) | ✓ (3 cards) | ✓ (7 cards) |
| Favorites | ✓ | ✓ | ✓ |
| Approvals | — | ✓ | ✓ |
| My submissions | ✓ | ✓ | ✓ |
| Recent activity | ✓ (own only) | ✓ (own only) | ✓ (all users) |
| Active users | — | — | ✓ |
| Audit summary | ✓ (own only) | ✓ (own only) | ✓ (all users) |
| API keys | — | — | ✓ |
| Integration alerts | — | — | ✓ |
| Models overview | ✓ (accessible models) | ✓ (accessible models) | ✓ (all models) |
Widget descriptions
Key metrics
Shows KPI cards with clickable counts. All users see three cards: Models, Entities, and Records. Administrators see four additional cards: Integration Views, Active users, API calls (total), and Approval rate. Each card navigates to the relevant admin section when clicked.
Administrators can use the period selector dropdown in the widget header (Today, 7d, 30d, 90d, 365d) to filter the Active users and Approval rate cards by time range. API calls always shows the lifetime total. The selected period is saved per user in the database.

Favorites
Shows entities you have bookmarked. Click the star icon next to any entity (on the dashboard or in the data grid toolbar) to add or remove it from your favorites. Each favorite shows the entity name, parent model, and record count.
Approvals
Visible to users with approver or administrator rights. Shows recent approval requests with their status. When pending approvals exist, a pulsing amber badge shows the count in the widget header.
Click any approval item to navigate directly to the Approvals screen with that specific request opened — ready to approve, reject, or send back. Click All approvals to open the full Approvals screen.
My submissions
Shows your own recent submissions with their current status — Pending, Approved, Rejected, or Returned. Use the display count selector (3 / 5 / 10 / 20 / All) to control how many rows appear. Click View all submissions to open your full submission history.
Recent activity
Edit log showing the latest data changes. Each entry shows the user, action type (Edit, Create, Delete, Import), entity name, and relative timestamp. Administrators see activity from all users; regular users see only their own. Click any entry to navigate to the affected entity grid.
Active users *(administrator only)*
Shows all user accounts with their online status, last login time, and an inactive warning for accounts that haven't logged in recently.
Audit summary
Aggregated overview of data changes grouped by action type (edits, deletes, imports, purges) and by entity. Use the period selector in the top-right corner to filter by time range: Today, Last 7 days, Last 30 days (default), Last 90 days, Last 365 days, or All time. Your selected period is saved per user in the database. Administrators see summaries across all users; regular users see only their own activity.
API keys *(administrator only)*
Shows API user statistics: total API users, active keys, total call counts, and a breakdown of calls by type (GET, POST, PUT, DELETE).
Integration alerts *(administrator only)*
Always visible for administrators. When all integration views are in sync, shows a green "All integration views are in sync" confirmation. When views are out of sync, a pulsing amber badge appears in the widget header and the widget shows drift warnings with action buttons:
- Orange warnings indicate new or changed columns
- Click Go to views to inspect the affected views
- Click Sync all to resolve all drift at once
Models overview
Shows each model as a card with its name, description, entity count, and total records. Each entity is listed with its individual record count. You can favorite entities directly from this widget. Administrators see all models; regular users see only models they have access to.
Customization
Show or hide widgets
Click the Customize button in the top-right corner of the dashboard. A dropdown appears with checkboxes for all 10 widgets. Uncheck a widget to hide it; check it again to bring it back. Widgets that are hidden by your role (e.g. "Active users" for non-admins) do not appear even when checked.
Drag-and-drop reordering
Every widget card has a drag handle (six-dot icon) in the top-left corner of its header. Grab the handle and drag the widget to any position in the grid. Drop zones appear as dashed borders while dragging. The dashboard uses a 3-column grid — wide widgets (Key metrics and Models overview) automatically span the full width.
Expand and collapse
Each widget has a chevron button at the bottom. Click it to toggle between the full content and a compact view (max 200px height). The expanded or collapsed state is saved per widget.
Persistence
All your customization — widget order, visibility, and expanded/collapsed state — is saved per user in the database. Your layout is restored automatically when you log in from any device or browser. Changes are saved with a short delay (500ms debounce) so you can make multiple adjustments without triggering a save for each one.
Notification bell
The bell icon in the top-right header lights up with color-coded alerts:
| Color | Meaning |
|---|---|
| 🔴 Red | One or more of your submissions was rejected or sent back |
| 🟠 Orange | There are pending submissions waiting for your approval |
| 🟢 Green | One or more of your submissions was approved |
When multiple conditions are active at the same time, the highest-priority color is shown (red overrides orange, orange overrides green). The badge count shows the total number of unread signals across all categories.
Clicking the bell opens a dropdown with individual entries per category. Clicking any entry navigates to the relevant screen and clears that category's badge. Each user's seen baseline is stored locally, so the bell only rings for events you haven't acknowledged yet — even after a page reload.