Skip to main content

Registros de atendimentos por fila

Motivação​

O NX Suite tinha um único registro por atendimento. Quando o cliente passava por mais de um operador ou por mais de uma fila, todo o ciclo era contabilizado como um atendimento só. Isso gerava distorções nas métricas, principalmente em abandono e tempo de atendimento.

Para resolver, criamos uma nova estrutura de registro que grava cada etapa relevante do ciclo de vida do atendimento. Assim, cada transição gera um novo registro ou atualiza o registro correto, permitindo métricas coerentes por operador, fila e fluxo.

Como eram as métricas (antes)​

  • Um atendimento com operador A -> operador B contava como um único atendimento.
  • Abandono no segundo operador contaminava o atendimento inteiro e inflava a taxa de abandono.
  • Tempo de atendimento e tempo em fila eram agregados de forma imprecisa.

Como ficam as métricas (depois)​

  • Cada transferência cria um novo registro de etapa (operador/fila/fluxo).
  • Abandono passa a ser atribuído à etapa correta.
  • Tempo em fila, tempo em atendimento e SLA ficam precisos por etapa.
  • Indicadores por operador e por fila ficam consistentes.

Estrutura de banco de dados (nova tabela)​

A nova tabela de registros de atendimento armazena o histórico por etapa. Campos principais:

CampoDescrição
idIdentificador do registro de etapa.
client_idIdentificador do cliente.
chat_idIdentificador do atendimento original.
user_idOperador vinculado ao registro (quando aplicavel).
condition_idCondição do atendimento na etapa.
transfer_typeTipo de transferência (fila, operador, fluxo).
queue_start_atInício da etapa em fila.
queue_end_atFim da etapa em fila.
start_attendance_atInício do atendimento com operador.
attendance_end_atFim do atendimento da etapa.
is_activeIndica se a etapa está ativa.

Obs.: os timestamps são preenchidos conforme o fluxo (fila, transferência, atendimento ativo, finalização).

Exemplos de cenários​

Transferência de operador​

O cliente entra em atendimento e é direcionado ao operador A. Ao transferir para o operador B:

  • O registro do operador A é atualizado com attendance_end_at.
  • É criado um novo registro para o operador B, com start_attendance_at.

Exemplo de linhas (resultado de query):

idclient_idchat_iduser_idcondition_idtransfer_typequeue_start_atqueue_end_atstart_attendance_atattendance_end_atis_active
1012000vox0bdc07f9...525- FinalizadoUSER_TO_USER2026-05-13 10:02:102026-05-13 10:05:002026-05-13 10:05:002026-05-13 10:12:30false
1022000vox0bdc07f9...525- FinalizadoNULL2026-05-13 10:02:102026-05-13 10:05:002026-05-13 10:12:302026-05-13 10:16:05false

Transbordo para fluxo​

O cliente entra em fila, não encontra operador dentro do tempo limite e ocorre transbordo para fluxo:

  • O registro da fila é atualizado com queue_end_at.
  • Um novo registro é criado para o fluxo, com o estado atual do atendimento.

Isso evita que o tempo de fila seja confundido com tempo de atendimento.

Exemplo de linhas (resultado de query):

idclient_idchat_iduser_idcondition_idtransfer_typequeue_start_atqueue_end_atstart_attendance_atattendance_end_atis_active
2012000vox1a2c3d4e5...NULL5- FinalizadoTRANSHIPMENT_TO_FLOW2026-05-13 11:00:002026-05-13 11:05:00NULLNULLfalse

Abandono na fila​

O cliente passa pela fila mas encerra antes de ser distribuído para um operador:

  • O registro de fila tem queue_start_at e queue_end_at preenchidos. As métricas de abandono ficam associadas somente à etapa do operador.

Exemplo de linhas (resultado de query):

idclient_idchat_iduser_idcondition_idtransfer_typequeue_start_atqueue_end_atstart_attendance_atattendance_end_atis_active
3012000vox1a2c3d4e5...NULL15- Abandono na fila de esperaNULL2026-05-13 12:00:002026-05-13 12:04:00NULLNULLfalse

Diagrama de fluxo (Excalidraw)​

Como ler o fluxograma​

O diagrama resume todos os pontos onde criamos ou atualizamos registros. Em termos práticos:

  • O atendimento pode iniciar por fluxo (automação) ou por disparo manual (HSM/chamada).
  • Se o atendido responde, o fluxo segue para operador; caso contrário, pode ocorrer transferência para fila.
  • Na fila, a estratégia define se o atendimento vai para o operador ocioso por mais tempo ou fica visível para todos. Em ambos os casos, a primeira ação relevante já cria o registro da etapa.
  • Se ninguém assumir dentro do tempo limite, ocorre transbordo. O transbordo pode ir para outra fila ou voltar para fluxo; cada transição atualiza o registro corrente e cria um novo.
  • Na finalização, o registro ativo é atualizado com o encerramento e métricas finais.
  • Em transferências (fila ou operador), o registro atual é atualizado e um novo registro é criado para a etapa seguinte.