1 Fluxos End-to-End
Rafael Alves Lopes edited this page 2026-05-27 15:17:58 -03:00

Fluxos End-to-End

Login LDAP/AD

sequenceDiagram
  participant U as Usuario
  participant F as Frontend
  participant B as Backend
  participant AD as LDAP/AD
  participant DB as PostgreSQL

  U->>F: informa usuario/senha
  F->>B: POST /auth/login
  B->>AD: bind LDAP
  AD-->>B: autenticado
  B->>DB: upsert usuario/provedor
  B->>DB: consulta perfis/areas
  B-->>F: token + user
  F->>F: salva sessao
  F->>F: redireciona por perfil

Login Microsoft OAuth

sequenceDiagram
  participant U as Usuario
  participant F as Frontend
  participant B as Backend
  participant MS as Microsoft
  participant DB as PostgreSQL

  U->>F: clica login Microsoft
  F->>B: GET /auth/oauth/microsoft/start
  B->>MS: redireciona com state
  MS->>U: autentica
  MS->>B: callback code + state
  B->>MS: troca code por token
  B->>MS: Graph /me
  B->>DB: sincroniza usuario/acesso
  B-->>F: redirect com token/user

Atendimento WhatsApp receptivo

sequenceDiagram
  participant C as Cliente WhatsApp
  participant W as WhatsApp Web
  participant B as Backend
  participant DB as PostgreSQL
  participant F as Frontend
  participant A as Agente

  C->>W: envia mensagem
  W->>B: evento message
  B->>DB: consulta/cria atribuicao
  B->>B: Agente Virtual classifica
  B->>DB: queued por area
  B->>F: socket atualiza fila
  A->>F: assume atendimento
  F->>B: POST /whatsapp/assign
  B->>DB: status assigned
  A->>F: responde
  F->>B: POST /whatsapp/send
  B->>W: envia mensagem

Abertura ativa

  1. Agente/admin/supervisor abre Abrir Atendimento.
  2. Seleciona contato ou digita numero.
  3. Seleciona template aprovado.
  4. Frontend chama POST /whatsapp/start-attendance.
  5. Backend envia template.
  6. Atendimento fica bloqueado para mensagem livre ate o cliente responder.
  7. Quando cliente responde, awaiting_customer_reply e removido.

Transferencia

  1. Agente assume atendimento.
  2. Seleciona area ou atendente.
  3. Informa observacao.
  4. Backend grava nova area/usuario e transfer_note.
  5. Proximo atendente ve a observacao.
  6. Observacao e limpa depois que atendimento segue.

Pausa do agente

  1. Agente clica pausar.
  2. Frontend chama /agent/presence/pause.
  3. Backend marca agente como paused.
  4. Atendimentos ativos voltam para fila com reserva temporaria.
  5. Ao retomar, backend tenta recuperar atendimentos ainda livres.