One rule governs this whole page: customers start the chat, the shop starts the call
The customer always starts the conversation — the shop can never message a customer first. There is deliberately no "message customer" button in the inbox, because the system would reject that room-creation request instantly. Calling works the other way round: only the shop can initiate. A customer can only call in if the shop has first issued a "call invitation".
Inbox
Private chat with customers who messaged the shop first, unlike "Reviews" which everyone else can see. You need the inbox.reply permission to reply to customers. Two tabs:
- Customers — the shop's chat rooms; everyone holding inbox.reply sees the exact same rooms, and anyone on the team can reply
- Staff — a list of the shop's currently active staff; opening one is a plain private chat between two colleagues, not a shop room, and doesn't need the inbox.reply permission
A failed load is never shown as "no messages yet" — for an inbox, that's the most dangerous lie possible (a customer is genuinely waiting, but the screen says no one has messaged).
Customer chat teams (channels)
Split customer messages into teams by topic, e.g. support, billing, marketing, and let customers pick a channel themselves when they message in — this is how you organise who replies, not where the real messages live (real messages always stay in "Inbox"). You need the inbox.manage permission to create/edit channels.
- Create a channel, then add this shop's staff to that channel's team (pulled from currently active staff only, not a system-wide user search)
- A channel can't be deleted because old messages still reference it — you can only archive (disable) it
Handover (transfer a chat)
Move a customer's chat room from one team to another with a recorded reason — a room already assigned to a team can't be handed off empty (no reason); the system rejects that, so you must always use this screen to move teams.
- A reason note is required — the confirm button stays disabled until you type one
- Choose how much history the new team can see: from the handover point onward · everything · or specific messages only
- The handover's internal note is never visible to the customer
Quick-reply templates
Quick-reply chips in the "Suggested messages" bar in a chat window, saving time on repeated answers — works in both customer chats and regular personal chats.
- Add/edit/delete the shop's templates from the "Add shop template" button in that same bar — you need the inbox.reply permission to see this button. Staff without it can still use their own personal templates normally
- Pressing a chip fills the compose box for you to edit before sending — it doesn't send automatically
- Outsiders can't view the shop's templates at all — not an empty list, no access
Calls
Real inbound/outbound calls between shop and customer, over both sides' actual phones — not a decorative button. Receiving a customer's call needs the calls.receive permission.
- The shop always issues a "call invitation" first — invitations expire, and only one can be active per chat room at a time; issuing a new one automatically cancels the old one
- A customer can only call in while the shop has an active invitation open
- If calls.receive is revoked from a staff member, any call invitation that person previously issued stops working immediately
A failed read of invitation status is never shown as "not invited yet", because that would falsely accuse the shop of not having done something it may well have done — if a read fails, the screen says the read failed and tells you to retry.