Let me provide a comprehensive overview of our implementation architecture and key decisions:
Prism Analytics Integration:
We built a custom integration layer that connects mobile devices to Prism Analytics through purpose-built REST API endpoints. Rather than exposing Prism’s API directly to mobile apps, we created a middleware service that handles authentication, data transformation, and caching. This architecture provides several benefits: we can optimize queries specifically for mobile use cases, implement sophisticated caching strategies, and add custom business logic without modifying Prism datasets.
Our Prism datasets aggregate workforce data from multiple sources:
// Pseudocode - Prism data pipeline:
1. Extract daily workforce snapshots from Core HCM
2. Join with time tracking and absence data
3. Calculate rolling metrics (turnover, absence rates)
4. Apply supervisory organization filters
5. Materialize results in optimized tables
// Refresh schedule: Hourly for operational metrics
REST API Endpoints Architecture:
We designed RESTful endpoints following mobile-first principles - small payloads, efficient queries, and graceful degradation. Each endpoint serves a specific dashboard component:
/api/mobile/analytics/team/{managerId}/summary - Overview metrics
/api/mobile/analytics/team/{managerId}/absence - Absence trends
/api/mobile/analytics/team/{managerId}/turnover - Turnover analysis
/api/mobile/analytics/team/{managerId}/productivity - Productivity indicators
All endpoints support query parameters for date ranges, aggregation levels, and filtering. Response payloads are optimized for mobile bandwidth constraints, typically under 50KB.
Data Caching Strategy:
Our hybrid caching approach balances data freshness with performance:
-
API Layer Cache (Redis): Aggregated metrics cached for 15 minutes. This handles the heavy lifting of Prism queries and serves most requests without hitting the database.
-
Device Cache: Rendered visualizations and UI state cached for 5 minutes using the mobile app’s local storage. This enables instant UI rendering on app launch.
-
Smart Invalidation: Critical events (like new absence submissions or terminations) trigger cache invalidation through push notifications, ensuring managers see important changes immediately.
-
Offline Support: Last successful data fetch is persisted locally, allowing read-only dashboard access even without connectivity. Stale data is clearly marked with timestamp and refresh indicators.
Push Notifications Configuration:
We implemented intelligent notification logic to maximize value while minimizing notification fatigue:
- Threshold-Based Alerts: Notifications trigger only when metrics exceed configured thresholds (e.g., absence rate >5%, overtime >10 hours/week)
- Frequency Limits: Maximum one notification per metric per day per manager
- Priority Levels: Critical notifications (unexpected terminations) override frequency limits; informational notifications (trend changes) respect limits
- User Preferences: Managers can customize which metrics trigger notifications and set their own thresholds
Notification delivery uses Firebase Cloud Messaging for Android and Apple Push Notification Service for iOS, with fallback to in-app notifications if push permissions are denied.
Role-Based Access Controls:
Security implementation leverages Workday’s native security framework:
-
Authentication: OAuth 2.0 integration with Workday ensures API requests are authenticated using the user’s Workday credentials
-
Authorization: Every API call queries the authenticated user’s supervisory organization through Workday’s Organization API:
GET /api/workday/org/supervisory/{workerId}
Response: { "managedWorkers": ["W123", "W124"],
"securityGroup": "Field_Managers" }
-
Data Filtering: All analytical queries include supervisory organization filters, ensuring managers only access data for their direct and indirect reports
-
Audit Logging: Every data access is logged with user ID, timestamp, data accessed, and access method for compliance and security monitoring
Performance Optimization:
Achieving 1.2 second average response time required several optimizations:
- Pre-Aggregation: Complex metrics like rolling turnover rates are pre-calculated in Prism on an hourly schedule rather than computed on-demand
- Query Optimization: Prism datasets use star schema design with appropriate indexes and partitioning
- Parallel Processing: Multiple metric queries execute concurrently when loading the dashboard
- Progressive Loading: Dashboard displays cached summary metrics immediately while background threads fetch updated details
- Network Optimization: API responses use compression and efficient JSON serialization
Implementation Results:
After six months in production:
- 94% manager adoption rate (470+ active users)
- Average 3.2 dashboard views per manager per day
- 40% reduction in time spent generating manual reports
- 25% faster response to workforce issues due to real-time visibility
- 99.7% API uptime with average response time of 1.2 seconds
The key to success was treating mobile as a first-class platform with its own requirements rather than simply adapting desktop analytics for smaller screens. This meant rethinking data architecture, API design, caching strategies, and user experience specifically for mobile use cases.