Automação de cadastro entre CRM e plataforma sem API
Aplicação de terminal que procura contratos no CRM de uma mediadora imobiliária e lança os mesmos dados numa segunda plataforma, que não disponibiliza qualquer interface de integração.
O problema
A mediadora mantinha os contratos no Properfy, o CRM onde a equipa trabalha todos os dias. Os mesmos contratos tinham depois de ser lançados na Linkka, a plataforma usada para o relatório de locação. Nenhuma das duas fala com a outra.
O segundo lançamento era feito à mão. Alguém abria o contrato de um lado, copiava os campos, abria o formulário do outro lado e escrevia tudo de novo. Repetido por cada contrato de cada período, é tempo perdido numa tarefa que não exige julgamento nenhum, e onde um engano de transcrição só costuma dar sinal muito depois.
A Linkka não publica API. Não havia, portanto, a via limpa de ligar os dois sistemas por trás. O que havia era a mesma interface que a pessoa usa.
O que construí
Uma aplicação de terminal, entregue como executável único, que percorre o trajeto inteiro: procura os contratos no CRM dentro de um intervalo de datas, deixa escolher quais processar, e preenche a plataforma de destino conduzindo um browser da mesma maneira que uma pessoa o faria.
A decisão de conduzir o browser em vez de forjar pedidos ao servidor foi propositada. Faz o mesmo percurso visível que um utilizador autorizado faz, respeita as validações do formulário e não depende de detalhes internos que podem mudar sem aviso.
Como funciona
Verificação antes de começar
Ao arrancar, a aplicação confirma que tem tudo o que precisa: credenciais dos dois sistemas e parâmetros de ligação. Se faltar alguma coisa, encaminha para o ecrã de configurações em vez de falhar a meio de um processamento.
Menu principal
Quatro caminhos, sem submenus escondidos: processar dados, ver histórico, configurações e sair. A barra inferior mostra sempre os atalhos de teclado disponíveis, incluindo a troca de tema de cores.
Escolha do período
O utilizador indica a data inicial e a data final, com hora. É por aqui que se define o lote de trabalho, normalmente o dia anterior ou a semana que passou.
Contratos encontrados
A aplicação consulta o CRM e apresenta os contratos do período numa tabela com referência, data de divulgação, tipologia, morada e bairro. Nada é processado sem escolha explícita: cada linha tem de ser marcada.
Dois modos de processamento
No modo cuidadoso o browser fica visível e a aplicação pára em cada contrato à espera de confirmação. Serve para a primeira utilização do dia, para lotes invulgares, ou sempre que alguém queira ver com os próprios olhos o que está a ser escrito.
No modo normal o browser corre oculto e o lote segue sem interrupções. Em ambos os casos o registo aparece em tempo real.
Preenchimento
A aplicação abre a plataforma de destino, autentica-se, navega até ao formulário de registo e preenche os campos a partir dos dados do CRM. No modo cuidadoso, pára aqui para revisão antes de gravar.
Resumo do lote
No fim, o registo completo do que aconteceu e a contagem de sucessos e falhas. Se um contrato falhar, os restantes continuam, e a falha fica identificada em vez de se perder no meio do resto.
Histórico consultável
Cada execução fica guardada com data, período, modo usado e resultado por contrato. É o que permite responder mais tarde à pergunta que sempre aparece: este registo entrou quando, por que via, e correu bem?
Três decisões que fizeram diferença
O modo cuidadoso é o predefinido. Uma ferramenta que escreve em nome de alguém tem de deixar essa pessoa ver o que está a ser escrito, pelo menos até haver confiança suficiente para deixar correr sozinha.
Tudo fica registado. Data, período, modo, contrato e resultado. Sem esse rasto, qualquer divergência mais tarde vira discussão sem factos, e é a ferramenta que leva a culpa por omissão.
As credenciais vivem nas configurações, não no código. A aplicação foi entregue a uma equipa que a usa todos os dias, com contas próprias, e que precisa de as poder mudar sem me chamar.
Resultado
O que era uma tarefa manual de procurar e transcrever, contrato a contrato, passou a ser escolher um período e confirmar. A equipa deixou de gastar tempo em transcrição e passou a ter um histórico consultável de tudo o que foi lançado.