Skip to main content

Introdução ao Insight

O projeto NX Insight possui como objetivo apresentar os dados dos diversos produtos da Smart NX de forma prática e objetiva.

Principais Funcionalidades​

  • 👌🏻 Fácil Visualização: Com uma série de visualizações já prontas basta acessar o conjunto de dados de interesse e receber as principais informações de forma simples e rápida.

  • 🦚 Personalização: Visões personalizadas podem ser criadas por cliente, atendendo as necessidades específicas.

  • 🧐 Tudo em um lugar só: Uma plataforma única para fazer as principais análises e tomada de decisão.

  • 📲 De qualquer dispositivo: Os gráficos são responsíveis e podem ser acessados e adaptados ao mobile.

Tecnologias e Ferramentas​

img img img img img

  • PHP: 7.4
  • Repositório git: NXBI/NXInsight
  • Jira board: [P] NX Insight
  • Percona (fork de Mysql 5.7): Release 11 com engine tokudb 8
  • Laravel: 7

Visão Geral​

O Insight trata-se de um produto que concentra dados das plataformas do Callcenter, da Movidesk e da Huggy.

img

Início: a necessidade de negócio​

Uma das grandes dores dos clientes é uma visualização mais unificada de todos produtos da Smart NX. Com o crescimento de seus negócios e um aumento da maturidade de gestão se torna necessário entender os relacionamentos entre os sistemas e consequentemente uma análise mais detalhada dos dados.

Baseado nisso surgiu o Insight fornecendo de forma simples visualizações dos dados.

As demandas iniciam-se no quadro [P] Insight no JIRA onde se é criada a tarefa.

Controle e versionamento de código​

Com a tarefa em mãos cria-se uma nova branch no repositório git do produto, o mesmo estando localizado dentro do workspace SMARTNX e do projeto NXBI, com o nome de NXInsight.

Dentro do repositório temos duas branches importantes:

  • develop: Onde está o código de homologação. As novas funcionalidades passam pelo processo de merge nesta branch para serem aprovadas.

  • master: Onde está o código de produção. As novas funcionalidades uma vez homologadas e aprovadas na develop vem para cá.

O Coletor​

Sendo a coleta de dados uma das principais características do Insight uma das peças importantes desse processo é o coletor.

O Coletor é um script .sh presente no Jump que realiza a extração dos dados e da insert no Insight.

Os dados são extraídos a partir da meia noite nos servidores configurados no Insight, sendo essa extração realizada com coletores próprios (Callcenter) ou via API (Huggy e Movidesk).

Setup​

Após o setup do git e bitbucket faça o clone do repositório:

git clone git@bitbucket.org:devsmartnx/nxinsight.git

Entre na pasta nxinsight:

cd nxinsight

Copie o arquivo .env.example e renomeie para .env

cp ./.env.example ./.env

Abra o arquivo .env e faça as configurações que reflitam a estrutura de seu banco de dados:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=insight
DB_USERNAME=root
DB_PASSWORD=1234

Instale as dependências:

php composer install

Inicie o servidor:

php artisan serve

Fluxo de Trabalho​

Consultas​

Boa parte do desenvolvimento no Insight consiste na criação de novos gráficos e tabelas. Os dados podem vir de três principais tabelas do banco de dados:

  • CargaCounter(Day/Month): Também conhecido como Contadores pela interface do sistema, possui uma estrutura condensada por dia/mês, com a seguinte estrutura de coluna
ColunaExemplo
cliente_id
produto
canal
tipo_chamada_campanha
date_index
fulldate
carga_id
carga
campanha
agente_id
tipo_tabulacao
pesquisa_comentarios
pesquisa_modelo_pontuacao
pesquisa_resposta
cnt_sla_horario
cnt_sla_fora_horario
cnt_sla_primeira_resposta_horario
cnt_sla_primeira_resposta_fora_horario
cnt_total
sum_valor_divida
cnt_conversion
sum_valor_divida_convercao
cnt_duracao
cnt_answer
cnt_busy
cnt_abandon
cnt_noanswer
cnt_chanunavail
cnt_invalidnumber
cnt_failed
cnt_answermachine
cnt_transbordo
json_cnt_tabulacao
cnt_nota_pesquisa
sum_tempo_resolucao
json_cnt_status
sum_tempo_espera
cnt_reabertura
json_cnt_urgencia
cnt_robot
cnt_resolvedinfirstcall
sum_leads_importados
  • CPFs: Estrutura de consulta individual dos dados

cliente_id| produto| canal| campanha| carga| registros_importados| unique_index| nome| email| telefone| atendimentos

Onboarding​