SaaS e tecnologia · Suporte e atendimento

Suporte por cliente, com espera, resolução e motivo

Quantos chamados cada cliente pagante abriu, quanto esperou por uma pessoa e por quê, com o mesmo volume que o relatório da ferramenta de suporte mostra.

UsoEspecífico
EsforçoMédio
Para quemEmpresas de SaaS que precisam saber quais clientes mais demandam o suporte, quanto eles esperam e o que está quebrando no produto.
Fonte

Conversas, tickets e mensagens da ferramenta de suporte

Regra

Chamado válido, ligado ao cliente, com relógio na primeira fala do cliente

Resultado

Volume, espera, resolução e motivo por cliente e mês

Ativação

Health score, painel de SLA e agente de IA

O que resolve

  • Cada chamado ligado ao cliente pagante, com o MRR dele ao lado.
  • Espera medida a partir do momento em que o cliente escreveu, separada entre IA e humano.
  • Motivo e módulo de cada chamado prontos para produto priorizar.

Perguntas de negócio que responde

Faça estas perguntas ao seu agente quando o caso estiver pronto.

Quais clientes abriram mais chamados este mês, comparado ao mês anterior?
Quanto tempo o cliente espera até falar com uma pessoa, na mediana e no p90?
Quanto da fila o agente de IA resolveu sozinho e quanto foi transferido para o time?
Quais módulos geram mais chamados de erro, e de quais clientes?
Estamos cumprindo o SLA das contas top?
Quantos chamados estão sem dono agora?

O que você precisa

  • A ferramenta de suporte conectada na Nekt (conversas, tickets e mensagens)
  • A chave do cliente gravada no ticket ou no contato, ligada ao billing
  • Uma lista fechada de motivos e módulos, e o SLA combinado por tipo de cliente

O que você recebe

  • Uma tabela de chamados com cliente, canal, quem atendeu, tempos e motivo
  • Um agregado cliente x mês pronto para o health score
  • Painel de SLA, fila sem dono e reaberturas por atendente e equipe
  • Um agente de IA que responde sobre suporte já com o recorte certo

Onde ativar

Health score

O agregado cliente x mês alimenta o componente de suporte do score: variação de volume, chamados de erro e reaberturas.

Agente de IA via MCP

Responde quantos chamados um cliente abriu, quanto esperou e por quê, já sem internos e automações.

Alertas

Aviso quando a fila sem dono cresce ou quando uma conta top está perto de violar o SLA.

Quer construir?

As regras são diretas. O trabalho está em ligar o chamado ao cliente e em reconstruir os tempos a partir das mensagens quando a ferramenta não guarda o que você precisa. O detalhado traz as regras de negócio, as armadilhas e o teste de aceitação. Ou mande tudo direto para o seu agente com o MCP da Nekt.

Ver detalhado
O problema

A ferramenta de suporte conta conversas que o cliente nunca abriu, chamados sem empresa e mensagem do bot como resposta. O tempo de resposta começa quando o ticket é criado, não quando o cliente escreveu, e o tempo vazio vira zero na média. O resultado é um volume por cliente que não bate com o relatório da ferramenta, um tempo de resposta bom demais e um health score que pune o cliente errado.

Como costuma ser feito, e a regra

Cada linha é um erro que já aconteceu na prática.

O jeito comumA regra
01
Contar toda conversa criada, inclusive as disparadas pelo time ou por automação.
Conte só o chamado válido, como o relatório da ferramenta

No Intercom, a conversa conta quando não foi disparada por automação (source.delivered_as diferente de automated) e o cliente respondeu (first_contact_reply preenchido). Mensagens proativas, campanhas e lembretes ficam fora. Reproduza primeiro a regra do relatório nativo da ferramenta e só depois crie recortes próprios, publicando a diferença quando houver.

02
Somar chamados internos da equipe no volume do cliente.
Externo e interno sempre separados

Pedidos internos (do financeiro para o suporte, tarefas de operação) convivem com os chamados de cliente na mesma ferramenta. Separe por um campo de tipo do chamado, não pelo nome da equipe: uma equipe pode ter os dois. Tire empresas internas e de teste. Quando a pergunta não disser qual recorte, o agente pergunta antes de responder.

03
Contar só os chamados que já vêm com empresa, ou escolher o cliente mais frequente de um id ambíguo.
Todo chamado ligado ao cliente, em cascata

O chamado muitas vezes chega sem empresa. Resolva por ordem: empresa do próprio chamado, empresa do contato, e-mail, telefone normalizado (DDD mais os últimos 8 dígitos). Domínio de e-mail só vale se não for de provedor gratuito. Um de-para de empresa só entra quando é unívoco. Grave como o cliente foi identificado (direto, de-para ou sem identificação) e publique a taxa de vínculo por mês.

04
Medir a resposta a partir do created_at do ticket.
O relógio começa na primeira fala do cliente

Em chat, o cliente escreve antes de o ticket existir: numa base real, a primeira mensagem era de 07:43 e o ticket de 07:59. Espera é a primeira resposta da empresa depois da primeira mensagem do cliente, calculada pelas mensagens. Se a empresa falou primeiro (atendimento ativo), conte a partir da primeira fala do cliente, senão o tempo sai negativo. Conversa com horário inferido, como a que cruza a virada do ano sem data completa, fica fora do SLA.

05
Uma única primeira resposta, com IA e humano misturados.
IA e humano são tempos diferentes

Com um agente de IA respondendo primeiro, a primeira resposta cai para segundos e esconde a espera por uma pessoa. Classifique cada chamado em só IA, IA com transferência, só humano, sem resposta ou sem transcrição, e meça a espera até a primeira resposta humana à parte. Contadores nativos de resposta de agente podem ignorar a mensagem da IA: guarde-os para auditoria e calcule pelas mensagens. No Intercom, resolução presumida da IA (assumed_resolution em ai_agent.resolution_state) não é resolução confirmada pelo cliente.

06
Média com vazio trocado por zero, sobre todos os chamados.
Tempo vazio não é zero, e média não resume

Chamado sem resposta humana tem tempo vazio. Trocar vazio por zero puxa a média para baixo. Resuma tempos por mediana e p90, só sobre chamados elegíveis (chat com transcrição e horário confiável), e mostre quantos ficaram de fora. Se o SLA é em horário comercial, use o tempo em horário comercial que a ferramenta fornece (no Intercom, a primeira resposta em office hours nas estatísticas da conversa) e diga qual dos dois está mostrando.

07
Usar o último fechamento e esconder a reabertura dentro do tempo.
Resolução até o primeiro fechamento; reabertura à parte

Tempo de resolução vai da criação ao primeiro fechamento. Chamado reaberto (hs_ticket_reopened_at no HubSpot, count_reopens no Intercom) entra numa métrica própria de reabertura por atendente, sinal de fechamento mal feito. No HubSpot, time_to_close, time_to_first_agent_reply e o tempo por etapa (hs_v2_cumulative_time_in_<etapa>) vêm em milissegundos: converta uma vez, na primeira camada.

08
Filtrar chamados sem dono ou sem categoria.
Sem dono e sem categoria também são dado

Numa base real, quase metade dos chamados não tinha dono e a categoria vinha vazia na maioria. Rotule dono nulo como Não atribuído e nunca descarte: a fila sem dono é um sinal da saúde do atendimento. Use fila, pipeline ou nível (N1, N2, N3) como quebra principal quando a categoria não é confiável, e mapeie status em mais de uma língua (Resolvido e Closed) para aberto, pendente e fechado.

09
Ranquear clientes pelo volume bruto de chamados.
Volume do cliente comparado com ele mesmo

Um cliente com 200 usuários abre mais chamados que um com 5. Para o health score, use o agregado cliente x mês com variação contra o mês anterior e média móvel de 3 meses, e normalize por usuários ativos ou por MRR. Separe dúvida de erro: dúvida aponta para onboarding e documentação, erro aponta para produto. O percentual de dúvidas usa só chamados fechados classificados como dúvida ou erro.

10
Um SLA único para todos, e chamado sem alvo contado como dentro do prazo.
SLA vem do contrato, por tipo de cliente

O alvo depende do cliente, por exemplo 24 horas para contas top e 72 horas para as demais, em dias úteis. Grave o alvo no chamado e marque violação quando foi resolvido depois do alvo ou segue aberto além dele. Chamado antigo, de antes da automação do SLA, fica sem alvo e fora do denominador, nunca como cumprido.

Quem atendeu o chamado

Pelas mensagens da transcrição, depois da primeira fala do cliente.

só mensagens da IAResolvido pela IA
IA primeiro, depois uma pessoaTransferidoespera humana = 1ª resposta humana - 1ª fala do cliente
só mensagens de pessoas do timeHumano
nenhuma mensagem da empresaSem resposta
sem transcrição ou horário inferidoFora do SLA, conta no volume

Definições

Chamado válido
conversa ou ticket aberto pelo cliente, não disparado por automação ou pelo time, com resposta do cliente, sem internos e empresas de teste; contado na data de criação
Tempo de espera
da primeira mensagem do cliente até a primeira resposta da empresa (IA ou humano) depois dela, por chamado, em segundos
Espera humana
da primeira mensagem do cliente até a primeira resposta de uma pessoa do time; vazia quando só a IA atendeu
Tempo de resolução
da criação até o primeiro fechamento, por chamado; reaberturas medidas à parte
Taxa de resolução pela IA
chamados de chat atendidos só pela IA / chamados de chat válidos, por mês
Taxa de reabertura
chamados fechados no mês com pelo menos uma reabertura / chamados fechados no mês, por atendente e equipe
Violação de SLA
chamado resolvido depois do alvo, ou aberto além do alvo na data de referência / chamados com alvo
Chamados por cliente
chamados válidos externos do cliente no mês, com variação contra o mês anterior e média móvel de 3 meses
Taxa de vínculo
chamados válidos ligados a um cliente / chamados válidos, por mês e por método de identificação

Armadilhas que já aconteceram

Um id de empresa para mais de mil clientes

O de-para escolhia o cliente mais frequente de cada id de empresa da ferramenta. Um desses ids era do agente interno que abria chamados em nome dos clientes, e milhares de chamados caíram num cliente só, que apareceu como o maior usuário do suporte.

Aceite só de-para unívoco; o resto fica como sem identificação.

Chamado contado duas vezes pelo domínio

Juntar uma tabela de empresa x domínio com a de chamados duplicou linhas, porque uma empresa tinha vários e-mails de acesso. O contador mostrou cerca de 13% mais chamados do que existiam e alimentou o health score assim.

Resolva o cliente por chamado e conte pelo id do chamado.

Carga de histórico em dobro

A carga de anos de chamados gravou em modo de acréscimo, e reprocessar um arquivo repetiu chamados idênticos. Todos os contadores saíram inflados sem nenhum erro.

Deduplique pelo id do chamado na entrada da camada de métricas.

Vazio virou zero na média

O cálculo trocava tempo de resposta vazio por zero antes de tirar a média, e a primeira resposta do time parecia muito melhor do que era.

Tire os vazios da média, use mediana e p90 e mostre a contagem.

A IA melhorou a média, o cliente esperou igual

Com o agente de IA na frente, a primeira resposta caiu para segundos. A espera por uma pessoa nos chamados transferidos não mudou, e ninguém via porque só havia uma coluna de tempo.

Publique a espera humana ao lado da primeira resposta.

Status em duas línguas

Resolvido e Closed conviviam no mesmo campo, e uma parte dos chamados fechados era contada como aberta.

Mapeie todos os status para aberto, pendente e fechado numa tabela.

Validado em dados reais. Na conta de Intercom da própria Nekt, cerca de 85% das conversas tiveram participação do agente de IA e mais de 6 em cada 10 não tiveram nenhuma resposta humana. Trocar o tempo vazio por zero derruba a média de primeira resposta humana para pouco mais de um terço do valor real, e mesmo sem os vazios a média fica dezenas de vezes acima da mediana, por causa da cauda longa. Nenhuma conversa traz a empresa preenchida no próprio registro, e a maioria das resoluções da IA é presumida, não confirmada pelo cliente.

Teste de aceitação

O caso está pronto quando todos os itens passam.

Pacote para o agente

Cole no Claude, ChatGPT ou outro cliente com o MCP da Nekt conectado.

Markdown completo
Suporte por cliente
- Chamado válido = aberto pelo cliente, não disparado por automação nem pelo time, com resposta do cliente. No Intercom: source.delivered_as diferente de automated e first_contact_reply preenchido.
- Separe sempre chamados de cliente (externos) de chamados internos da equipe, pelo tipo do chamado. Se a pergunta não disser qual recorte, pergunte.
- Empresas internas e de teste ficam fora. Chamado sem cliente identificado conta no volume como sem identificação.
- Tempo de espera começa na primeira mensagem do cliente, não na criação do ticket. Espera humana é medida à parte; vazia quando só a IA atendeu.
- Tipo de atendimento: só IA, transferido, humano, sem resposta, fora do SLA.
- Tempos são resumidos por mediana e p90 sobre chamados elegíveis. Nunca troque tempo vazio por zero.
- Resolução = criação até o primeiro fechamento. Reabertura é métrica própria.
- Dono nulo = Não atribuído. Nunca descarte.
- Tempos do HubSpot vêm em milissegundos.
- SLA: alvo por tipo de cliente gravado no chamado. Chamado sem alvo fica fora do cálculo de SLA.
Exceções por cliente:
- <cliente>: SLA de <horas> horas úteis por contrato.
- <cliente>: chamados abertos pelo canal <canal> ficam fora do tempo de experiência.

Variações

Suporte por WhatsApp

O chamado é o grupo ou o número: ligue ao cliente pelo nome do grupo normalizado ou pelos últimos 8 dígitos do telefone, e anonimize telefone, e-mail e documento antes de exportar o texto.

Sustentação com SLA contratual

O backlog vira uma foto mensal dos chamados abertos, sem corte pela data de abertura, com envelhecimento e transbordo entre N1, N2 e N3.

Chamados por módulo para produto

Um campo de módulo impactado no chamado liga cada erro à parte do produto e ao cliente, e produto prioriza por clientes e MRR afetados.