Team Management

Teams are the core organizational unit in RapiDesq. They control how conversations are routed to agents, how tickets are prioritized and distributed, and how your support organization is structured. This guide covers creating teams, configuring routing strategies, inviting users, managing permissions, setting agent statuses, controlling capacity, and defining business hours.

Overview

Every customer conversation in RapiDesq ultimately reaches an agent through a team. Teams connect three fundamental concepts:

A typical organization has multiple teams—for example, Billing Support, Technical Support, and Sales Inquiries—each with its own routing rules, capacity limits, ticket prefix, and business hours schedule. Agents can belong to more than one team, and supervisors can oversee multiple teams simultaneously.

How it fits together

A conversation flow's Route to Team node directs a conversation to a specific team. The team's agent selection strategy then picks an agent. If no agent is available, the conversation enters the team's queue and is served according to the ticket selection strategy when an agent becomes free.

Creating Teams

To create a new team:

  1. Navigate to Admin > Teams.
  2. Click Create Team.
  3. Fill in the configuration fields described below.
  4. Add team members and assign each a team role (Agent or Supervisor).
  5. Click Save.

Configuration Fields

Field Description
Team Name A human-readable name displayed throughout the platform (e.g., "Billing Support", "Technical Support").
Description An optional summary of the team's purpose, visible to admins and supervisors.
Agent Selection Strategy Determines how an incoming conversation is assigned to an available agent. See Agent Selection Strategies below.
Ticket Selection Strategy Determines the order in which queued tickets are served when an agent becomes available. See Ticket Selection Strategies below.
Max Concurrent per Agent The maximum number of active conversations an agent on this team can handle simultaneously. See Capacity Management.
Ticket Prefix A short string prepended to all ticket IDs created for this team (e.g., "SUP" produces SUP-0001, SUP-0002). See Custom Ticket Prefixes.

Agent Selection Strategies

The agent selection strategy controls how the routing engine chooses which available agent receives an incoming conversation. Only agents whose functional status is AVAILABLE and who have not reached their maxConcurrentPerAgent limit are considered.

BROADCAST

The conversation offer is sent to all available agents on the team simultaneously. The first agent to accept the offer is assigned the conversation.

ROUND_ROBIN

Conversations are distributed to agents in a circular sequence. The routing engine tracks who received the last assignment and offers the next conversation to the next agent in the rotation.

FEWEST_ACTIVE

The conversation is offered to the agent with the fewest currently active conversations. If multiple agents are tied, the system selects among them using a round-robin tiebreaker.

LONGEST_IDLE

The conversation is offered to the agent who has been idle the longest—that is, the agent whose most recent conversation assignment or completion was the furthest in the past.

SKILL_MATCH

The conversation is offered to the agent whose configured skills best match the requirements identified for the conversation (typically set by conversation flow logic or ticket metadata).

Which strategy should I choose?

If you are setting up your first team and are unsure, start with ROUND_ROBIN or FEWEST_ACTIVE. Both provide reasonable workload distribution out of the box. You can change the strategy at any time without disrupting active conversations.

Ticket Selection Strategies

When an agent becomes available and there are multiple conversations waiting in the team's queue, the ticket selection strategy determines which conversation is served next.

FIFO (First In, First Out)

The oldest waiting ticket is served first, regardless of priority or SLA status.

PRIORITY_FIFO

Tickets are grouped by priority level—URGENT > HIGH > NORMAL > LOW—and within each priority level, the oldest ticket is served first.

SLA_BREACH

Tickets closest to breaching their SLA response or resolution deadline are served first, regardless of when they entered the queue.

ROUND_ROBIN_CONTACTS

The queue is distributed across contacts (customers) so that a single customer with many open tickets cannot monopolize agent availability. The system rotates between contacts, serving one ticket per contact before moving to the next.

Note

Changing the ticket selection strategy takes effect immediately for all conversations currently in the queue. Active conversations already assigned to agents are not affected.

Custom Ticket Prefixes

Each team can define a ticket prefix—a short alphanumeric string that is prepended to every ticket ID generated for that team. The ticket number auto-increments after the prefix.

Team Prefix Example Ticket IDs
Billing Support BIL BIL-0001, BIL-0042, BIL-0183
Technical Support SUP SUP-0001, SUP-0127, SUP-0904
Sales Inquiries SAL SAL-0001, SAL-0015, SAL-0062

Ticket prefixes serve several purposes:

Tip

Keep prefixes short (two to four characters) and descriptive. Avoid prefixes that could be confused with one another (e.g., "SUP" and "SPT" for the same department).

Inviting Users

To add a new user to your organization:

  1. Navigate to Admin > Users.
  2. Click Invite User.
  3. Enter the user's email address.
  4. Select a role that defines their base set of permissions (see below).
  5. Optionally assign one or more additional permission sets to extend their access beyond the base role.
  6. Assign them to one or more teams, selecting a team role (Agent or Supervisor) for each.
  7. Click Send Invitation. The user receives an email with a link to set up their account.

User Roles

Each user is assigned exactly one platform role. The role provides a default set of permissions, but authorization throughout the platform is always checked at the permission level, not the role level. This means two users with the same role can have different effective permissions if different permission sets have been applied.

Role Scope Description
SYSTEM_ADMIN All tenants Full system access across every tenant. Reserved for platform operators who manage the RapiDesq installation itself. Can create and configure tenants, manage licensing, and access all administrative functions.
TENANT_OWNER Single tenant The owner of a tenant account. Has full administrative access within their tenant plus access to billing, subscription management, and licensing. Typically the person who created the tenant.
TENANT_ADMIN Single tenant Full administrative access within a single tenant, including user management, team configuration, channel setup, and all settings. Does not have billing or licensing access. Use this role for IT administrators or operations managers.
SUPERVISOR Assigned teams Can manage agents within their assigned teams, monitor queues and agent statuses in real time, view reports, and assist with ticket reassignment. Cannot modify tenant-wide settings or manage users outside their teams.
AGENT Assigned teams Handles customer conversations and tickets routed to their teams. Can view and update tickets, use internal chat, and manage their own status. Cannot access administrative or reporting functions beyond their own performance metrics.
INTERNAL_USER Limited Restricted access limited to the service desk portal (for submitting and tracking internal requests) and team chat. Cannot handle customer-facing conversations or access admin functions. Ideal for employees outside the support organization who need to submit IT requests or participate in internal collaboration.
Important

Authorization in RapiDesq is permission-based, not role-based. The platform never checks "is this user a Supervisor?" to grant access. It checks "does this user have the reports:view permission?" Roles simply provide a convenient starting set of permissions. You can extend or restrict any user's effective permissions by assigning additional permission sets.

Note

Users can belong to multiple teams. Within each team, they hold a team-level role of either Agent or Supervisor, which is independent of their platform-wide role. For example, a user with the AGENT platform role could be a Supervisor in a small side team they help manage.

Permission Sets

Permission sets are named collections of individual permissions that can be assigned to users. They provide fine-grained control over what each user can do, independent of their base role.

Permission Format

Every permission in RapiDesq follows a resource:action format:

Permission Grants
users:create Ability to invite new users to the tenant
users:edit Ability to modify user profiles and settings
teams:view Ability to view team configurations and membership
teams:manage Ability to create, edit, and delete teams
tickets:edit Ability to update ticket details, status, and assignments
tickets:delete Ability to delete tickets
reports:view Ability to view dashboards and reports
reports:export Ability to export report data
channels:manage Ability to configure chat widgets, email channels, and web forms
flows:manage Ability to create and edit conversation flows
settings:manage Ability to modify tenant-wide settings

Creating Custom Permission Sets

  1. Navigate to Admin > Permission Sets.
  2. Click Create Permission Set.
  3. Enter a descriptive name (e.g., "Report Viewer", "Channel Manager", "Ticket Admin").
  4. Select the individual permissions to include in this set.
  5. Click Save.

Once created, the permission set can be assigned to any number of users. A user's effective permissions are the union of all permissions from their base role plus all assigned permission sets.

Common Permission Patterns

Tip

Follow the principle of least privilege. Start users with only the permissions they need for their day-to-day work, and add permission sets as specific needs arise. It is much safer to grant incrementally than to revoke after the fact.

Agent Statuses

Agent statuses control routing behavior and provide real-time visibility into your team's availability. The status system has two layers: functional statuses that the routing engine uses, and custom display labels that agents and supervisors see in the interface.

Functional Statuses

Every agent is always in exactly one of three functional statuses. These are the statuses the routing engine evaluates when deciding whether to offer a conversation to an agent:

Functional Status Routing Behavior Description
AVAILABLE Agent receives conversation offers The agent is ready to work and will be considered by the routing engine for new conversations (subject to capacity limits).
NOT_AVAILABLE Agent does not receive offers The agent is logged in but not accepting new work. Used for breaks, meetings, training, administrative tasks, or any other period where the agent should not be interrupted with new conversations.
ON_TICKET Agent may receive offers (capacity-dependent) The agent is actively working on one or more conversations. Whether the agent receives additional offers depends on the team's maxConcurrentPerAgent setting and how many active conversations they currently have.

Custom Display Labels

While the routing engine operates on the three functional statuses, your agents and supervisors see custom display labels that provide more context about what an agent is doing. Each display label maps to one of the three functional statuses.

To create custom display labels:

  1. Navigate to Admin > Agent Statuses.
  2. Click Add Status Label.
  3. Enter a display label (the name agents see in the status dropdown).
  4. Select the functional status it maps to.
  5. Click Save.
Display Label Maps to Functional Status Use Case
Available AVAILABLE Default ready state
Lunch Break NOT_AVAILABLE Scheduled lunch period
In Meeting NOT_AVAILABLE Attending a team meeting or 1:1
Training NOT_AVAILABLE Attending a training session
Back Office Work NOT_AVAILABLE Working on documentation or follow-ups that require focus
Handling Tickets ON_TICKET Actively working conversations

Multiple display labels can map to the same functional status. This gives supervisors granular visibility into why agents are unavailable (meeting vs. lunch vs. training) while the routing engine simply sees them all as NOT_AVAILABLE.

Supervisor visibility

Supervisors can view every agent's current display label in real time from the team dashboard. This enables informed decisions about staffing adjustments, such as knowing that three agents are in a training session and will return in 30 minutes versus three agents being on lunch with staggered return times.

Capacity Management

The maxConcurrentPerAgent setting on each team controls how many active conversations a single agent can handle at the same time. This is the primary mechanism for preventing agent overload and maintaining response quality.

How Capacity Affects Routing

Setting Capacity Limits

  1. Navigate to Admin > Teams and select the team.
  2. In the team configuration, set the Max Concurrent per Agent value.
  3. Click Save. The new limit takes effect immediately for all agents on the team.

Monitoring Capacity in Real Time

Supervisors and admins can monitor capacity from the team dashboard:

Important

Setting capacity too high degrades response quality—agents juggling too many conversations produce slower, less thorough replies. Setting it too low wastes available capacity and increases queue times. Start with a conservative value (e.g., 3–4 for chat, 1–2 for complex technical support) and adjust based on observed performance and agent feedback.

Business Hours & Schedules

Business hours schedules define when your teams are operational. They affect three parts of the platform: the customer-facing chat widget, the routing engine, and conversation flows.

Configuring a Schedule

  1. Navigate to Admin > Business Hours.
  2. Click Create Schedule.
  3. Enter a schedule name (e.g., "US East Coast Hours", "EMEA Business Hours").
  4. Select the timezone for this schedule. All start and end times you enter will be interpreted in this timezone.
  5. For each day of the week, set start time and end time, or mark the day as closed.
  6. Click Save.

Schedule Exceptions

Exceptions override the regular weekly schedule for specific dates:

  1. Open the schedule and navigate to the Exceptions tab.
  2. Click Add Exception.
  3. Select the date (or date range).
  4. Choose whether the exception is a closure (team unavailable all day) or modified hours (custom start and end times for that date).
  5. Click Save.

Use exceptions for public holidays, company-wide events, early closures before holidays, or any other date that deviates from the normal weekly schedule.

How Schedules Affect the Platform

Area Behavior Outside Business Hours
Chat Widget The widget displays an offline state. Depending on your configuration, it may show an offline message, display a contact form for email follow-up, or hide entirely.
Routing Conversations that arrive outside business hours are not routed to agents. They enter the queue and are served when the schedule becomes active again.
Conversation Flows The SCHEDULE_CONDITION node in conversation flows can branch logic based on whether the current time falls within a specified schedule. This allows you to provide different automated responses during and outside business hours.

Multiple Schedules

You can create as many schedules as you need. Common patterns include:

Note

All schedule times are stored internally in UTC and converted to each user's configured timezone for display. When configuring a schedule, you enter times in the schedule's designated timezone—the system handles the conversion automatically. Make sure your team members have their timezone preferences set correctly in their profile settings.

Tips & Best Practices

Routing Strategy Selection

Ticket Selection

Team Organization

Agent Status and Capacity

Permissions and Security

Business Hours