Matriz de permissões
A tabela abaixo mostra todas as permissões disponíveis e quais roles as possuem:| Permissão | owner | manager | trainer | attendant | member |
|---|---|---|---|---|---|
| manage_billing — Acessa e edita planos e pagamentos | ✅ | — | — | — | — |
| manage_company — Edita dados da empresa e configurações gerais | ✅ | ✅ | — | — | — |
| manage_agents — Cria, edita e deleta agentes e squads | ✅ | ✅ | ✅ | — | — |
| access_conversations — Visualiza e interage com conversas de atendimento | ✅ | ✅ | ✅ | ✅ | ✅ |
| invite_users — Convida novos membros e gerencia o time | ✅ | ✅ | — | — | — |
| view_reports — Acessa dashboards de analytics e exportações | ✅ | ✅ | — | — | — |
| manage_team — Altera roles, desativa e remove membros | ✅ | ✅ | — | — | — |
O owner tem acesso irrestrito a todas as funcionalidades por definição, independente da matriz. As demais roles seguem exatamente o mapeamento acima.
Como as permissões são verificadas
A cada ação executada na interface, a plataforma consulta o hookuseRoleAccess que mantém a role do usuário em memória após o login. A verificação acontece em dois níveis:
- Interface — botões, menus e páginas são exibidos ou ocultados conforme a role do usuário. Um attendant não vê a opção de “Convidar membro” no menu.
- Backend (RLS) — todas as tabelas do banco de dados têm Row Level Security ativado. Mesmo que alguém tente acessar dados via API diretamente, as políticas de banco bloqueiam o acesso não autorizado.
Detalhamento por role
owner
owner
Role atribuída automaticamente ao criador da conta. Tem acesso a tudo: billing, configurações de empresa, agentes, time, workspaces, API keys, analytics e conversas. Só pode haver um owner por empresa. A transferência de ownership é feita pelo suporte.
manager
manager
Role operacional de alto nível. Pode gerenciar tudo exceto billing. Ideal para gerentes de operação e líderes de time que precisam de autonomia sem acesso às informações financeiras.
trainer
trainer
Focado em configurar e treinar agentes. Pode criar, editar e deletar agentes e squads, visualizar conversas para análise de qualidade, mas não gerencia membros nem vê relatórios de analytics.
attendant
attendant
Destinado a atendentes humanos. Tem acesso apenas às conversas para fazer atendimento manual quando necessário. Não vê configurações, agentes ou analytics.
member
member
Acesso mínimo para visualização de conversas. Útil para observadores, stakeholders ou integrantes que precisam acompanhar o atendimento sem interagir com configurações.