Onvox AI Docs
Integrações & Coleta

Permissionamento

RBAC das integrações, com papéis, matriz de ação por papel e isolamento por empresa.

Permissionamento

Esta página consolida o controle de acesso (RBAC) das integrações da Onvox AI. Ela vale tanto para o Google Meet quanto para o Yeastar, com as ressalvas de cada um.

Papéis

PapelAlcance
super_adminOperação/suporte da plataforma. Age em qualquer empresa (cross-tenant).
admin_companyDono/gestor da própria empresa. Configura tudo da sua empresa.
supervisorGestão de time: vê e atribui; configura a integração da própria empresa (auto-serviço), exceto as tags da empresa e o app OAuth do Meet.
salesperson (vendedor)Usa a própria conta; configura a integração da própria empresa (auto-serviço), mas não vê pendentes nem atribui.

Alinhamento de RBAC

Modelo: auto-serviço por empresa. A configuração das integrações (salvar credenciais, configurar coleta, "coletar agora") é auto-serviço: qualquer papel do tenant (admin_company, supervisor e vendedor) pode fazê-la na PRÓPRIA empresa (canManageIntegrations). O super_admin age em qualquer empresa (cross-tenant). As únicas restrições extras são:

  • Tags da empresa (Config 2: Yeastar): só admin_company + super_admin criam/editam (canEditCompanyTags).
  • Ver status da própria conexão: aberto a qualquer papel do tenant, inclusive vendedor (canManageIntegrations, o mesmo gate da configuração; a tela de conexão precisa que quem configura também veja o status).
  • Pendentes / atribuir / Coletas agendadas / Correlações de vendedores: isso sim exige supervisor+ (o vendedor não vê, por requerer canViewIntegrations de gestão de time).
  • App OAuth do Meet: o app global é exclusivo do super_admin; o app próprio do tenant (cadastrar/remover) é do admin_company + super_admin. Conectar a própria conta é self-service (admin_company e vendedor; supervisor não).
  • Saúde das contas Google e "Tentar de novo agora" (Meet): só admin_company + super_admin.

Ou seja, para a config e pro status o modelo é aberto na própria empresa; o que estreita é gestão de time (pendentes/atribuir/coletas agendadas/correlações, supervisor+) e as tags da empresa, o app OAuth próprio e a saúde das contas Google (admin+super).

Matriz: ação × papel

Açãosuper_adminadmin_companysupervisorsalesperson
Selecionar empresa (tenant)✅ (qualquer)própriaprópria-
Ver status das integrações✅✅✅✅
App OAuth global (Meet, plataforma)✅❌❌❌
App OAuth próprio do tenant: cadastrar (Meet)✅✅❌❌
Remover app próprio (Meet; a empresa volta ao app global)✅✅❌❌
Ver saúde das contas Google (Meet)✅✅❌❌
Tentar de novo agora (Meet; libera uma conta parada)✅✅❌❌
Conectar a PRÓPRIA conta Google (Meet, self-service)-✅❌✅
Apagar o auth de um usuário (Meet)✅❌❌❌
Salvar credenciais / ativar-desativar (Yeastar)✅✅✅✅
Configurar coleta (escopo, opt-in, blacklist, modos, duração)✅✅✅✅
Criar/editar tags da empresa (Config 2: Yeastar)✅✅❌❌
Definir a própria tag de coleta (self-service: Yeastar)-✅✅✅
Coletar agora✅✅✅✅
Espaços monitorados (CRUD, canManageIntegrations)✅✅✅✅
Coletas agendadas (CRUD, canViewIntegrations, gestão de time)✅✅✅❌
Correlações de vendedores (CRUD, canViewIntegrations, gestão de time)✅✅✅❌
Ver análises pendentes✅✅✅❌
Atribuir análise pendente✅✅✅❌

✅ = na própria empresa (super_admin = qualquer empresa). ❌ = negado. - = não se aplica. A configuração é auto-serviço (todos os papéis do tenant, na própria empresa); o que estreita é ver/atribuir (supervisor+) e as tags da empresa, o app OAuth próprio e a saúde das contas Google (admin+super).

Detalhes por caso

Google Meet: OAuth

  • App OAuth global (o padrão da plataforma): só super_admin, via menu/UI.
  • App OAuth próprio do tenant (substitui o global só naquela empresa): admin_company + super_admin cadastram e removem. Ao remover, a empresa volta ao app global e as contas conectadas pelo app próprio precisam reconectar.
  • Conectar a própria conta: admin_company e vendedor SIM; supervisor NÃO. Inclui desconectar/reconectar (auto-correção).
  • Apagar a conexão de outro usuário: exclusivo do super_admin (suporte).

Yeastar: credenciais, coleta e tags

  • Credenciais e configuração de coleta (incluindo opt-in/blacklist/modos): qualquer papel do tenant na própria empresa (auto-serviço) + super_admin (cross-tenant).
  • Tags da empresa (Config 2): admin_company + super_admin. É um gate extra de papel: supervisor e vendedor não alteram as tags da empresa (a única restrição extra na configuração).
  • Tag pessoal de coleta: qualquer papel define a sua (self-service, edita apenas o próprio usuário), com escopo do próprio ramal.

Isolamento por empresa (multi-tenant)

Toda operação é escopada por company_id. Não-super_admin sempre opera na própria empresa, o companyId do input é ignorado para eles (sem escalonamento entre tenants). O super_admin bypassa por design (cross-tenant), selecionando a empresa no topo.

Webhooks de ENTRADA não usam papel

Os webhooks de entrada (Yeastar/Google chamando a Onvox AI) não dependem de papel de usuário: autenticam por assinatura HMAC / state cifrado e resolvem o tenant pela integration_config.

Isso é diferente dos webhooks de SAÍDA (a Onvox AI notificando o SEU sistema quando uma análise é concluída, pelos gatilhos escolhidos em cada destino: Nova Análise, API externa e/ou coleta de integração; o padrão é Nova Análise + API externa). Na criação, o role do destino só aceita papel de administrador (admin_company ou super_admin), então o payload vem completo, com as análises da empresa inteira; para separar por pessoa, o sistema que recebe roteia pelos campos salespersonId, salespersonName, externalOwnerId e externalCallId. Configurar quem PODE cadastrar esse destino segue o mesmo gate de API Keys (admin_company + super_admin). Ver Webhooks.

Nesta página