Criando um consolidador de NPS no jestor

Como utilizar um forms e códigos simples para validar o score da sua empresa.

Você pode já usar ele pronto como template clicando aqui.

Toda empresa deve evoluir constantemente. Seja desenvolvendo mais seu produto ou melhorando o processo de atendimento como um todo, a evolução constante é o que garante que a empresa se posicione acima de seus concorrentes e conquiste cada vez mais mercado.

No entanto, muitas vezes é difícil para o time entender quais são seus pontos fortes e fracos, seja por estar próximo demais ao produto ou por não ter clareza da jornada como do cliente como um todo. Por isso, uma das melhores formas de entender como melhorar, ou validar se o produto caminha para a direção correta, é coletar o feedback de quem efetivamente usa o produto.

O Net Promoter Score é uma ferramenta muito utilizada por startups para entender a avaliação do público sobre seu produto. Basicamente, o NPS funciona numa lógica em que os clientes podem atribuir à empresa ou produto uma nota de zero a dez, podendo cair em algumas categorias dependendo da nota:

  • (9 ou 10) Promotor: cliente que ativamente recomendará seu produto para outras pessoas, promovendo naturalmente a empresa.
  • (7 ou 8) Passivo: cliente neutro, que não recomendará ativamente o produto mas também não fará reclamações ativas sobre o mesmo.
  • (6 ou inferior) Detrator: cliente que não gosta do seu produto e irá desincentivar outras pessoas de usá-lo.

Depois de categorizar todos os clientes que participaram da pesquisa, encontrar o NPS é fácil. Basta seguir a fórmula:

NPS = % Promotores — % Detratores

Para exemplificar, caso tenhamos 10 promotores, 5 passivos e 5 detratores, teremos 50% de promotores e 25% de detratores, chegando num NPS de 25.

Com os forms do jestor e alguns códigos simples, conseguimos criar uma ferramenta para coleta contínua de feedback e cálculo do NPS :)


Montando a estrutura

A estrutura em em si é bem simples. Precisamos, basicamente, de:

  • Um cadastro de avaliações, que gerará o formulário a ser compartilhado com o cliente;
  • Um cadastro de NPS, onde serão consolidadas as avaliações;
  • Um dashboard para que vejamos de forma fácil as informações agregadas.

Para o cadastro de avaliações, colocaremos campos para que o cliente possa colocar nome e e-mail, sua nota, e duas perguntas qualitativas (para entender melhor o motivo da avaliação):

Cadastro de Avaliações no jestor

Para o cadastro de NPS, teremos um campo de nome padrão do registro, campos de número para a quantidade de promotores, passivos, detratores e NPS, e um campo de data para que possamos gerar os gráficos no dashboard.

Cadastro de NPS no jestor

Por enquanto não criaremos o dashboard, que montaremos posteriormente quando já tivermos algumas informações no sistema. Dito isso, já conseguimos começar a desenvolver o código!


Começando a desenvolver

A primeira automação que iremos criar é quando alguém alimenta o cadastro de avaliações com um novo registro. Ou seja, quando o cliente preenche o form de avaliação. Essa automação se chamará criaavaliacao e será disparada pelo gatilho Após registro ser criado, já que utilizaremos a data de criação do registro para algumas variáveis.

A primeira coisa que faremos é coletar a data em que o form foi submetido (ou seja, que o registro foi criado), utilizar as funções strtotime para transformar a data em uma informação manipulável e date para extrair o mês e ano. Precisamos antes passar afunção str_replace para substituir as barras da data por hífens, para que o padrão de data brasileiro possa ser convertido no strtotime.

No código abaixo, isso faz com que, se o registro for criado em 20/08/2020, por exemplo, eu receba o texto “08/2020” na variável $periodo.

Depois disso, através de concatenações transformamos essa data no segundo dia desse mês (para contornar problemas com fuso horário do servidor, já que a data será salva um dia para trás). Essa é a data que será salva no registro de NPS e pela qual serão montados os gráficos.

Logo após, vemos se já existe um lançamento no cadastro NPS com o nome passado em $periodo. Caso não haja, criamos. Caso haja, pegamos as informações dele.

Automação criaavaliacao — parte 1

Depois disso, verificamos a nota para saber se adicionamos um promotor, passivo ou detrator ao número já existente de NPS.

Automação criaavaliacao — parte 2

Logo em seguida, já calculamos o novo NPS e criamos um array com as novas informações para atualizar o registro de NPS do mês.

Automação criaavaliacao — parte 3

Depois disso, repetimos todo esse código já desenvolvido, mas desta vez no início buscamos algum registro de NPS com o nome Geral. Essa parte do código atualizará o NPS geral da empresa, ou seja, o consolidado de todas as avaliações independente do tempo.

A segunda automação que iremos criar é quando alguém edita o cadastro de avaliações com um novo registro. Em tese, essa deve ser a menos utilizada (já que não devemos modificar as avaliações dos clientes), mas criaremos por precaução (caso alguém do time tenha enviado errado, por exemplo). Essa automação se chamará editaavaliacao e será disparada pelo gatilho Antes de o registro ser atualizado.

Como é possível ver pelo código abaixo, ele é muito similar ao anterior, com a exceção de que utilizaremos a variável $objectOld para coletar a data original de criação do registro.

Automação editaavaliacao — parte 1

A única alteração aqui será a inclusão de um novo bloco de cálculo de promotores, passivos e detratores logo após o primeiro. Nesse novo bloco, retiraremos a categorização antiga do cliente, caso houvesse. Assim, caso um promotor vire passivo, o que acontece é que adicionamos +1 na variável $passives e em seguida reduzimos -1 na variável $promoters.

Automação editaavaliacao — parte 2

O restante do código mantém a lógica anterior: calcular novo NPS, criar o array, fazer a atualização através de um Jestor.update(), e repetir todos esses passos para o NPS geral.

Por fim, faremos uma atualização chamada deletaavaliacao que será ativada pelo gatilho Antes de o registro ser deletado, e que terá o propósito de corrigir o NPS caso deletemos uma avaliação. Isso será útil caso um mesmo cliente envie duas avaliações iguais.

Como é possível ver pelo código abaixo, na realidade é só um espelho da primeira automatização, mas ao invés de incrementar os promotores, passivos ou detratores, diminuiremos o número (já que o cliente não irá mais constar no NPS). Além disso, tomamos o cuidado de sempre utilizar a variável $objectOld, já que não haverá envio de informações novas, apenas deleção das antigas.

Automação deletaavaliacao — parte 1

Pronto! Acabamos nossas automatizações.


Testando a solução

Com as automatizações prontas, podemos entrar no cadastro de Avaliações e criar um formulário clicando em + Formulário. Depois de escolher os campos que aparecerão no nosso formulário (que nesse caso serão todos), recebemos o link para o form que podemos compartilhar com nossos clientes.

Link para form criado no jestor

Ao preencher alguns formulários de teste, editar e excluir avaliações, validamos que está tudo funcionando corretamente! O cadastro de NPS é atualizado com todas as informações conforme o esperado :D

NPS consolidado por mês e geral

Para finalizar, criamos um dashboard simples mostrando a variação do NPS por mês, o NPS geral da empresa, alguns atalhos para facilitar a navegação e uma lista com as avaliações do mês, para que tenhamos uma forma fácil de avaliar os critérios qualitativos.

Dashboard de NPS

Vamos ver a solução funcionando do começo ao fim?

NPS enviado por form no jestor.

Com apenas alguns passos, conseguimos criar uma ferramenta funcional para coletar a avaliação dos clientes e calcular o NPS de forma automática. Assim, a empresa consegue entender melhor como é percebida pelos usuários do seu produto, quais as coisas que eles mais gostam e onde ela pode melhorar.

Poderíamos ter incrementado esse template de várias formas interessantes, como um link para entrar em contato com um novo detrator, mas a ideia era justamente criar de forma fácil algo que já permita a consolidação das informações e, caso queiramos, iterar para melhorar a ferramenta cada vez mais.

Afinal, assim como sua empresa deve melhorar cada dia mais, escolha uma ferramenta que evolua com você.