Waypoint
Know exactly where every new hire stands before day one becomes a problem.
Waypoint tracks new hire onboarding completion across Dayforce in real time โ so HR teams always know who's on track, who's falling behind, and what needs to happen before day one becomes a problem.
Overview
Onboarding Command Center
New Hire Onboarding Visibility for Dayforce
Built on the Dayforce REST API with a React web frontend. Surfaces new hire onboarding task status, completion progress, and overdue flags across all entities and sites in a single operations view. Supports multi-entity and multi-FOC org structures. Requires an active Dayforce license with HR and Onboarding modules enabled.
Overview
Onboarding Command Center โ Solution Overview
The Onboarding Command Center is a standalone web application built directly on the Dayforce REST API. It pulls new hire records, onboarding task assignments, and task completion status from Dayforce in real time, surfaces them in a unified HR operations view, and gives HR teams the ability to nudge employees and escalate blockers โ all without leaving the app.
No spreadsheets. No manual status chasing. No cross-referencing Dayforce screens to piece together where each hire stands.
The application is built on a lightweight React frontend authenticated against Dayforce via OAuth 2.0. All data originates from Dayforce โ the app writes nothing back except nudge and escalation log entries, which are posted to a lightweight backend and stored in a companion data store for audit purposes. There is no separate ETL, no middleware, and no third-party sync layer. Every page load pulls live from the API.
The app is designed for HR business partners and people operations teams at multi-entity Dayforce customers โ organizations where new hires span multiple FOCs, cost centers, and site locations, and where onboarding completion is currently tracked in a mix of Dayforce screens, email threads, and spreadsheets.
How It Works
When an HR user loads the Onboarding Command Center, the application authenticates against Dayforce via the stored OAuth token, fetches new hire records for the configured lookback window (default: hires with a start date within the last 90 days), and resolves each hire's onboarding task list and completion status. The resulting dataset is rendered as a prioritized work queue โ sorted by risk status, days since start, and overdue task count.
Data flows in one direction for reads:
Dayforce API โ OAuth Token Exchange โ React Frontend โ Prioritized Work Queue
For nudge and escalation actions, the flow extends:
HR User Action โ App Backend โ Dayforce API (notification trigger) + Audit Log
Risk status is calculated client-side on each load using a rule set applied to each hire's task completion relative to their days-since-start. No separate analytics engine. No scheduled jobs for flagging โ the status is always current because it is always derived from live API data.
Integration Architecture
The end-to-end pipeline follows a single pattern:
Dayforce OAuth โ REST API โ React Data Layer โ Component State โ Rendered Work Queue
Four Dayforce API domains are consumed:
Domain | Dayforce API Area | Data Retrieved |
|---|---|---|
New Hires | Employee Management | Employee records filtered by hire date, status, entity |
Onboarding Tasks | Onboarding | Task definitions, assignments, due dates, completion status |
Org Hierarchy | HR Configuration | Entities, departments, cost centers, reporting structure |
User Profiles | Employee Management | Manager assignments, contact details for nudge routing |
Authentication uses OAuth 2.0 with a dedicated Dayforce service account scoped to read-only HR and Onboarding API access, plus write access to the notification endpoint for nudge delivery. The token is stored server-side and exchanged at session initiation โ never exposed to the browser.
All API calls are routed through a thin Node.js backend that handles token management, rate limiting, and response caching. Onboarding task data is cached for five minutes per hire to reduce API call volume on high-headcount pages. The cache is invalidated on any nudge or escalation action for that hire.
Row-level access control mirrors the HR user's Dayforce entity permissions. The app reads the authenticated user's entity scope from Dayforce at login and filters all hire and task queries accordingly. An HR BP scoped to West Region sees only West Region hires. A system admin sees the full org.
Data Model
The app does not maintain a persistent data store for Dayforce-sourced data โ all HR and task records are fetched live. The companion backend stores only action log records.
Hire_View โ Derived Client-Side Record
Assembled per hire on each API fetch. Not persisted. Drives all UI rendering.
Field | Type | Source |
|---|---|---|
Employee_XRefCode | Text | Dayforce Employee API |
Display_Name | Text | Dayforce Employee API |
Job_Title | Text | Dayforce Employee API |
Department | Text | Dayforce Org Hierarchy |
Entity_XRefCode | Text | Dayforce Org Hierarchy |
Manager_XRefCode | Text | Dayforce Employee API |
Start_Date | Date | Dayforce Employee API |
Days_Since_Start | Integer | Calculated: today minus Start_Date |
Task_Total | Integer | COUNT of assigned onboarding tasks |
Task_Complete | Integer | COUNT of tasks with completion status |
Task_Overdue | Integer | COUNT of tasks past due date and incomplete |
Completion_Pct | Decimal | Task_Complete / Task_Total |
Risk_Status | Text | Calculated: Overdue, At Risk, On Track โ see rule set below |
Task_View โ Per-Task Record
One record per onboarding task per hire. Assembled from Dayforce Onboarding API response.
Field | Type | Source |
|---|---|---|
Task_ID | Text | Dayforce Onboarding API |
Employee_XRefCode | Text | Dayforce Onboarding API |
Task_Name | Text | Dayforce Onboarding API |
Due_Date | Date | Dayforce Onboarding API |
Completed_Date | Date | Dayforce Onboarding API โ null if incomplete |
Status | Text | Derived: Done, Pending, Overdue |
Days_Overdue | Integer | Calculated: today minus Due_Date if incomplete and past due |
Owner_Type | Text | Employee, Manager, HR โ indicates who is responsible |
Action_Log โ Persisted Backend Record
Written on every nudge or escalation action. Stored in the app's companion Postgres instance.
Field | Type | Notes |
|---|---|---|
Log_ID | UUID | Auto-generated |
Employee_XRefCode | Text | Target hire |
Action_Type | Text | Nudge_Employee, Nudge_Manager, Escalate_HR, Flag_Blocked |
Initiated_By | Text | HR user XRefCode |
Task_ID | Text | Task that triggered the action โ null for full-hire escalations |
Timestamp | DateTime | UTC |
Note | Text | Optional free-text note entered by HR user |
Delivery_Status | Text | Sent, Failed, Pending |
Risk Status Rule Set
Risk status is derived client-side on each load. Rules applied in priority order โ first match wins.
Status | Rule |
|---|---|
Overdue | Any task is past its due date and incomplete, AND hire is more than 3 days past start date |
At Risk | No overdue tasks, but completion percentage is below threshold for days-since-start bracket (see below) |
On Track | Completion percentage meets or exceeds bracket threshold and no overdue tasks |
Completion Threshold Brackets
Days Since Start | Expected Completion % |
|---|---|
0โ3 | 0% (grace window โ no flagging) |
4โ7 | โฅ 20% |
8โ14 | โฅ 40% |
15โ21 | โฅ 65% |
22โ30 | โฅ 80% |
31+ | 100% |
Brackets are configurable at deployment time via an admin settings screen. Customers with longer or shorter onboarding cycles adjust thresholds to match their standard.
Application Views
Work Queue (Default View)
The primary screen. All active onboarders rendered as a prioritized card list โ Overdue at top, then At Risk, then On Track, within each group sorted by days since start descending. Each card shows: name, title, department, entity, manager, start date, days-since-start badge, risk status badge, task completion bar, per-task status breakdown, and action buttons. Filters by entity, department, manager, and risk status. Full-text search across name, department, manager, and entity.
Hire Detail View
Single hire drill-through. Full task list with due dates, days-overdue callouts, owner type per task, and complete action log history for that hire. HR can nudge, escalate, or flag as blocked from this view with an optional note.
Entity Summary View
Aggregate view by entity or FOC. Headcount in each risk tier, average completion percentage, overdue task count, and most common blocked tasks across the entity. Designed for HR leads managing multi-site operations.
Admin / Configuration View
Manage completion threshold brackets, configure notification routing (which Dayforce user receives nudge emails per entity), set the active lookback window, and view API health status including last successful sync timestamp and any rate limit events.
Action Types
Four actions available from the work queue and hire detail view.
Action | Behavior |
|---|---|
Nudge employee | Triggers a notification to the hire via Dayforce's notification endpoint listing their incomplete tasks and due dates. Logged to Action_Log. |
Nudge manager | Triggers a notification to the hire's manager with a summary of incomplete tasks. Logged to Action_Log. |
Escalate to HR | Flags the hire for HR review and optionally routes a summary to a configurable HR inbox. Updates risk display with an escalation indicator. Logged to Action_Log. |
Flag as blocked | Marks the hire as externally blocked โ removes from overdue flagging logic temporarily and notes the block reason. Logged to Action_Log. Used when a task is delayed due to a third-party dependency (e.g. background check vendor delay). |
Deployment Architecture
Three-component deployment. All components are containerized and deployable to any cloud environment.
Component | Stack | Purpose |
|---|---|---|
React Frontend | React, hosted on Vercel or Azure Static Web Apps | UI rendering, client-side risk calculation, filter and search logic |
Node.js Backend | Express, deployed to Azure App Service or equivalent | OAuth token management, Dayforce API proxy, cache layer, Action_Log writes |
Postgres Instance | Azure Database for PostgreSQL or equivalent | Action_Log persistence only โ no HR data stored |
The backend never persists Dayforce employee or task data. It proxies, caches briefly, and passes through. All PII remains in Dayforce as the system of record.
Deployment Sequence
Three-phase deployment to stand up the full stack.
Phase | Deliverable | Detail |
|---|---|---|
1 | Dayforce API setup | Service account created in Dayforce, OAuth 2.0 client registered, API scopes granted for Employee, Onboarding, and Org Hierarchy read; Notification write enabled |
2 | Backend deploy | Node.js API deployed, environment variables set (Dayforce client ID/secret, Postgres connection string), token exchange validated, caching layer confirmed |
3 | Frontend deploy | React app deployed, entity scope filtering validated against test HR accounts, completion threshold brackets configured for client, action routing tested end-to-end |
Requirements
Requirement | Minimum |
|---|---|
Dayforce | Active license with HR and Onboarding modules enabled |
Dayforce API Access | OAuth 2.0 client registration; Employee, Onboarding, Org Hierarchy read scopes; Notification write scope |
Frontend Hosting | Vercel, Azure Static Web Apps, or equivalent |
Backend Hosting | Azure App Service, AWS App Runner, or equivalent Node.js host |
Database | Postgres โ minimal footprint, action log only |
Browser Support | Chrome, Edge, Firefox โ modern evergreen versions |
Multi-Entity | Requires Dayforce org hierarchy export and entity-scoped HR user accounts |



