The live stream is what puts new messages on screen without reloading the page while the inbox is open. When a customer writes to you, the conversation list updates on its own, a new bubble appears in the open chat, and the unread badge changes.
Do not think of it as a notification system: the live stream carries no new information. It only says "something changed", and the screen redraws the data from the server.
When it refreshes
The screen refreshes in four situations:
A new message arrives — the person writes to you, or an automation sends something.
A message status changes — a message is delivered or read.
Something changes in a conversation — an assignment, a close, a reopen, a read receipt.
The connection comes back or you return to the tab — it refreshes once so nothing that happened in between is missed.
Events arriving in quick succession are collected into a single refresh. Five messages landing at once redraw the screen once, not five times. That keeps the screen from flickering during busy hours and avoids needless load on the server.
A refresh does not reset the screen: the conversation you have open stays open, your filter and search stay where they were, and your scroll position is kept. Only the data is renewed.
When an open conversation has unread messages, the panel marks them read on its own. That is why the unread badge in the list drops the moment you open the chat.
The whole path
A message travels from the customer's phone to your screen through these steps:
The customer sends the message from Instagram or WhatsApp.
Meta notifies our server.
The server stores the message and updates the contact and the conversation.
The server broadcasts a "new message" event to every open panel for that account.
Your browser receives the event and redraws the screen from the server.
The second step is out of our hands: if Meta delays the notification, the message lands late. The rest complete in under a second.
💡 The live stream does not only work on the inbox screen; it also drives the unread badge on every page of the panel, so you notice a new message from another screen too.
What happens if the connection drops
The connection between your browser and the server is held open, and a small keep-alive signal is sent every 25 seconds so nothing closes it for being idle. If it drops anyway (a network change, sleep mode, a proxy), the browser reconnects on its own within a few seconds.
When it reconnects, the screen refreshes once. The reason is simple: events published while the connection was down never reach you, and the stream does not replay history. That single refresh catches whatever happened in the gap.
The same thing happens when you send the tab to the background and come back: because browsers can suspend background tabs, the screen refreshes once when you return.
Why your own message appears immediately
When you press Send, the message is drawn as a bubble without waiting for the server. That bubble is "optimistic": it stands in for the real record.
The bubble first carries a clock icon (sending).
It becomes a single tick once the server has stored the message.
The moment the real record appears in the list, the optimistic bubble is dropped, so the same message is never shown twice.
If the list has not refreshed within the expected time, the chat is requested from the server once; if nothing comes back, the bubble disappears on its own.
Thanks to that arrangement you can type several messages in a row and the screen never blocks you. If the send fails, the bubble stays with the reason written under it.
Limits
The live stream works for users with inbox permission; anyone without it cannot see the screen in the first place.
It only carries events for the account you have open. For a message on another account, you have to switch to that account's panel.
Conversations outside your scope do not arrive through the stream either; a chat you cannot see never lands on your screen.
While the browser tab is closed, the stream is closed too. Messages do not "pile up" for a closed tab; when you open it, the screen already draws current data.
Several people can have the same account open. An event reaches every open panel for that account, so a message your colleague sends appears on your screen at once.
What the live stream is not
Do not confuse the live stream with a notification system. Nothing reaches you while the panel is closed: nothing beeps and no pop-up appears. The stream only keeps an open screen current, and you see new messages through the unread badge inside the panel.
One more distinction matters: the stream carries no data. The event that reaches your browser only says "something happened in this conversation"; the message itself always comes from the server, through the permission and scope checks. That is why the content of a conversation you cannot see never lands in your browser.
A worked example
A café keeps the inbox open on the tablet at the till. During the lunch service:
At 12:40 a customer asks whether lentil soup is on today. The list updates on its own and an unread badge appears on the row.
The staff member opens the chat and the unread badge clears.
They type "Yes, until 15:00" and send; the bubble appears immediately.
The Wi-Fi drops for a minute. When it comes back, the screen refreshes once and the two messages that arrived during the outage appear in the list.