Ordens de Serviço
A operação de campo — vistorias e instalações — dentro do CRM, com formulários próprios, jornadas configuráveis e agenda checada contra o deslocamento. Levou dezenas de clientes a fazer upgrade de plano.
- Papel
- Front-end, mais o back-end junto com o CTO
- Período
- Jun 2025 – Atual
- Contexto
- Groner · desenvolvido com o CTO
- Stack
- Vue.js C# Google Maps API SQL Server Quasar TypeScript .NET SQS Lambda S3
Este trabalho é propriedade da Groner. Ele é descrito em nível de arquitetura, sem código-fonte nem dados de clientes.
Resumo
- Dezenas de clientes migraram para o plano mais caro
- Comercial e operação no mesmo sistema
- Agenda checada contra deslocamento e capacidade
Contexto
Depois que a venda de um sistema solar fecha, o trabalho vai para o campo: equipes de vistoria avaliam o local e equipes de instalação montam o sistema.
O problema
Essa operação ficava fora do CRM. Para gerenciá-la, os clientes contratavam uma ferramenta de campo à parte, como Auvo ou Field Control — e o histórico de cada cliente ficava dividido entre dois sistemas.
Meu papel
Construí o front-end do módulo — telas das ordens, formulários personalizados, o quadro de disponibilidade e o planejador de rotas — e atuei no back-end junto com o CTO, que escreveu a maior parte dele. Desenvolvemos o núcleo do módulo numa viagem de negócios à sede da Resolve Energia Solar, um dos maiores clientes da Groner na época, ao lado de quem ia usá-lo.
Arquitetura
- Configurável por empresa. Cada tipo de serviço tem o seu formulário — fotos, checklists, assinaturas, localização e fórmulas, com campos condicionais e edição por perfil — e as suas próprias configurações de tempo e custo.
- Automações em cada mudança de status. Por tipo de serviço e status, uma ordem pode atualizar o negócio, criar a próxima ordem, lançar no financeiro, chamar webhooks ou mandar mensagem ao cliente no WhatsApp.
- O que é lento fica fora da requisição. Mensagens de WhatsApp, webhooks e relatórios em PDF passam por filas SQS até Lambdas, com os arquivos no S3.
Decisões-chave
- Status personalizados sobre um ciclo de vida fixo. Cada empresa dá às etapas o nome que quiser, mas cada status corresponde a uma fase fixa — pendente, em deslocamento, no local, em execução, em validação, finalizada —, então medição de tempo, automações e relatórios funcionam igual para todos.
- Um sistema para vendas e operação. As ordens ficam ligadas ao mesmo negócio em que o comercial trabalha, então o histórico do cliente fica num lugar só e a operação ganha de graça o resto do CRM: permissões, notificações, documentos e automações.
A parte mais difícil
Estimar quanto tempo uma ordem vai levar — e se ela cabe no dia do técnico:
- Tempo de serviço vem do tipo de serviço: minutos-base mais uma fórmula sobre os dados do próprio negócio — quantidade de placas, potência do sistema em kWp e outros.
- Deslocamento vem da Distance Matrix do Google, partindo da ordem anterior do técnico no dia, da base dele ou da loja.
- Capacidade: serviço, espera e deslocamento precisam caber no expediente do técnico ou da equipe, descontado o que já está agendado; ordens que caem em horário bloqueado ou se sobrepõem a outra são recusadas.
Além disso, um planejador de rotas ordena as paradas do dia pelo caminho mais curto, mais rápido ou equilibrado — testando todas as ordens possíveis até oito paradas e usando a heurística do vizinho mais próximo acima disso.
Resultados
- Dezenas de clientes migraram para o plano mais caro da Groner — na época, o único com Ordens de Serviço — por causa desse módulo.
- Os clientes passaram a tocar vistorias e instalações no mesmo CRM das vendas, em vez de pagar por uma ferramenta de campo à parte.