Task #57
openv19.00 Start applying heartbeat
0%
Description
Yes. In your FluentSupport plugin, heartbeat could be used for several useful “near real-time” situations.
- 1. Conflict badge
Already implemented.
Show when another agent is viewing the same ticket.
Example:
“Ticket already open by Maria”
- 2. Reply ownership guard refresh
Very useful with v18.14.
Heartbeat can keep checking:
- is this ticket assigned to me?
- is it assigned to someone else?
- is it unassigned?
Then it can automatically:
- enable Reply
- disable Reply
- show “Assign this ticket to yourself before replying.”
This avoids stale screens.
- 3. Assignment status refresh
If another agent assigns/releases the ticket, your screen updates automatically.
Example:
Assigned to: John
Unassigned
Assigned to: Maurizio
This would be especially useful in the ticket list.
- 4. Release button visibility
Heartbeat can decide whether the Release button should show.
For example:
- show Release ticket only if assigned to current agent
- hide Release ticket if assigned to another agent
- hide it if unassigned
- 5. Forward button availability
Maybe Forward should always be visible, or maybe only visible for assigned/admin agents.
Heartbeat can keep that decision current without page refresh.
- 6. Admin archive button visibility
For admins only, the archive button can stay synced with the live ticket status.
Example:
- show YDB Archive only for admins
- hide if ticket is already closed/archived
- refresh if ticket status changes
- 7. Ticket list assigned-agent column
Your new table-like list could refresh the Assigned to column.
This is very practical.
Example list:
| Ticket # | Subject | Status | Assigned to |
| -------- | ---------------- | ---------------- | ----------- |
| 123 | Invoice issue | Open | Maria |
| 124 | Booking question | Waiting Customer | Unassigned |
No manual refresh needed.
- 8. Ticket list status column
Heartbeat can refresh ticket status in the list.
Useful if another agent closes, replies, or changes priority/status.
Example:
Open → Waiting Customer → Closed
- 9. New reply/customer message indicator
Heartbeat can check if a ticket has new replies since the page was loaded.
Example:
New customer reply received
Or in the list:
Ticket row flashes / badge appears
- 10. Internal notes indicator
If another agent adds an internal note, heartbeat can show:
New internal note
This avoids agents missing important internal updates.
- 11. “Currently typing” indicator
Possible, though more delicate.
Example:
Maria is typing…
The browser sends a short heartbeat when an agent is typing in the reply box.
This is nice but not essential.
- 12. Ticket lock warning before reply
Before an agent sends a reply, heartbeat state can be checked one last time.
Example:
This ticket was just assigned to another agent. Reply blocked.
This is safer than checking only when the page first loads.
- 13. Ticket list row sorting freshness
If a ticket receives a new reply, the row can move to the top or show as updated.
This creates a more live inbox experience.
- 14. Agent online / active dashboard
Heartbeat can show who is currently active in FluentSupport.
Example:
- Maurizio — online
- Maria — viewing ticket #142
- John — idle
This could be useful for admins/team leaders.
- 15. Per-ticket viewer list
Instead of only showing a conflict badge, it could show the current viewers.
Example:
Viewing now: Maurizio, Maria
The red badge remains for conflict, but a small detail panel could show more.
- 16. Auto-clean stale assignment UI
If an agent closes the browser or loses connection, heartbeat expiry can remove stale presence.
This is already part of the conflict logic, but it could also clean other UI states.
- 17. SLA / waiting-time warning
Heartbeat can refresh time-sensitive warnings.
Example:
Customer waiting 18 minutes
SLA risk
No reply for 2 hours
This would be useful in a support team.
- 18. Ticket priority change alert
If someone changes priority, heartbeat can update it live.
Example:
Normal → Urgent
- 19. Product/tag/custom-field refresh
If FluentSupport products, tags, or custom fields are used operationally, heartbeat can keep them current in the ticket list or ticket header.
Example:
Product: Booking Engine
Tag: Refund
Region: Greece
- 20. Lightweight “live ticket header”
This may be the best next UI improvement.
At the top of the ticket view, heartbeat could maintain a live mini-header:
Ticket #123 · Open · Assigned to Maurizio · Viewed by Maria · Reply allowed
That would combine several features into one clean operational panel.
No data to display