> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent groups

> Route native tickets to teams of human agents based on tags, availability, and workload.

Agent groups route native tickets to the right human team when a bot escalates to a human. A group has members, an assignment method, and the tags that should send escalated tickets into that queue. When the escalating turn carries one of those tags, Fini routes the ticket to the matching group and assigns it to an available member.

Use Agent groups when your support team works in lanes: billing, cancellations, technical support, VIP, onboarding, or any other queue where the right human owner depends on the conversation.

<Note>
  Agent groups affect native ticketing workspaces. Native ticketing covers Fini-owned widget and native email conversations. Helpdesk-sourced conversations, such as Zendesk or Intercom, stay in their source helpdesk and are not routed as native Fini tickets.
</Note>

## How routing works

Ticket routing has three parts:

1. **Tags decide the group at escalation time.** Each agent group can map to one or more tags. When the bot escalates a widget or native email ticket, Fini checks the tags from the escalating turn first, then earlier conversation tags, and routes the ticket to the first matching group. A tag can route to only one group at a time.
2. **Availability decides who can receive it.** Online members can receive routed tickets. Away, offline, out-of-office, and over-capacity members are skipped.
3. **The assignment method chooses among eligible members.** Round robin sends the next ticket to the member idle longest. Least loaded sends it to the member with the fewest open tickets.

If no member is eligible, the ticket stays in the group queue without an assignee. It can be picked up manually or assigned the next time routing runs for that group.

<Info>
  Tags alone do not hand a live conversation to a teammate. Automatic group routing waits until the bot has actually escalated the conversation to a human, so a ticket the bot is still handling stays unassigned even if it already has a routing tag.
</Info>

## Create an agent group

<Steps>
  <Step title="Open Agent groups">
    In the dashboard sidebar, open **Agent groups**, then click **New group**.
  </Step>

  <Step title="Name the group">
    Add a name such as `Billing` or `VIP Support`. Use the optional description to explain what the group handles.
  </Step>

  <Step title="Choose the assignment method">
    Pick **Round robin** to balance by idle time, or **Least loaded** to prefer the member with the fewest open tickets.
  </Step>

  <Step title="Add members">
    Select joined team members. Pending invites are not eligible for routing. Members can stay in a group while away or out of office; Fini skips them until they are eligible again.
  </Step>

  <Step title="Map routing tags">
    Pick the tags that should send escalated tickets to this group. Tags already mapped to another group are disabled and show the owning group.
  </Step>

  <Step title="Save the group">
    Click **Create group**. New tagged tickets can now route into the group.
  </Step>
</Steps>

## Availability and capacity

Each teammate has routing availability:

<ResponseField name="Online" type="enum">
  Receives routed tickets when they are in the group and under capacity.
</ResponseField>

<ResponseField name="Away" type="enum">
  Keeps current tickets, but receives no new routed tickets.
</ResponseField>

<ResponseField name="Offline" type="enum">
  Receives no new routed tickets. When switching offline, the teammate can keep current tickets or hand them back to their groups.
</ResponseField>

<ResponseField name="Out of office" type="datetime">
  A scheduled unavailable window. The teammate receives no routed tickets during the window and can optionally hand open tickets back immediately.
</ResponseField>

<ResponseField name="Capacity" type="number">
  Admin-only limit for open tickets assigned to that teammate. Blank means unlimited.
</ResponseField>

Team members can set their own status and out-of-office window from **Profile**. Admins can set any teammate's status, out-of-office window, and capacity from **Team**.

Closing a native ticket removes it from the assignee's open-ticket workload, including capacity and **Least loaded** routing counts. It does not clear the assignee or change the Conversation Status tag. See [Close and reopen native tickets](/en/testing/inbox#close-and-reopen-native-tickets).

## Work the group queue

In native-ticketing Inbox, group routing appears in the ticket queue:

* **My groups** filters to open tickets routed to any group you belong to.
* **Group** filters to one or more specific groups, or to **No group**.
* The ticket detail panel shows the current group and assignee.
* Manually changing the group routes the ticket to the next eligible member in that group.

When a customer reopens a ticket assigned to someone who is offline or out of office, Fini can hand the ticket back to its group and route it to another eligible member. If the ticket has no group, it becomes unassigned.

<Tip>
  Keep routing tags small and operational. A tag like `Billing` or `Returns` is usually a better queue trigger than a highly specific diagnostic tag that only appears in a few edge cases.
</Tip>

## Troubleshooting

<AccordionGroup>
  <Accordion title="A tagged ticket did not get an assignee" icon="circle-question">
    Check whether the tag is mapped to a group, native ticketing is enabled, and at least one group member is online, joined, not out of office, and under capacity.
  </Accordion>

  <Accordion title="A tag is disabled in the group editor" icon="tag">
    That tag is already routed to another group. Remove it from the other group before assigning it here.
  </Accordion>

  <Accordion title="My groups shows no tickets" icon="users">
    You may not belong to any groups, or your groups may not have open tickets in the selected status filter. Clear filters, then try **My groups** again.
  </Accordion>
</AccordionGroup>


## Related topics

- [Inbox](/en/testing/inbox.md)
- [Tags](/en/configuration/tags.md)
- [Reply Rules](/en/automations/reply-behavior.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.