Field Operations Dashboard

Real-time command center for runs, readiness, teams, and operational exceptions.

🔍
📋
📊0
🗂️0
👥0
💼0
🛣️0
0
0
🚩0

Live Operations Map

Clustered view of active runs, delayed legs, and prep-ready corridors.

Live Delayed Ready

Exceptions And Alerts

Immediate action queue for dispatch and preparation teams.

  • Run R-311 delayed 24 min at branch handover.
  • 2 ATMs still pending prep slot confirmation.
  • Vehicle V-204 has no confirmation scan in last 30 min.
  • West Cairo prep lane reached 96% readiness.

Run Pulse

Execution state across today’s active run set.

In Progress68%
Completed22%
Flagged10%

Prep Readiness

Ready vs pending ATM preparation for dispatch release.

Ready74%
Pending26%

Team Utilization

Crew and vehicle assignment pressure by current shift.

In shift now81%
Assigned77%
Unassigned23%

Live Work Queue

0 selected
No jobs match the current filters.

Scheduled Runs

Define recurring ATM replenishment and field-service runs, attach ATMs to each route, and turn templates into daily executable runs.

Active Templates

18
Daily, alternate-day, and weekly runs ready for dispatch.

Tomorrow

42
Planned ATM visits across 13 geographic stop clusters.

Exceptions

5
Runs need review for vehicle load, SLA risk, or ATM overlap.

Coverage

126
ATMs linked to scheduled runs with bank, QR, and recurrence metadata.

Upcoming Run Templates

R-204 · West Cairo Alternate-Day Replenishment
Every other day · 14 ATMs · 6 physical stops · Depot: October Cash Center
Draft
R-115 · Downtown Daily Mall Route
Daily · 9 ATMs · 3 mall stops · Mixed banks at each stop
Published
R-311 · Alexandria Coastal Service Loop
Mon/Wed/Fri · ATM cleaning, replenishment, and light service tasks
Needs Review

Denomination Overrides

Create daily or period-based denomination substitutions at hub, run, or ATM scope. Effective values follow ATM, then run, then hub, then ATM master.

Active Rules

Loading overrides...
Loading overrides...

Create Override Period

Use this when a denomination is temporarily unavailable and the ATM should behave as if a slot dispenses another denomination for a defined period.

Scope And Period

Choose whether the exception applies to one hub, one run template, or one ATM. Daily override means the start and end dates are the same.

Substitution Rule

Rules always evaluate against the ATM master cassette values. They do not cascade from one override into another.

Schedules

Review generated run instances, search by template/run identity, and monitor upcoming planned versus in-progress schedules.

All Instances

0
📊

Teams Assigned

0
👥

In Progress

0

Completed

0

Ready ATMs

0
🏧

Prep Complete

0
📦

Cancelled

0
🚫

Schedules Workspace

Switch between the date-based schedule list and a driver board that shows who is carrying the next workload.

Loading schedules...
Page 1 of 1 · 0 total

Prep Dashboard

Review scheduled preparation assignments, confirm box readiness, and hand over ready boxes to field crews.

prep-debug: waiting

Schedules In Scope

0
Scheduled preparation shifts available to this account scope.

Total Boxes

0
All preparation box items attached to the selected schedule.

Filled Boxes

0 / 0
Boxes already scanned and ready, shown as filled over total.

Remaining Boxes

0 / 0
Boxes still pending scan and readiness, shown as remaining over total.

Ready ATMs

0
ATMs whose required boxes are fully ready for field loading.

Schedule Preparation Board

Showing all hubs.
Loading preparation board...
Loading preparation board...

AI Analysis

Analyze a selected hub using current inner runs, ATM and branch distribution, upcoming schedule load, and Google driving distance to identify better dispatch and polygon choices.

Hub Analysis

Select a hub and click Analyze.

Hub Map

Hub Fence Inner Runs Saved ATMs Uncovered ATMs Cross-Hub Candidates Branches
Google Maps will load here when a valid API key is configured.

Inner Runs

0
Runs currently assigned to the selected hub.

ATMs

0
Saved ATM points inside the hub scope.

Branches

0
Branch density affecting lobby and replenishment demand.

Schedules

0
Upcoming schedule instances used for dispatch pressure.

Teams

0
Hub teams available to absorb schedule load.

Uncovered ATMs

0
ATMs not currently attached to any inner run.

Recommendations

No analysis yet

Run the hub analysis to see polygon, distance, and team utilization recommendations.

Run Insights

Waiting for analysis

Each analyzed inner run will appear here with drive distance, duration, utilization score, and suggested changes.

Uncovered ATMs

No issues

All ATMs are covered by active runs.

Users & Credentialing

Manage dispatchers, supervisors, auditors, and field operators with per-page visibility and explicit read-only access.

Total Users

0
All user accounts currently loaded from the database.

Active Users

0
Users who can sign in and operate according to their role.

Inactive Users

0
Users kept in the directory but currently disabled.

Suspended Users

0
Users blocked pending review or corrective action.

Users

Loading users...

Add User

Create a back-office or supervisory account in the main users table and assign its access role immediately.

This screen creates system users in the main users table. Team members who log in from the field app should be created from the Team Member screen instead.

Identity

Capture Arabic and English names so the user can be shown correctly in both interfaces.

Access & Assignment

Role is required. Hub and bank are optional and can scope the user operationally when needed.

Credentials

Username and password are created now so the user can sign in immediately after activation.

Teams

Review hubs first, then the teams and members operating under each one across the country.

Total Teams

0
All team records currently loaded from the database.

Total People

0
All people assigned under those teams.

Active People

0
People with active accounts and operational status.

In Shift

0
People who look currently logged in or recently tracked by the app.

Hubs And Teams

Loading hubs and teams...

Add Team Member

Create a field-app account under an operational team and store the person in the team_people table.

The selected team defines the member hub automatically, so hub assignment stays consistent with the team record.

Assignment

Choose the target team first. The person type determines the bilingual labels stored for the field role.

Identity

Store both Arabic and English names so the field app and dashboard stay aligned in either language.

Field App Credentials

These credentials are stored in team_people for mobile app login and team-level tracking.

Cleaning Teams

Manage ATM cleaning crews, territory coverage, shift availability, and recurring service bundles.

Team Coverage

Team Nile
Nasr City · Heliopolis · 28 ATMs on rolling weekly plan
Active
Team Lotus
6th October malls and branch vestibules · 19 ATMs
Planned

Hubs

Manage operational hubs, their center points, and the geofenced coverage areas used to assign branches, ATMs, and future runs.

Total Hubs

0
All hub records currently loaded from the database.

Active Hubs

0
Hubs available for branch, ATM, and run assignment.

Inactive Hubs

0
Hubs kept historically but excluded from current assignment.

Hub Directory

Loading hubs...

Add Hub

Create a hub record with bilingual identity, center point, and map-based geofence coverage.

Identity

Capture the hub code and bilingual names used across operational screens and assignment logic.

Location and Coverage

Use Google lookup, keep the Arabic operational address, and manage the hub center plus coverage on the same map.

Google Maps will load here when a valid API key is configured.
Map ModeCenter
Polygon Points0
CoverageNone

Notes

Keep optional Arabic and English notes separate from the location and coverage tools.

Banks

Manage the bank master directory used across branches, ATMs, user assignment, and operational reporting.

Total Banks

0
All bank records currently loaded from the database.

Active Banks

0
Banks available for new operational assignment and master-data linkage.

Inactive Banks

0
Banks kept historically but not currently active for assignment.

Bank Directory

Loading banks...

Add Bank

Create a bank master record with bilingual names and head-office details.

Identity

Store short code and bilingual names used across the platform.

Head Office

Keep address and location fields ready for future mapping and reporting use.

Add Branch

Create a bank branch with its bank, hub, address, and map coordinates.

Identity

Choose the bank and hub, then capture the branch name and unique branch code.

Location

Store branch address and coordinates so routing and ATM coverage can use the branch as an anchor point.

Start typing to search for the branch address. The system refreshes the bilingual address and suggests the hub that covers the branch.

The location map will load here when a valid API key is configured.
Coordinates-
Detected Hub-
Coverage State-
Address Arabic
No saved address yet.
Address English
No saved address yet.

Add Client

Create a parent commercial client with billing, contact, and default hub details.

Identity

Store the parent client code and bilingual names used across collection planning and billing.

Contacts

Keep the primary contact and default hub ready before creating child branches.

Billing

Store billing addresses and notes used by the commercial relationship.

Add Client Branch

Create a client branch or pickup site linked to its parent client and operational hub.

Identity

Link the branch to a parent client, then capture the branch code and bilingual names.

Contacts

Keep a branch contact ready for branch OTP and pickup coordination later.

Location

Pick the client branch location from Google search or directly from the map so the address is saved automatically.

Search and choose a Google address, or select a hub then click on the map to capture the exact location.

The location map will load here when a valid API key is configured.
Coordinates-
Detected Hub-
Coverage State-
Address Arabic
No saved address yet.
Address English
No saved address yet.

Add ATM

Create an ATM record with its bank, optional branch link, address, and map coordinates.

Identity

Capture the owning bank, hub, ATM identifier, and optional branch association.

Cassette Denominations

Choose the denomination for each ATM slot. All four slots are mandatory and there is no fixed pattern.

Location

Store ATM address and coordinates for routing, coverage, and map visibility.

Start typing to search for the ATM address. The system refreshes the bilingual address, suggests the hub, and detects whether the ATM is close enough to a branch lobby.

The location map will load here when a valid API key is configured.
Coordinates-
Detected Hub-
Coverage State-
Nearby Branch-
Address Arabic
No saved address yet.
Address English
No saved address yet.

Services

Coordinate ATM replenishment, repair, and cleaning service definitions so operational work follows the correct workflow by type.

Replenishment

64%
Share of active scheduled work currently tied to cash handling runs.

Repair

11
Open technical service definitions awaiting route attachment.

Cleaning

37
Recurring non-cash service bundles across branches and malls.

Settings

Control system defaults for routing, schedule generation, permissions, notifications, and integrations.

Operational Defaults

Run generation window
Generate tomorrow's run instances every day at 17:00.
Enabled
Permission fallback
Hidden menu items for denied pages, read-only view for scoped auditors.
Active
Maps integration
Browser Maps key active with live route preview in dashboard and panel.
Configured

Replenishment Boxes

Manage the master inventory of replenishment cash boxes, assign preferred banks, and track operational status.

Total Boxes

0
All box records in the master inventory.

Active

0
Boxes available for dispatch.

Out of Service

0
Boxes blocked from dispatch due to malfunction.

Under Repair

0
Boxes currently in the maintenance workflow.

Box Directory

Loading boxes…

Add Box

Register a new replenishment cash box with its QR code and optional bank assignment.

Identity

Enter the physical box serial number and the QR code payload that will be scanned in the field.

Assignment & Status

Assign a preferred bank, hub, and operational status for this box.

Notes

Courier Connex - Field Operations Guide

Overview
Job Types
Job Workflow
QR & Scan Validation
Dynamic QA & Photos
Chain of Custody
Dispatch & Routing
Compliance & Audit
Troubleshooting

Welcome to Ranking Pro!

Ranking Pro helps you manage and rank assessment candidates with an intuitive, fast interface. Organize, filter, sort, and bulk-manage candidates across different assessment statuses.

Key Features

  • Search & Filter - Find candidates by name, phone, job ID, location, region, call type, and more
  • Smart Sorting - Sort by status, date, team, resume ranking, assessment scores, IC status, and more
  • Bulk Selection - Select and batch-invite new applicants or batch-assign completed assessments
  • Assignee Management - Search and select assignees for completed assessments with keyboard navigation
  • Drag & Drop - Manually reorder candidates in custom sort mode (order saves automatically)
  • Detailed Panel - View comprehensive candidate info including history, notes, AI analysis, and call recordings
  • Archive Mode - Bulk archive candidates across all statuses when ready
  • Flexible Views - Switch between grid and list layouts to match your workflow
  • Visual Indicators - Color-coded ranking badges (green=high, amber=mid, red=low) and IC status icons

Card Badges Explained

  • Resume Rank Badge (circle with number) - Color shows quality: green (high), amber (mid), red (low)
  • Assessment Score Badge (for completed candidates) - Same color coding as resume rank
  • Status Icon (for non-completed) - Shows current status: ⚠️ New, ✈️ Invited, ⏳ In Progress, ✅ Completed, ❌ Failed
  • Assigned Badge (✓ green badge) - Shows candidate is assigned to a team member

Getting Started

  1. Use the search bar or region selector to narrow your candidate pool
  2. Choose a status filter (New, Invited, In Progress, Completed, Failed) to focus your workflow
  3. Select a sort mode that matches your priorities (resume ranking, assessment scores, custom order, etc.)
  4. Check boxes to select candidates for batch actions (Invite, Assign, Archive)
  5. Click a candidate card to open the detailed panel for comprehensive info and history
💡 Pro Tip: Combine search + region + status + call type filters for pinpoint candidate discovery!

↕️ Sort & Organize

Click the "↕️ Sort" button to change how candidates are organized. Each status filter remembers its own sort preference.

Sort Modes

  • 📍 Custom (Drag to Rearrange) - Manually drag cards to reorder. Your order saves automatically per status group.
  • 📊 By Assessment Status - Group candidates by their current status (New → Invited → In Progress → Completed → Failed)
  • 🧾 By IC Status - Group by IC record status (Unfinished, Prospective, Active, Inactive, Hold, Dead)
  • 📅 By Date (Newest) - Most recently added candidates first
  • ⏱️ By Addition Order (Oldest) - Oldest candidates first
  • 🏢 By Job Order ID - Alphabetically by job order number
  • 🧩 By Team Code - Group by team (WTW, BH, EDU, SW, WRAP, etc.)
  • By Resume Ranking (Highest) - Best resume scores first
  • 🎤 By Assessment Ranking (Highest) - Best assessment scores first (Completed filter only)
  • 🏆 By Combined Ranking (Highest) - Average of resume + assessment scores (Completed filter only)
💡 Tip: Each filter (New, Invited, etc.) remembers its own sort mode!
⚠️ Note: Assessment Ranking and Combined Ranking sorts only work on the Completed filter because other statuses don't have assessment scores yet.

✅ Selection & Actions

Selecting Candidates

  1. Check the boxes next to candidate names to select them
  2. The counter shows how many candidates you've selected
  3. In list view, use "Select All" checkbox at the top to quickly select all visible candidates in the current status

Bulk Actions

Invite to Assessment (New Filter)

When on the "New" filter, the button shows "Invite to Assessment". Select new applicants and click to move them to "Invited" status.

Assign to Team (Completed Filter)

When on the "Completed" filter, the button changes to "Assign". After selecting completed candidates:

  1. An arrow button (⬇️) appears next to the Assign button
  2. Click the arrow to open the assignee selector
  3. Search for the team member you want to assign to
  4. Select an assignee from the list
  5. Click "Assign" to bulk-assign all selected candidates to that person
💡 Assignee Search Tip: Type to search assignee names, use ↑↓ arrows to navigate, Enter to select, or Escape to close.

Archive Mode

Click "🗄️ Archive" to enter archive mode. In this mode:

  • All candidates become selectable regardless of status
  • The button changes to "🗄️ Archive (Send)"
  • Select candidates to archive, then click the button again to confirm
  • Archived candidates are removed from your active list

📂 Workspace Panel

Click any candidate card to open the workspace panel with detailed information about that candidate.

Panel Header

The header displays:

  • Candidate name (with " #123" suffix stripped for display)
  • Resume Rank - numerical ranking from resume screening
  • Assessment Score - numerical score (only shown for completed assessments)
  • Current Status - New, Invited, In Progress, Completed, or Failed

Multiple Applications

If a candidate has applied to multiple job orders, the overview tab shows an "Also applied to" section with all job order IDs they've applied for.

Panel Tabs

  • 📋 Ranking Overview - Basic candidate info including:
    • Contact info: Phone (clickable for dialing), location
    • Job Order ID and multiple applications list
    • Assigned status and IC Status (Unfinished, Prospective, Active, Inactive, Hold, Dead)
    • Date added and resume rank
    • Assessment score (if completed)
    • Specialty/Clinical strengths (e.g., RN - Patient Care)
  • 📊 Assessment Breakdown - Detailed assessment scores and component breakdowns
  • 🤖 AI Analysis - AI-generated insights and recommendations
  • 📝 Notes - Team notes and internal comments
  • 📈 History - Timeline of all interactions: SMS, calls, status changes

History Tab Details

The History tab shows all interactions with this candidate in reverse chronological order:

  • Each action shows: action type, result, direction (inbound/outbound), agent name, and call duration
  • Action types include: SMS, Marketing Call, Assessment Call, Credentialing Call, Reactivation calls
  • For interactions with scripts/recordings: Click the ▶ button to open the call modal
  • The call modal displays the full call script and provides playback for recorded calls (with duration controls)

Action Bar

Bottom buttons provide quick actions:

  • Mark Active - Update IC status to active
  • Forward to QA - Send for quality assurance review
  • Match to Jobs - Find matching job openings
  • Archive - Move candidate to archive

🎨 Drag & Drop

Manually reorder candidates when using Custom sort mode.

How to Drag

  1. Click the "↕️ Sort" button and select "📍 Custom (Drag to Rearrange)"
  2. Hover over any candidate card - the cursor changes to indicate you can drag
  3. Click and drag a card to move it
  4. As you drag over other cards, a dashed outline shows where it will drop
  5. Release to drop the card in the new position
  6. Your order is automatically saved to browser storage (no extra button needed)

Important Notes

  • Drag only works in Custom sort mode (enabled via Sort button)
  • You can only drag within the same status group (can't move New → Completed)
  • Each status maintains its own order independently
  • Order persists when you refresh the page (saved to localStorage)
  • Switching to a different sort (e.g., By Date) will replace custom order
  • Archive mode disables drag-and-drop
💡 Tip: Use custom sort to prioritize candidates based on your preferences!

💡 Tips & Tricks

Searching & Filtering

  • Combine Search + Filter - Type in search box AND select a status filter to narrow results dramatically
  • Use Region Dropdown - Set your region once; it persists and can be set via URL (?region=NJ)
  • Call Type Filter - Use the 📞 dropdown to focus on specific call types (Assessment, Credentialing, etc.)
  • Clear Filters - Click "All" to see everything, then add filters back as needed

Bulk Actions

  • Select All for Status - Use "Select All" checkbox to quickly select all candidates in the current status
  • Batch Invite - Select multiple New applicants and invite them all at once with one click
  • Batch Assign - Select multiple Completed candidates, pick an assignee, and assign all at once
  • Archive Groups - Enter Archive mode to remove multiple candidates from your active list

Assignee Selection (Completed Filter)

  • Auto-Focus - When you open the assignee dropdown, the search field gets focus automatically
  • Keyboard Navigation - Use ↑↓ arrow keys to navigate the list, Enter to select, Escape to cancel
  • Quick Search - Type any part of the assignee name to filter the list instantly
  • Clear Selection - Click "Clear Selection" button to deselect and reset the assignee button

Views & Organization

  • Grid vs List View - Use 📊 Grid for overview or 📝 List for detail (better on narrow screens)
  • Custom Sort - In custom mode, drag cards to reorder; your order saves per status group
  • Each Filter Remembers Sort - Switch between New/Invited/Completed; each keeps its own sort mode
  • Ranking Sorts - Use Resume, Assessment, or Combined ranking to prioritize by quality

Keyboard Shortcuts

  • ESC - Close the candidate panel
  • ESC - Close the help modal
  • ↑↓ Arrows - Navigate assignee dropdown when open
  • Enter - Select highlighted assignee

Panel Tips

  • Click Candidate Card - Opens full panel with history, notes, and AI analysis
  • Multiple Applications - See all job orders a candidate applied to in the overview tab
  • Call Scripts - Click ▶ on any history item to read scripts and listen to recordings
  • Phone Clicks - Click phone number in panel to dial directly (if supported by device)

🔧 Troubleshooting

Candidates & Display

  • No candidates showing?
    • Check if a filter is active (try clicking "All")
    • Clear the search box
    • Check region dropdown (try "All Regions")
    • Refresh the page
  • Candidate count doesn't match expectations?
    • Multiple filters stack (search + region + call type all apply)
    • Each filter pills shows how many candidates match that status
    • Try removing filters one at a time to isolate the issue
  • Name shows with " #123" suffix?
    • This is temporary demo data; suffix is stripped in the panel header
    • In live mode with real data, names won't have this suffix

Sorting & Ordering

  • Custom sort not working?
    • Ensure you've selected "Custom (Drag to Rearrange)" in the Sort menu
    • Drag only works within a status group; it doesn't move candidates between statuses
    • Refresh page to see if order persists (saved to localStorage)
  • Assessment Ranking or Combined Ranking disabled?
    • These sorts only work on the Completed filter (other statuses don't have scores yet)
    • Switch to Completed filter to unlock these sort options
  • Sort mode not persisting?
    • Each status filter (New, Invited, Completed, etc.) remembers its own sort mode
    • Sort preference is saved to localStorage; check your browser storage isn't disabled

Selection & Bulk Actions

  • Can't select candidates?
    • You can only select New applicants when on the New filter
    • You can only select unassigned Completed candidates when on the Completed filter
    • Assigned candidates (with ✓ badge) are not selectable
    • Use Archive mode if you need to select across all statuses
  • "Select All" not showing?
    • Select All only appears in New filter, Completed filter, or Archive mode
    • It's automatically available when you switch to these filters
  • Invite button is disabled?
    • You must select at least one candidate first
    • Make sure you're on the New filter to use Invite

Assignee Selection (Completed Filter)

  • Assignee dropdown not opening?
    • The dropdown arrow (⬇️) only appears when you've selected 1+ completed candidates
    • Make sure you're on the Completed filter and at least one candidate is checked
  • Search field not focused when dropdown opens?
    • The search field should auto-focus; if it doesn't, click in the search box manually
    • If auto-focus isn't working, check your browser's focus permissions
  • Assignee button still shows old name after assigning?
    • Button should reset to ⬇️ immediately after assignment completes
    • If it doesn't, refresh the page
  • Can't find an assignee in the list?
    • Type to search - the list filters as you type
    • Try searching by first name or last name (e.g., "Alice" or "Johnson")
    • Use ↑↓ arrow keys to navigate if search doesn't find them

Views & Display

  • Grid view vs List view confusion?
    • 📊 Grid shows cards in a multi-column layout (best for overview)
    • 📝 List shows full-width rows (best for detail + narrow screens)
    • Click the view toggle button to switch
  • List view checkboxes not showing?
    • Checkboxes only appear for selectable statuses (New, Completed unassigned)
    • If you can't select in your current filter, that's why

Panel & History

  • Panel not opening when I click a card?
    • Click anywhere on the card to open; any part should work
    • If panel opens and closes immediately, refresh the page
  • Call scripts/recordings not loading?
    • Click the ▶ button in the history section to open the call modal
    • Recordings require valid URLs; if URL is missing, recording won't play
    • Scripts should always display (even if empty)
  • Assessment Score not showing in panel?
    • Assessment scores only display for candidates with Completed status
    • For other statuses, only Resume Rank is shown

Help & General

  • Can't close the help modal?
    • Click the ✕ button in the top-right corner
    • Press ESC key
    • Click outside the modal (on the dark overlay)
  • Still have questions?
    • Check the help sidebar for other topics (you're reading this in Help now!)
    • Hover over buttons for tooltips
    • Check your region selector - it may filter candidates unexpectedly