# Equipe e permissões (/docs/crm/equipe)





O atendimento é feito por uma **equipe**: cada usuário do painel é um atendente com um **cargo** e, opcionalmente, **permissões granulares**. A presença (online/offline) e a política de **roteamento** decidem para quem as conversas novas vão.

<Callout type="info">
  Equipe, presença e permissões são geridos **no painel** (seção Equipe), sob a
  sessão do usuário logado — **não** pela API key de integração. Esta página
  documenta o **modelo**, para você entender como o roteamento e a visibilidade
  das conversas se comportam.
</Callout>

## Cargos [#cargos]

| Cargo                     | Pode                                                                                                   |
| ------------------------- | ------------------------------------------------------------------------------------------------------ |
| **Dono** (OWNER)          | Tudo, incluindo cobrança e gestão de administradores. Único por conta.                                 |
| **Administrador** (ADMIN) | Tudo no atendimento e na equipe, exceto mexer em outros administradores e na cobrança.                 |
| **Atendente** (MEMBER)    | O que as **permissões granulares** liberarem. Sem restrição definida = acesso de atendimento completo. |

Dono e administrador têm **acesso total** por definição — as permissões granulares só se aplicam a **atendentes**. Só o **dono** promove/rebaixa administradores.

## Permissões granulares [#permissões-granulares]

Para um atendente, o gestor marca exatamente o que ele pode. As chaves:

| Permissão              | Libera                                                                                                     |
| ---------------------- | ---------------------------------------------------------------------------------------------------------- |
| `ver_todas_conversas`  | Ver as conversas de **toda** a equipe. Sem ela, o atendente só vê as **atribuídas a ele** ou **sem dono**. |
| `atribuir`             | Atribuir/transferir conversas a atendentes.                                                                |
| `encerrar`             | Encerrar (resolver) e reabrir conversas.                                                                   |
| `ver_relatorios`       | Acessar a seção de [Relatórios](/docs/crm/relatorios).                                                     |
| `disparar_campanha`    | Criar e disparar campanhas (disparo em massa).                                                             |
| `gerenciar_instancias` | Conectar/remover números (instâncias).                                                                     |

<Callout type="warn">
  A permissão `ver_todas_conversas` é também um limite de **visibilidade de
  dados**: um atendente sem ela tem a listagem do Inbox filtrada no servidor
  para as próprias conversas — não é só esconder na interface. Gestão de
  equipe e cobrança **nunca** são delegáveis a atendente; ficam fora dessa lista.
</Callout>

## Presença (online/offline) [#presença-onlineoffline]

Cada atendente tem um estado de **presença** que o painel mantém por um *heartbeat* enquanto a aba está aberta. A presença é **efêmera**: expira sozinha em \~90 segundos sem sinal (fechou o navegador, caiu a rede → fica offline automaticamente). Ela alimenta o roteamento: conversas novas só são direcionadas a quem está **online**.

## Roteamento automático [#roteamento-automático]

Quando uma conversa nova chega **sem** um fluxo de chatbot ativo decidindo o destino (veja [Construtor de fluxo](/docs/crm/fluxos)), a plataforma a direciona segundo a **política do Projeto**:

| Política      | Comportamento                                                                    |
| ------------- | -------------------------------------------------------------------------------- |
| `manual`      | Ninguém é atribuído automaticamente; a conversa entra na fila para alguém pegar. |
| `least_busy`  | Vai para o atendente **online** com **menos** conversas em aberto.               |
| `round_robin` | **Rodízio** entre os atendentes online, distribuindo por igual.                  |

As duas políticas automáticas só consideram atendentes **online**. Se ninguém estiver online, a conversa fica na fila até alguém entrar ou pegá-la manualmente. Uma atribuição **manual** (pelo painel ou via [`assign`](/docs/api/inbox/assignConversation)) sempre prevalece sobre o automático para aquela conversa.

<Callout type="info">
  Quando há um **fluxo de chatbot ativo** na instância, ele tem **precedência**:
  o bot atende primeiro e só entrega ao humano (segundo a política acima) quando
  o fluxo chega a um nó de **transferência**. Detalhes em
  [Construtor de fluxo](/docs/crm/fluxos).
</Callout>
