Internal Chat

Collaborate with your team directly within RapiDesq. Internal chat provides 1-to-1 direct messaging and group conversations with real-time delivery, typing indicators, @mentions, presence tracking, and unread counts — all powered by the same infrastructure that delivers your customer conversations.

Overview

Internal chat is RapiDesq's built-in team messaging system. It lets agents, supervisors, and admins communicate in real time without switching to a separate application. You can send direct messages to any colleague in your tenant or create group conversations for team coordination, escalation workflows, and shift handoffs.

What makes internal chat particularly reliable is that it is built on the exact same conversation infrastructure that powers customer messaging. Under the hood, every conversation in RapiDesq — whether with a customer or between team members — is stored in a unified conversation system. Internal conversations are flagged as type INTERNAL, while customer conversations are type CONTACT. Messages flow through the same delivery pipeline, are persisted in the same message store, and use the same WebSocket connections for real-time transport.

This shared architecture means internal chat inherits every reliability and delivery guarantee that customer messaging has. There is no separate, less-tested system for team communication. The same typing indicators, the same unread count tracking, the same real-time delivery — all of it works identically for internal conversations.

Note — Internal chat messages are visible only to the participants in the conversation. They are never exposed to customers and never appear in customer-facing conversation histories.

All users with the appropriate permissions can participate in internal chat. This includes agents, supervisors, tenant admins, and tenant owners. Internal chat is available to any role that is not explicitly restricted from internal communication.

Starting a Direct Message

Direct messages are 1-to-1 conversations between you and another user in your tenant. They are ideal for quick questions, private coordination, or reaching out to a specific colleague about a customer issue.

To start a direct message:

  1. Open the Internal Chat panel from the sidebar navigation.
  2. Click the New Conversation button.
  3. Search for the user you want to message by name. You can message any user within your tenant — they do not need to be on your team.
  4. Select the user from the results to open a conversation with them.
  5. Type your message in the compose area and press Enter or click Send.

Once you send your first message, the conversation is created and will appear in both your chat list and the recipient's chat list. The conversation persists permanently — you can return to it at any time to continue the discussion or review past messages. If a direct message conversation already exists between you and another user, selecting that user will open the existing conversation rather than creating a duplicate.

Tip — You do not need to create a new conversation each time you want to message someone. Scroll through your chat list or use the search to find an existing conversation. All message history is preserved.

Creating Group Conversations

Group conversations allow multiple users to communicate in a single shared thread. They are the backbone of team coordination in RapiDesq, and you can create as many as your team needs.

To create a group conversation:

  1. Open the Internal Chat panel.
  2. Click New Conversation.
  3. Select Group as the conversation type.
  4. Give the group a descriptive name (e.g., "Tier 2 Escalations", "Billing Team", "Morning Shift Handoff").
  5. Search for and add the users you want to include. You can add users from any team within your tenant.
  6. Click Create to start the group.

All members are added immediately and the group appears in their chat list. Any member can begin sending messages right away.

Tip — Use descriptive group names that clearly communicate the group's purpose. As your chat list grows, a well-named group like "Billing Escalation Queue" is far easier to find than "Team Chat 3". You can rename groups later if the purpose evolves.

Common use cases for group conversations include:

Real-Time Features

Internal chat provides a full suite of real-time communication features, all powered by the same WebSocket infrastructure that handles customer messaging. There is no polling, no delays, and no separate delivery mechanism — everything is real-time from the moment you send a message.

Instant Delivery

Messages are delivered to all conversation participants instantly via persistent WebSocket connections. When you send a message, it is persisted to the message store and pushed to every online participant in the conversation simultaneously. There is no need to refresh or poll for new messages. If a participant is offline when a message is sent, the message is stored and delivered as soon as they come online, along with updated unread counts.

Typing Indicators

When a participant begins composing a message in a conversation, all other participants in that conversation see a real-time typing indicator. This helps avoid message collisions in fast-paced discussions and gives you confidence that a response is on its way. Typing indicators use the same WebSocket transport as message delivery, so they appear with no perceptible delay.

Unread Counts

Each conversation in your chat list displays a badge count showing how many unread messages it contains. Conversations with unread messages are surfaced at the top of your chat list so you can quickly see where your attention is needed. Unread counts are tracked per-conversation and per-user, meaning each participant has their own independent unread state. Counts are cleared when you open a conversation and read the messages.

Presence Tracking

Presence indicators show you whether a conversation participant is currently online and active. This is useful for knowing whether you can expect an immediate reply or if you should follow up later. Presence is tracked automatically based on the user's connection state — there is nothing to configure.

Note — All of these real-time features share the same WebSocket connection used for customer messaging. Internal chat does not open additional connections, keeping resource usage efficient for both the client and the server.

Using @Mentions

@Mentions let you direct a message at a specific person within a conversation, ensuring they are notified even if they are not currently viewing the conversation.

To mention someone:

  1. Type @ in the message compose area.
  2. Begin typing the person's name. An autocomplete list will appear showing matching participants.
  3. Select the person you want to mention.
  4. Complete your message and send it.

When you are mentioned in a conversation:

Mentions are particularly valuable in group conversations where not every message is relevant to every participant. Rather than expecting everyone to read every message, you can use @mentions to pull specific people into a discussion when their input is needed.

Tip — Use @mentions for time-sensitive requests or questions directed at a specific person. In a busy group conversation, a mention ensures the right person sees the message promptly rather than it being lost in the flow.
Note — Mentions bypass normal notification filtering. Even if a user is not actively monitoring a conversation, a mention will generate a notification, making it the most reliable way to reach someone.

Managing Conversations

As your team's use of internal chat grows, keeping conversations organized becomes important. RapiDesq provides several tools to manage your chat list effectively.

Conversation Ordering

Your chat list is automatically sorted by most recent activity. Conversations with new messages rise to the top, and conversations with unread messages are visually distinguished with unread badges. This ensures the most active and relevant conversations are always easy to find.

Finding Old Conversations

All conversations persist indefinitely and the full message history is retained. To find an older conversation that has been pushed down your list, scroll through your chat list or use the search functionality to locate conversations by participant name or group name. There is no need to worry about conversations expiring or being deleted — they are always available.

Renaming Group Conversations

Group conversations can be renamed by any member to reflect evolving purposes. For example, a group initially created for a specific project can be renamed when the project ends and the group is repurposed for a new initiative. To rename a group, open the conversation details and edit the group name.

Adding and Removing Participants

Group conversations support dynamic participant management. You can add new members to bring them into an ongoing discussion, or remove members who no longer need to be part of the conversation. When a new member is added, they can see the existing message history in the group, giving them full context on the conversation so far.

Tip — When repurposing a group conversation, consider whether it is better to rename the existing group or create a new one. If the original conversation history is relevant to the new purpose, renaming keeps everything in one place. If the topics are unrelated, a new group provides a cleaner starting point.

Internal Chat vs. Internal Notes

RapiDesq offers two distinct internal communication tools, and understanding when to use each is important for keeping information organized and discoverable.

Internal Chat

Internal chat is real-time team messaging between users. Conversations exist independently — they are not attached to any specific ticket or customer interaction. Use internal chat for:

Internal Notes

Internal notes are comments attached to a specific ticket through the ticket's notes conversation. They appear in the ticket timeline alongside customer messages but are marked as internal and never visible to the customer. Use internal notes for:

Note — The key distinction is where the information should live. If the context is about a specific ticket and should be findable when someone reviews that ticket later, use an internal note. If the discussion is a general team conversation or a quick back-and-forth, use internal chat.

A practical example: if an agent needs help resolving a tricky billing issue on a specific ticket, they might send a quick internal chat message to a billing specialist asking for advice. Once the specialist provides guidance, the agent should add an internal note to the ticket summarizing the resolution approach. That way, the decision is preserved with the ticket where anyone reviewing it later will find it, while the real-time discussion happened quickly over chat.

Tips & Best Practices

Tip — Think of internal chat as your team's real-time communication hub and internal notes as your ticket-level documentation. Using both tools appropriately keeps real-time discussions fast while ensuring important decisions are preserved where they are most useful.