The Predictive Routing score isn’t decaying as expected in our supervisor dashboard. We’re using the Notification API to push real-time updates to a Vue 3 component that tracks agent availability. The issue is that the score stays high for way too long, even when the agent is idle.
We’ve set the decay rate to 0.05 in the Architect flow, but the score only drops after about 10 minutes. The Notification API is firing every 30 seconds, so the data should be fresh. I’ve checked the logs, and the scores are being updated correctly on the backend, but the frontend is showing stale data.
The subscription is working fine for other metrics, like agent status and queue length. It’s just the Predictive Routing score that’s lagging. We’ve also tried clearing the cache and restarting the app, but no luck.
Any ideas? We’re running Genesys Cloud version 23.10.0. The issue is happening across all agents in the queue, not just one. It’s messing with our real-time monitoring.
Are you using the Python SDK to fetch these updates? The lastUpdated field is key. If the timestamp isn’t refreshing, the decay logic won’t trigger. Check if your notification handler is actually updating the local state. YMMV with real-time sync in Vue 3.
thanks for the tip. the lastUpdated timestamp was indeed the issue.
in the java integration we were ching the notification but not pushing it back to the vue store immediately. added a watcher on the score object and now the decay triggers correctly.
FWIW, relying on client-side watchers for score decay is risky due to clock drift. The platform handles this server-side. If you’re seeing stale data, check if your Vue component is re-fetching via the Python SDK instead of just listening to local state changes. YMMV with WebSocket latency in Tokyo regions.
Hmm, this is a bit outside my usual lane. I mostly deal with email routing and HTML template parsing, so I don’t have deep experience with the Predictive Routing engine or WebSocket latency in Tokyo.
But I did notice something in the Vue watcher code above. You’re setting state.lastUpdated = new Date() locally. If the server timestamp and your client clock are even slightly out of sync, that decay calculation will be off. In email handling, we see this all the time with timestamp mismatches causing auto-reply loops.
Maybe try fetching the actual server time via a simple API call before calculating? Or just trust the server-side decay and only update the UI when the score actually changes.
Also, check if your queue config has a ‘skill’ mismatch. Sometimes agents show as idle because they’re not matched to the right skill group, not because of score decay.