Team chat and guests
A shift usually talks in a messenger, guests write into a different window, and "what is urgent" is known only to whoever is in the room today. The Work chat section brings that together: internal staff messaging, a single queue of things to decide, the task board and the whole guest chat — from messengers, from the storefront and from your own website.
Open: Admin panel → Work chat (admin.cenaly.com/team-chat). The section is open to every role — it has no toggle of its own, and the only gate is section access in the role settings. The same chat opens as a drawer over the register, so a cashier or a host can answer a guest without leaving the POS.
There is no separate "Chat" page any more: the guest chat lives as the Guests section in this very window. Old
/chatlinks lead here.
What you need to start#
| What | Why |
|---|---|
| Staff with their own logins | only people with a login exist in the chat; create them in Employees |
| Section access in the role | without it a person does not see the chat; access levels are set there too |
| The "Guests" right — for the guest chat | the section is visible to the owner, admin, host, receptionist and support; others simply do not have it |
| Connected guest channels | WhatsApp, Telegram, Facebook, Instagram, e-mail, storefront chat and the widget — see guest chat and site widgets |
| A shift schedule — optional | needed for "do not disturb outside my shift" and the green "on shift" dot |
No devices and no separate subscription are required: the chat works in the panel, in the app and in the POS drawer.
Step 1. Channels, groups and direct messages#
On the left (on a narrow screen — on top) is the channel rail:
| Channel | What it is |
|---|---|
| Notifications | your personal system channel: the schedule was published, the payslip is ready, something needs a decision. Only the system writes here — you cannot reply |
| Everyone | the account-wide channel |
| Locations | one channel per location; there is a search if you have many |
| Groups | your own channels per topic: "Senior shift", "Kitchen" |
| Assistant | a private conversation with the company AI assistant (see below) |
| Direct messages | 1:1 with colleagues |
| Digital workers | a channel for each AI persona you created |
Groups are created and edited by the owner and managers: up to 50 groups per account, a title up to 80 characters, from 2 to 200 members; the author is always in the group. The server only sends you the groups you belong to and delivers messages strictly by membership. Creation, membership edits and disbanding reach members instantly — a channel appears and disappears without a reload. Disbanding removes the channel from the lists but does not destroy the history — it simply stops being visible.
Unread counts are tracked per channel; the system channel counts like any other.
Step 2. Messaging: mentions, announcements, pins#
The feed works like a familiar messenger: sending is instant, history loads as you scroll up (the feed does not jump), messages from one author within 5 minutes are merged, the start of the unread part is marked with a "New messages" divider, and a "↓" button at the bottom takes you to the latest.
@-mentions. Typing @ opens the list of channel members; up to 20 mentions per message. A manager also gets two group tokens — "Everyone" and "Managers"; they expand into people at delivery time, so "everyone" means everyone who is in the channel now, not a snapshot of when the message was sent. A mentioned person is always notified: a mention breaks through both "Mentions only" and quiet hours. A message that mentions you is highlighted with a border.
Announcements. A manager can send a message as an "Announcement" (📣 in the composer) into the company, location or group channel: it is drawn as an amber block with "Read by 6 of 9" and a "Got it" button underneath. Hovering shows by name who has not confirmed yet. The audience is a snapshot taken at send time, so the counter does not drift with hiring and leaving. Text up to 1000 characters, audience up to 500 people; direct messages and the system channel have no announcements.
Pins. Up to three pinned messages per channel (📌 in the message menu, set and removed by a manager). The header with pins is drawn as soon as the channel opens and survives old messages moving into the archive; clicking a row jumps to the message.
Reactions. The ☺ button next to a message opens a palette of twelve common emoji; reactions hang as chips under the message, and hovering shows who left them. A reaction is not a message: it does not move the channel in the rail, does not grow the unread counter and does not ping anyone. Caps: 20 distinct emoji per message and 5 from one person.
Attachments. An image is shown as a thumbnail inside the message (a click opens the original), a document as a tile with an icon, a name and a size; the chosen file is visible before sending. The limit is 6 MB per file. Only the owner and managers can delete other people's messages.
Also in the message menu: "To task" creates a task from the message; "Assign to a digital worker" hands the text to an AI persona; an invitation to view the register's screen opens right from the chat (closing the viewer reliably stops the session on that machine).
Step 3. Notifications, quiet hours and "who is on shift"#
Every channel has its own setting in the conversation header: "All messages", "Mentions only" or "Off" (a muted channel is marked in the rail). Next to it — "Do not disturb outside my shift": a notification arrives only if you are not on shift right now according to the schedule.
Silence is switched on only on positive knowledge about the shift: the account has a schedule, you are in it, and there is no current window with a 30-minute margin. No schedule — no silence: a chat that stays quiet is worse than an extra notification. Quiet hours do not apply to direct messages and the system channel, and mentions and announcements always break through.
⚠️ What is muted are the notifications. The conversation itself flows as usual, so an open tab never drifts apart from the server.
In the member list a person on shift has a green dot and the caption "on shift until 18:00". This is not presence: in a venue it matters who is in the room, not who keeps a tab open.
Step 4. "Needs decision" — the shift queue#
The first item in the rail (🚨) with a red number is the single operational inbox. On the right is one flat queue of things with a horizon of less than a day, sorted by urgency: age plus the weight of the type, with an overdue deadline lifting the row to the top.
What it collects (fourteen sources): new orders, waiter calls, hotel room requests, unconfirmed bookings and appointments, today's arrivals, the callback queue for missed calls, returns, parcels with an expiring pickup deadline, storefront access requests, "call me back" leads from the site, marketplace requests, untouched low reviews (3★ and below) and HR requests addressed to you personally.
A case is closed in place where that is possible: "Accept" / "Reject" an order, "Dismiss call", "Take" and "Done" for a room request, "Confirm" / "Cancel" a booking, "Called back" / "No answer", "Approve" / "Decline". Anything irreversible asks for confirmation. Returns, arrivals and parcels lead to their own section by a link: the decision needs full context. The anti-noise rule: every row has either a closing button or a server deadline — there are no eternal cards in the queue.
"👤 Assign to me". The button in the row tells colleagues that someone has taken the case: they see a chip "👤 Maria · 5 min · note" without a reload. You can release your own claim and attach a short note (up to 200 characters). This is a hint, not a lock: the closing buttons stay available to everyone, and taking over someone else's claim simply asks for confirmation. Closing a case releases the claim on its own; after 24 hours a claim expires.
Two tabs. "Urgent" is this queue, and it is what forms the red number. "On watch" is the periphery with a horizon longer than a day: B2B invoices, quotes, CRM tasks, reviews, cash risks, telephony, documents, debts; it is not part of the number. The address is /team-chat/?inbox=1 and …&view=control.
The same queue exists as its own sidebar section — Needs attention. It is the very same inbox: one data source, one list, one counter; by construction the two entrances cannot disagree.
The queue refreshes when the page opens, when the tab regains focus, every 2 minutes while the tab is visible, and on live events for orders, waiter calls, room requests and bookings. If the first decision has been waiting too long, a reminder card arrives in the system channel.
Step 5. The "Guests" section — the whole guest chat#
The Guests item in the rail opens the full guest conversation centre on the right — four tabs:
| Tab | What is there |
|---|---|
| Inbox | the queue of threads and the thread with the guest card |
| Contacts | contacts merged from conversations across all channels; segments, CSV export and import |
| Analytics | conversations per period, average first reply, ratings, monthly reports |
| Settings | channels, the AI assistant, routing, SLA, macros, chat widget settings |
Inside a thread: a Reply to the guest and a private Note for the team (the guest does not see it), attachments, canned replies, ⚡ macros, ✨ AI assist ("Suggest a reply", "Improve the text", "Translate for the guest", "Summarise the conversation"), @-mentions of colleagues, "Take over from bot" / "Hand to bot", "Assign to me", "Resolve". The guest card shows the name, contacts, language, page, order history and a returning-guest badge.
All of the state lives in the address: tab, thread, filter, location, month. A link can be forwarded to a colleague and they will land in exactly that conversation.
Channels, the AI bot and widget setup are covered in Guest chat. This article only covers how the team works the queue.
The guest queue: views, "waiting for the guest", following#
Instead of tabs and "mine only / unread" chips there are ten fixed views with counters:
Mine (open, assigned to me) · Unassigned (open, no owner) · All open · Bot-led · Waiting for the guest · Snoozed · Following · SLA breached · Mentions · Resolved.
A counter is the number of threads in the view; empty views are not hidden (a row that vanishes reads as a breakage). "Unread" remains a secondary filter next to channel, label, priority and search.
"⏳ Waiting for the guest" is a separate status next to "Resolve". The operator has replied and is waiting: the thread leaves "open" and "Mine", and the row gets a "⏳ waiting N h" badge. A reply from the guest returns the thread to work with the same owner and marks it unread; to bring it back by hand use "↩ Back to work". The waiting time is subtracted from the resolution SLA: the venue is not at fault when the guest is silent. The guest does not see the status — for them the conversation is simply open.
Lifecycle timers (settings → "Conversation lifecycle"): remind the guest after N hours of waiting (48 by default), close after N days of waiting (5 by default), close silence in an open conversation after N days (7 by default). Zero switches a timer off. The reminder text can be your own; a guest replying after an auto-close reopens the same conversation — no separate follow-up ticket appears.
"👁 Follow this conversation" is a toggle in the thread header. Followers (up to 20 per thread) see an eye icon in the row and get the "Following" view, and a card arrives in their personal system channel when the thread has unread messages again or the status changes. The author of the event does not get the card — otherwise following would become an echo of your own actions.
"💬 Discuss with the team" is an action in the thread header: pick a work chat channel and write a text. A guest conversation card goes into the channel (name, channel, preview of the last message, status, an "Open conversation" button), and a private note "Discussion in the work chat" with a link to that channel lands in the guest thread. The conversation itself is not copied into the work chat — only the preview.
If the thread is linked to a booking or an appointment, a booking card sits between the header and the feed: when, the service, the master or the table, party size, status, deposit, a no-show flag — and one-tap actions ("confirm", "arrived", "no-show", "reschedule", "cancel", "request payment"). The status changes through the same call as the floor board, so the board in the neighbouring tab shows the same thing in the same frame.
Collisions: who is viewing and who is typing#
An open thread tells colleagues you are there, and tells you about them. The thread header shows a chip "👀 Maria is viewing" or "✍️ Maria is typing…", the list row shows a colleague's initial, and if you send a reply while someone else is typing, a non-blocking line "Maria is writing a reply too" appears under the composer.
There are deliberately no locks: in a small team two operators help each other more often than they get in the way — what matters is only seeing each other before you send.
The company assistant and the AI secretary reading room#
"Assistant" at the top of the rail is a private conversation that every participant has and only they can see. The assistant answers from the venue's knowledge base documents: on an empty channel it shows example questions ("How do I open a shift on the register?", "What do I do if a guest asks for a refund?"), while working it shows "The assistant is thinking…", and under the answer it draws source chips — which documents it built the answer from. It answers in the language of the question and only from the base; if there is no answer there, it says so honestly and suggests asking a manager. Up to 8 recent messages are used as context. When the account's AI balance is spent, the assistant says exactly that.
"AI secretary" in the rail is a reading room, not a console: a text transcript of what the robot says to calling guests. You see the last 20 calls of the chosen location, and a call happening right now arrives as live lines. You cannot answer by voice from here: decisions about handing a call to a human stay in the AI receptionist section and on the employee's phone. The item is visible only to those who have the right to that section.
Tasks, digital workers and kudos#
"Tasks" (📋, an amber number) is the same board as the Shift tasks section: list, kanban and "My day", a task editor, checklist templates. The amber number does not mean "unread" but "my tasks that need action now". The links work both ways: "To task" from a message, the "from chat" chip in the task card returning to the original channel, and the "Discuss in chat" button in the editor opening the location channel with a pre-filled message (you confirm sending).
"Digital workers" is a section built from the account's registry of AI personas: a persona appears as soon as it is created and disappears when it is revoked. The channel is two-way: a job is given as an ordinary message, and the worker answers there — "accepted", a run report, a question before anything irreversible. The row shows the persona's status: "online", "paused" or "offline" — it decides whether work starts now or waits in the queue. Details are in Digital worker.
Kudos and the mood pulse. A separate panel behind a button in the rail: a short thank-you to a colleague (up to 280 characters) as a card in the channel feed, and a mood survey. The survey aggregate is visible to the owner and managers, and only after a threshold of responses; individual answers are never visible to anyone.
Limitations#
- Only staff with logins. A person without panel access does not appear in the chat; guests write into the separate "Guests" section, not into team channels.
- External mail is a separate section. Letters live in Mail and are not merged into the work chat.
- On
cenaly.ruthere are no mobile push notifications. The chat there lives on the live connection: a reply and a colleague's message arrive in an open tab or when you enter the channel, but no push reaches the phone. The "typing…" indicator in groups and the "who is viewing" chips will start working on.ruafter the updated connection service is rolled out. - On
cenaly.ruthe "Guests" section has no e-mail channel and no inbound WhatsApp through the official API — the other channels work. - AI help on the task board does not work on
cenaly.ru(free-text parsing, decomposition, semantic search and reliance on the knowledge base). The deterministic core — "My day", the briefing, priorities, capacity, the assignee suggestion — works in both clouds. - The low-rating card reaches the chat only in the AWS contour; the "Needs decision" queue itself works on
.ru. - Quiet hours need a shift schedule. Without a schedule silence is not enabled and there is no green "on shift" dot.
- An "Assign to me" claim is not a lock. It warns, but does not stop a colleague from closing the case; taking it over asks for confirmation and that is all.
- Disbanding a group does not delete the history — it stops being visible but is not destroyed.
- Mobile pushes from the task coordinator are still bilingual in one line.
Troubleshooting#
| Symptom | Check |
|---|---|
| The section is not in the sidebar | section access in the role settings — the chat has no toggle of its own; the employee needs a login |
| There is no "Guests" section | it is a separate right: owner, admin, host, receptionist and support. Following a direct link, a role without the right simply stays in the ordinary chat |
| Colleagues do not see my message | a group channel is delivered strictly by membership — check that the person is in the group; in a direct message only two people see it |
| No notifications | the channel mode ("Mentions only" / "Off"), "Do not disturb outside my shift" and the fact that you are off shift right now. On cenaly.ru there are no mobile pushes at all |
| The red number does not match my feeling | "Urgent" and "On watch" are different horizons: only "Urgent" is counted. The server computes the number with the same permission checks, so other people's cases never leak into it |
| A case hangs in the queue and will not go away | every row has either a closing button or a deadline; returns, arrivals and parcels are closed in their own section — the row leaves after that |
| A subordinate's leave request is not in my queue | an HR request goes to the person it is addressed to. The full list of what you may decide is in the "Requests" tab of the Employees section |
| A guest conversation disappeared from "All open" | it may have moved to "Waiting for the guest" or "Snoozed" — they have their own views |
| A file will not attach | the limit is 6 MB per file; some file types the chat does not carry |
A symptom-by-symptom walkthrough lives in troubleshooting; if nothing helped, write to us — see how to get help.
FAQ#
How is the work chat different from the guest chat?#
It is one window and two different contours. Team channels are staff messaging. The "Guests" section is the conversation with a guest from messengers, the storefront and the widget: its own statuses, SLA, owners and bot. Their data is separate: discussing a conversation in a team channel does not copy the guest's messages into it.
Can the kitchen use the chat if the cook has no computer?#
Yes. The chat opens as a drawer over the register and in the mobile app: a cook only needs a staff login. On cenaly.ru there will be no phone push — the message appears when the app is opened.
Does the guest see that I set "Waiting for the guest"?#
No. For the guest such a conversation is simply open: they see neither "resolved" nor a request to rate it. The status is for your queue, not for them.
Two of us answered the same guest — how do we avoid that?#
Before sending, the thread header shows "👀 viewing" and "✍️ typing…", and if you press "Send" while a colleague is typing you get a warning. We deliberately do not lock threads: in a team of two to five people a lock gets in the way more than it helps.
Who sees the mood survey answers?#
The aggregate goes to the owner and managers, and only after enough people have answered. Individual answers are shown to nobody, the owner included.
Can I answer a guest by voice from the AI secretary reading room?#
No. It is a transcript of the robot's conversations, not a console: handing a call to a human is done in the AI receptionist section and on the employee's phone.
Related articles#
- Guest chat — channels, the AI bot and chat widget setup
- Needs attention — the same queue of cases as a separate section
- Shift tasks — the same board as in the "Tasks" section
- Employees and shifts — logins, roles and the schedule quiet hours depend on
- Requests: a single inbox — the same visitor requests as a separate stream
- Mail and the AI auto-responder — external correspondence
- AI receptionist and Calls — the telephone side of talking to a guest
- Digital worker — the AI personas that work inside a chat channel
- Knowledge base — what the company assistant answers from