Como configurar uma integração com outras ferramentas usando webhooks

» Como configurar uma integração com outras ferramentas usando webhooks

O que são webhooks?

Webhook é um recurso que possibilita o envio de informações entre sistemas distintos através de uma URL quando um evento específico ocorrer.

Agora no Luvik é possível configurar webhooks para notificar outros sistemas em tempo real sempre que ocorrer eventos de negócios criados, ganhos e perdidos.

Isso significa que, assim que algum negócio for criado, ganho ou perdido, o outro sistema conectado poderá ser automaticamente avisado, sem necessidade do usuário ficar consultando ou atualizando dados de forma manual.

Para utilizar essa funcionalidade, é importante verificar se a ferramenta que você utiliza e na qual você deseja receber essas informações possua uma URL para receber os dados.

Essa URL precisa conseguir ler e consumir dados enviados em formato JSON.

Como aproveitar essa funcionalidade no meu dia a dia?

Como vimos acima, o webhook garante que os sistemas “conversem” entre si e que você tenha processos mais rápidos, integrados e confiáveis.

Portanto, se você utiliza outras ferramentas na sua empresa que, em algum momento, precisam ser notificadas que um negócio foi marcado como ganho, por exemplo, essa configuração pode ser de grande valia. Um exemplo disso seria enviar dados de um negócio ganho para uma ferramenta de geração de cobrança.

Como configurar os webhooks no Luvik

Assista ao vídeo a seguir ou prossiga com a leitura do artigo.

Para começar a receber notificações, você precisa informar ao Luvik quais são os seus endpoints (as URLs dos seus sistemas) que devem receber as informações de cada evento.

Para configurar as URLs acesse o menu Configuração > Integrações e localize a seção Webhooks do Luvik.

Informe as URLs que irão receber os eventos nos campos destinados aos negócios ganhos, negócios perdidos e negócios criados.

Exemplo de dados enviados pelo Luvik

Quando um dos eventos configurados ocorrer, o Luvik enviará uma requisição HTTP POST para a URL correspondente. O corpo da requisição (body) conterá um objeto JSON com os detalhes do negócio.

Evento: Negócio Ganho

Disparado quando um negócio é marcado como “Ganho”.

{
  "id": "68c8094defcd2218a7d5666a",
  "type": "PHOTOVOLTAIC",
  "status": "GAIN",
  "closingChance": "HIGH",
  "responsibleUser": "Nome do Responsável",
  "createdAt": "2025-09-15T09:40:45.444",
  "lossAt": null,
  "lossReason": null,
  "lossDetails": null,
  "soldAt": "2025-09-15T09:41:44",
  "soldPrice": 20000,
  "description": "Teste webhook novo negócio",
  "address": {
    "state": "SP",
    "city": "Mococa",
    "street": null,
    "number": null,
    "complement": null,
    "neighborhood": null,
    "zipCode": null
  },
  "contact": {
    "type": "PF",
    "name": "Nome do Contato",
    "document": null,
    "corporateName": null,
    "email": null,
    "phone": "(XX) XXXXX-XXXX",
    "whatsapp": null,
    "state": "SP",
    "city": "Mococa",
    "street": null,
    "number": null,
    "complement": null,
    "neighborhood": null,
    "zipcode": null,
    "tracking": null
  }
}

Evento: Negócio Perdido

Disparado quando um negócio é marcado como “Perdido”.

{
  "id": "68b0a10cefcd2218a7d564a4",
  "type": "PHOTOVOLTAIC",
  "status": "LOSS",
  "closingChance": "HIGH",
  "responsibleUser": "Nome do Responsável",
  "createdAt": "2025-08-28T15:33:48.749",
  "lossAt": "2025-09-15T09:43:05.829",
  "lossReason": "CONTACT_GAVE_UP",
  "lossDetails": "Contato desistiu da compra, não houve acordo em valores",
  "soldAt": null,
  "soldPrice": null,
  "description": "tteste",
  "address": {
    "state": "SP",
    "city": "Mococa",
    "street": null,
    "number": null,
    "complement": null,
    "neighborhood": null,
    "zipCode": null
  },
  "contact": {
    "type": "PF",
    "name": "Nome do Contato",
    "document": null,
    "corporateName": null,
    "email": null,
    "phone": "(XX) XXXXX-XXXX",
    "whatsapp": null,
    "state": "SP",
    "city": "Mococa",
    "street": null,
    "number": null,
    "complement": null,
    "neighborhood": null,
    "zipcode": null,
    "tracking": null
  }
}

Evento: Negócio Criado

Disparado quando um negócio é “Criado”.

{
  "id": "68c8094defcd2218a7d5666a",
  "type": "PHOTOVOLTAIC",
  "status": "OPEN",
  "closingChance": "HIGH",
  "responsibleUser": "Nome do Responsável",
  "createdAt": "2025-09-15T09:40:45.444527785",
  "lossAt": null,
  "lossReason": null,
  "lossDetails": null,
  "soldAt": null,
  "soldPrice": null,
  "description": "Teste webhook novo negócio",
  "address": {
    "state": "SP",
    "city": "Mococa",
    "street": null,
    "number": null,
    "complement": null,
    "neighborhood": null,
    "zipCode": null
  },
  "contact": {
    "type": "PF",
    "name": "Nome do Contato",
    "document": null,
    "corporateName": null,
    "email": null,
    "phone": "(XX) XXXXX-XXXX",
    "whatsapp": null,
    "state": "SP",
    "city": "Mococa",
    "street": null,
    "number": null,
    "complement": null,
    "neighborhood": null,
    "zipcode": null,
    "tracking": null
  }
}

Significado dos campos enviados via JSON

Abaixo está a descrição dos principais campos enviados no objeto JSON.

CampoTipoDescrição
idString

Identificador único do negócio no sistema Luvik.

typeString

Tipo do negócio. Ex: “PHOTOVOLTAIC”.

statusString

Status atual do negócio. Valores: OPEN, GAIN, LOSS.

responsibleUserString

Nome do usuário responsável pelo negócio.

createdAtTimestamp

Data e hora de criação do negócio (ISO 8601).

lossAtTimestamp

Data e hora em que o negócio foi perdido (nulo se não aplicável).

lossReasonString

Motivo da perda (ex: CONTACT_GAVE_UP).

lossDetailsString

Detalhes adicionais sobre a perda.

soldAtTimestamp

Data e hora em que o negócio foi ganho (nulo se não aplicável).

soldPriceNumber

Valor final da venda (nulo se não aplicável).

descriptionString

Descrição ou observações sobre o negócio.

addressObject

Objeto contendo os dados de endereço do projeto.

contactObject

Objeto contendo os dados do contato principal do negócio.

contact.nameString

Nome completo do contato.

contact.phoneString

Telefone do contato.

Como testar a integração via webhook usando o Webhook.site

Para testar essa configuração você pode utilizar o Webhook.site. Ele permite exibir na prática como funciona a integração.

Para isso, acesse o site  https://webhook.site. Automaticamente, será gerado um link exclusivo para você (algo como https://webhook.site/xxxx-xxxx-xxxx).

Copie esse link e cadastre-o no campo de URL do Webhook dentro do nosso sistema.

Clique em “Salvar”.

Agora, faça um teste no sistema criando um novo negócio e volte para a página do Webhook.site e veja o site mostrar em tempo real os dados que foram enviados.

Em caso de dúvidas, entre em contato com nosso time de suporte.

 

LUVIK SISTEMAS LTDA. CNPJ: 37.123.063/0001-45

© Luvik - Por um mundo com mais energia solar