Apps · Communication

Team chat & calls

Talking to the people you work with, and to the people you work for. Team Chat is colleague-to-colleague messaging that follows you around the app; Voice is a phone in your browser, with queues and a call log that lands on the customer's record.

User guideApps › Team chat & calls

Two different things, on purpose

AppWho you're talking toWhere it appears
Team ChatYour colleagues.A panel that slides out from the top bar, on every screen.
VoiceCustomers, over the phone.A softphone docked at the bottom of the screen, plus settings and call logs.
InboxCustomers, in writing.Its own page — Omnichannel inbox.

Team Chat is deliberately not a channel of the customer inbox. Customer conversations belong to a lead and a channel; internal conversations belong to people and teams, so they're kept apart.

Opening Team Chat

There is no Team Chat page to navigate to. Once the app is installed, a Team Chat speech-bubble icon appears in the app header, just before the notifications bell — with a red unread badge when messages are waiting. Click it and the chat panel slides in from the right, over whatever you were doing. Esc closes it, as does clicking outside it or the Close button.

Because the icon lives in the header rather than on a page, chat is reachable from anywhere in the workspace and the badge keeps counting while the panel is shut. If you don't see the icon at all, the app isn't installed on your workspace, or you haven't been given access to it — see Permissions.

Starting a conversation

The panel lists what you already have, and everyone you could talk to:

SectionWhat's in it
Direct messagesYour one-to-one conversations, most recent first.
Team roomsOne room per team you belong to. Membership follows the team — there's nothing separate to join.
PeopleThe directory. Click a name to open (or start) a DM with them.
TeamsThe teams you're in. Click one to open its room.

The Search… box at the top searches conversations and the directory at once, so you can type a colleague's name whether or not you've ever messaged them. Names carry an avatar with a presence dot — Online when they're in the app.

A one-to-one conversation always collapses to a single thread: opening a DM with the same person twice reopens the same history rather than starting a second one.

Sending messages

  1. Type and press Enter The composer reads Type a message… (Enter to send).
  2. Attach a file The Attach file button stages files as chips before you send; images and media render inline in the thread and open in a lightbox.
  3. Mention someone with @ Typing @ and a colleague's handle notifies them. Mentions resolve against the people in that conversation and fire a real notification — it shows on the bell, not only inside the chat panel.
  4. Share a record with # The Share a record button (or typing #) opens a two-step picker: Pick what to share…, then search within it. The record arrives in the thread as a clickable chip that opens it.
Sharing a record doesn't share access to it

You can only pick from records you're allowed to see, and the chip's title and icon are re-derived on the server from your own permitted view — a client can't fake a label. Opening a shared record is checked again against the recipient's permissions, so a colleague without access sees the chip's title text but cannot open the record.

Unread counts and notifications

  • The header icon carries a total unread badge (99+ above ninety-nine), and it stays live while the panel is closed.
  • Each conversation in the sidebar carries its own unread badge, cleared when you open it — or when the message arrives with it already open.
  • Messages arrive live, with no refresh, along with typing indicators (… is typing…, or Several people are typing…).
  • Being @-mentioned raises a notification on the bell, so it reaches you even if you never open the chat panel.

Voice: the softphone

The Voice app puts a working phone in the browser. Once it's installed and connected, a softphone is docked at the bottom right of the screen for every member of the workspace — it has to be there for inbound calls to be able to ring you.

Connecting the telephony account is an admin job done once, on the Voice → Settings page at /__twilio, and it's covered in Integrations. Until that's done the softphone shows a prompt to open Voice settings instead of a dialpad.

Calling a customer

  1. Dial from the softphone Open the docked softphone, key the number on the dialpad and place the call. Your workspace's default caller ID is what the customer sees.
  2. Or click the number on a record Any phone field in the workspace shows a call button while the softphone is running. Clicking it opens the softphone pre-dialled with that number — no copy-paste, no mis-keyed digits.
  3. Work the call Mute and hang up are on the softphone, with a live timer running for the length of the call.

Taking a call

  1. Mark yourself available The softphone carries an Available for queue calls toggle. Queue calls are only offered to agents who are available — if nobody is, the call goes to the queue's overflow instead.
  2. Answer or reject An incoming call rings in the softphone, with accept and reject.
  3. Keep the workspace open The softphone is what registers you as reachable. Close the tab and calls can't ring you.

Routing: what happens before your phone rings

Inbound calls resolve in a fixed order — flow, then queue, then everyone:

If the number is…Then
Assigned to a call flowThe flow runs — a spoken greeting, a keypad menu, then on to a queue, another number, voicemail or hang up. Flows are built on the Flows tab as connected steps.
Assigned to a queueThe caller hears the queue's greeting and waits with hold music while an available member of that queue is found and rung. Not answered within the queue's ring timeout, it goes to overflow.
NeitherIt rings the workspace's softphones.

A queue's overflow is configurable: forward to another number, take a voicemail, or hang up. A voicemail is written to the call log and notifies every member of that queue.

Admin

Numbers, queues, flows and connection settings all live on /__twilio, split across tabs — Connection, Numbers, Queues, Flows and Analytics. The Queues tab also shows a live monitor: who's staffing each queue, how many callers are waiting and the longest wait. A Recent Twilio errors panel on the Connection tab surfaces the provider's own error log, which is where to look first when inbound calls aren't arriving at all.

Call logs

Every call writes a record under Voice → Call logs. It's an ordinary workspace list, so it filters, searches and opens like any other — Records. Each entry carries:

  • the other party, plus the From and To numbers;
  • Direction and Status — including voicemail for a message left at overflow;
  • Duration, Started and Ended;
  • the Agent who handled it, and a recording where one exists.

Two views come as standard: All calls and Missed. The log is owner-scoped on the Agent field, so a rep with a view-own grant sees their own calls while a manager sees the team's. Outbound calls attribute cleanly to whoever placed them.

Recording is off unless it's switched on — there's a workspace-wide Record all calls setting and a per-queue record option. Where a call was recorded it plays inline from the Analytics tab's Call recordings list. That same tab totals answered, missed and voicemail calls, splits inbound from outbound, and shows average duration, per-agent counts and a fortnight of call volume.

Calls can also be placed by automation: a flow action dials a number and reads out a message, which is how a voice notification — a delivery alert, an appointment reminder — goes out without anyone picking up a handset.

Mobile Call Sync

Reps make calls on their own phones, not only through the softphone. The Mobile Call Sync app pulls the Android call log from the BackOffice companion phone app into the workspace, so those calls show up alongside the rest of a customer's history. It appears in the sidebar as Mobile calls.

Only calls that match a contact are stored — nothing else is

Each synced call's number is matched against your contact records. A call that matches a contact is stored. A call that doesn't match — every personal call on that phone — is counted for the rep's own synced/skipped statistics and then discarded inside the same request: no number, no record, no log entry. That is the whole privacy contract, and it's what makes the feature safe to run on a personal handset.

  • It's per-person and opt-in. Sync is a toggle in the phone app's own settings, and the phone asks for call-log permission the first time. That settings sheet shows the toggle, the totals held on the server, the last run's numbers and a Sync now button.
  • Matching is by phone number, tolerant of formatting — a call log's +995… matches a contact stored as 0555 98 76 54. Very short numbers (short codes, withheld caller ID) can't be matched, so they're never stored.
  • Calls made before the contact existed aren't back-filled. If someone rings before they're in your CRM, that call was already discarded; adding them later doesn't recover it.
  • It isn't in every build of the phone app. Reading the device call log needs a build that carries that permission; where it doesn't, the call-sync section simply isn't shown.
  • Re-running a sync never duplicates anything — the same call syncs once.

Synced calls are read-only, owner-scoped to the rep who made them, and come with All calls and Missed views. A matched call also links that number to the contact, so it shows on the contact's conversation history.

Related