Em equipes grandes ou agências com múltiplos clientes, nem todo mundo deve ver toda conversa. Um vendedor não precisa ver atendimento do suporte. Um atendente do cliente A não deve ver dados do cliente B. O Syncro tem sistema de permissões de visibilidade baseado em papel (role), atribuição (assigned_user_id), departamento e pivô de número de WhatsApp — pra controlar isso de forma flexível.
Esse artigo explica as regras e como configurar.
Pré-requisitos
- Permissão de admin pra mudar configurações de visibilidade.
Regras de visibilidade — ordem de precedência
A regra é avaliada nessa ordem:
1. Super admin / Admin
- Vê todas as conversas do tenant, sem restrição.
- Não importa departamento, atribuição, ou pivô.
2. Usuário com can_see_all_conversations=true
- Override individual: vê tudo, igual admin.
- Útil pra gerentes que precisam visão geral mas não são admins formais.
3. Usuário com pivô user_whatsapp_instance configurado
- Vê conversas onde:
- Instance está no pivô dele, OR
- Conversa atribuída a ele (
assigned_user_id = user.id). - UNION das duas condições.
4. Fallback (sem pivô)
- Vê conversas onde:
- Departamento é dele (
conversation.department_id IN user.departments.ids), OR - Conversa atribuída a ele.
- UNION.
5. Sem nada configurado
- Vê só conversas atribuídas a ele.
Configurar com pivô de número de WhatsApp
A forma mais granular: cada usuário só vê conversas dos números de WhatsApp que ele atende.
Como configurar
- Acesse Configurações → Integrações → card WhatsApp.
- No número específico, clique em Quem pode atender este número.
- Aparece um painel com lista de usuários do tenant + checkboxes.
- Marque os usuários que devem ter acesso.
- Clique em Salvar acessos.
- Aparece Acessos atualizados..
Resultado
- Usuários marcados: veem todas as conversas que chegam nesse número.
- Usuários não marcados: não veem (a menos que a conversa esteja atribuída diretamente a eles).
Visibilidade por departamento (sem pivô)
Alternativa mais ampla: configurar visibilidade por departamento.
Como funciona
- Crie departamento (ex: Comercial).
- Adicione usuários ao departamento.
- Configure número de WhatsApp pra ter departamento padrão (
department_id). - Conversas que chegam no número entram no departamento.
- Usuários do departamento veem.
Veja Criar departamento.
💡 Dica: pivô vs departamento — qual usar?
- Pivô: controle granular por número de WhatsApp. Funciona bem em multi-tenant agência.
- Departamento: controle por setor organizacional (Comercial / Suporte / Financeiro). Funciona melhor em empresas com setores claros.
Eles podem coexistir — sistema usa o pivô se preenchido, senão fallback pro departamento.
Override "Ver todas as conversas"
Pra dar visão completa a um usuário que não é admin (ex: supervisor):
- Configurações → Usuários → editar usuário.
- Marque o checkbox Ver todas as conversas.
- Salve.
Esse user passa a ver tudo, ignora pivô e departamento.
Atribuição direta = visibilidade
Independente de pivô / departamento, se uma conversa é atribuída a você (assigned_user_id = você), você vê. Exceção:
⚠️ Atenção: na configuração strict (com pivô preenchido), atribuição direta a usuário fora do pivô pode não dar visibilidade automática se sua versão tem regra mais restrita. Confira testando ou contate suporte.
Real-time — mudança de permissão expulsa o user
Quando admin remove um user do pivô de um número:
- O user perde acesso imediato às conversas daquele número.
- Sistema dispara evento
WhatsappAccessRevoked. - Pelo WebSocket, o user recebe notificação em tempo real.
- Frontend força reload da página (
location.reload) após 1.5 segundos. - Após reload, o user só vê conversas onde ainda tem acesso.
Isso garante que dados sensíveis não fiquem em cache no browser após remoção de permissão.
Cenários comuns
Cenário 1 — Equipe pequena (5 pessoas, 1 número)
- Configuração mais simples.
- Não preencha pivô.
- Crie 1 departamento padrão (ou nenhum).
- Todo mundo vê tudo (todos no mesmo departamento ou todos com
can_see_all_conversations=true).
Cenário 2 — Múltiplas equipes, 1 número
- 1 número de WhatsApp.
- Múltiplos departamentos (Comercial, Suporte).
- Cada conversa cai no departamento correto via automação ou estratégia.
- Cada departamento vê suas conversas.
Cenário 3 — Múltiplas equipes, múltiplos números
- Vários números de WhatsApp (um por departamento ou cliente).
- Pivô preenchido por número.
- Cada equipe vê só os números dela.
Cenário 4 — Agência (multi-cliente)
- Cada cliente tem seu próprio número de WhatsApp.
- Pivô estritamente preenchido — atendentes do cliente A só veem o número A.
- Atendentes do cliente B só veem o número B.
- Admin da agência vê tudo (
can_see_all_conversations=true).
Verificar quem vê o quê
Como admin, você consegue testar visibilidade:
- Logue como o usuário em questão (ou peça pra ele).
- Veja a lista de conversas no
/chats. - Compare com o que ele deveria ver.
Se houver inconsistência:
- Confira o pivô do usuário em Configurações → Integrações → número de WhatsApp.
- Confira departamentos em Configurações → Usuários → editar.
- Confira
can_see_all_conversationsno perfil dele.
Auditoria de mudanças
Toda mudança em pivô, departamento, atribuição ou can_see_all_conversations é registrada no Audit Log. Veja Audit Log.
Visibilidade não afeta envio
Se um usuário vê uma conversa, automaticamente pode enviar mensagens nela (se tem permissão de envio — admin/manager). Não há configuração separada de "ver mas não enviar" hoje, exceto pela role:
- Viewer: vê mas não envia (composer desabilitado).
- Manager/Admin: vê e envia.
Visibilidade em automações
Automações rodam com privilégio de sistema — não respeitam permissões de visibilidade individuais. Elas processam todas as conversas matching, independentemente de quem teria acesso.
Cuidado pra não vazar dados via automações mal configuradas (ex: notificação que envia conteúdo de conversa pra usuário sem visibilidade).
API e visibilidade
Acesso via API REST v1 depende do API Key vinculada a um usuário. A key herda as permissões de visibilidade do user dono. Pra pegar conversas de toda a empresa via API, use key vinculada a admin.
Veja API Keys.
Caso especial — conversa transferida
Quando você atribui ou transfere uma conversa pra outro user, ele:
- Ganha visibilidade dela imediatamente (mesmo que normalmente não tivesse).
- Mantém visibilidade enquanto a conversa permanecer atribuída a ele.
- Se ela for desatribuída ou movida pra alguém fora do pivô, ele perde visibilidade novamente.
Limitações conhecidas
- Sem permissão "ver mas não responder" — se ver, pode responder (depende só da role).
- Sem auditoria por usuário de "quantas conversas o user X visualizou" — Audit registra ações, não visualizações.
- Real-time tem latência de poucos segundos pra WebSocket propagar mudança de pivô.
Checklist pra debug de visibilidade
Se um user reclama que não vê uma conversa:
- Confirma o role dele (admin vê tudo).
- Confira
can_see_all_conversations(true = vê tudo). - Veja se o número de WhatsApp tem pivô — user está marcado?
- Veja o departamento da conversa — user pertence?
- Veja se a conversa está atribuída a ele ou outro.
- Atualize a página (Ctrl+F5) — pode ser cache antigo.
Próximos passos
- Pra organizar acesso por departamento, veja Criar departamento.
- Pra configurar pivô por número, veja Gerenciar múltiplos números.