Real-time updates
Hilal uses a WebSocket layer to push updates to your browser without you refreshing. Most of the time it’s invisible — numbers just stay fresh. This page explains what’s covered and what to expect.
In this guide:
- What’s pushed live
- What’s not pushed live
- Indicators in the UI
- Cross-tab consistency
What’s pushed live
The following update without a page refresh:
- Quota usage — AI tokens, members, marketplaces, storage. The live counters in Settings → Subscriptions update as usage accrues.
- Notifications — the bell icon shows new alerts in real time.
- FBA shipment status — when Amazon flips a shipment to “receiving” or “closed,” Hilal updates immediately.
- Order arrivals — new orders appear in the Orders list as they come.
- Workflow status — long-running operations (large data syncs, bulk imports) push their progress.
- Permission changes — if your role changes, the affected UI hides or shows menu items on the next interaction without a reload.
What’s not pushed live
The following needs a page refresh or scheduled sync:
- Amazon-side data that Hilal pulls on a schedule — campaign performance refreshes hourly, settlement reports refresh on the settlement cycle.
- AI Chat conversations — your own session is live, but cross-device sync waits for the next page load.
- Superset dashboards — refreshes on the dashboard’s configured interval.
Indicators in the UI
A small WebSocket status indicator sits in the bottom-right of the app:
| Indicator | Meaning |
|---|---|
| 🟢 Live | Connected; updates flowing. |
| 🟡 Reconnecting | Lost connection; retrying. Hilal queues updates for when it’s back. |
| 🔴 Disconnected | Couldn’t reconnect after several attempts. The app falls back to polling — slower but still functional. |
Cross-tab consistency
If you have Hilal open in multiple tabs, the WebSocket layer keeps them in sync — switching organization in one tab updates the others; clearing a notification in one clears it everywhere.
This is also why the React Query cache clears on org switch: stale data from the previous org would otherwise show until the next refetch.
Troubleshooting
- Indicator stuck on Reconnecting. Your network is throttling WebSocket connections. Refresh; if persistent, your firewall may be blocking WebSocket — switch to a different network.
- Updates not appearing despite Live indicator. The page may be in a degraded state. Refresh.
- Two tabs showing different data. Both should sync once they catch up over the WebSocket — wait a few seconds. If persistent, refresh both.