Excellent questions about the offline capabilities. Each tablet caches about 2-3 days worth of data, which includes inventory levels for the 5 nearest warehouses to the technician’s assigned territory. We limit it geographically because caching all warehouse data would be too much storage and unnecessary - a technician in California doesn’t need to see inventory in New York warehouses.
Regarding offline changes, when the tablet reconnects, it immediately syncs and compares cached data to current data. If there’s a significant discrepancy (more than 10% variance on any critical part), the technician gets a notification highlighting which parts have changed. This prevents the scenario you mentioned where they expect parts that are no longer available.
For push notification triggers, we use Crystal Reports’ event-based alerting. The alert conditions are evaluated on the server side every time inventory data updates (which happens in real-time via our ERP integration). When a threshold is crossed, the server immediately sends the push notification through FCM. The notification includes the part number, current quantity, warehouse location, and a deep link that opens the dashboard directly to that part’s detail view.
The threshold-based alerts have three severity levels: Info (15% remaining), Warning (10% remaining), and Critical (5% remaining). Critical alerts also send an email to the warehouse manager so they can proactively restock. This two-tier notification system ensures both field technicians and warehouse staff are aware of low inventory situations.
For offline dashboard access implementation, we use Crystal Reports’ mobile app framework with local SQLite caching. The dashboard queries check if the device is online - if yes, it fetches fresh data from the server; if no, it queries the local cache and displays a banner indicating the data age (e.g., “Last updated 2 hours ago”). This gives technicians confidence in the data freshness even when offline.
One key learning: initially we cached all parts data, but that caused slow dashboard load times on the tablets. We optimized by only caching parts relevant to each technician’s job type. HVAC techs get HVAC parts cached, electricians get electrical parts, etc. This reduced cache size by 70% and made the offline dashboard much more responsive.
The 47% stockout reduction came from two factors: the proactive alerts (technicians know about low stock before leaving for the job), and better visibility into nearby warehouse inventory (they can route to a different warehouse if their primary is out of stock). The 30% reduction in return trips has been huge for productivity - that’s about 4 hours per technician per week saved, which translates to one extra service call per day for our team of 25 technicians.