> ## Documentation Index
> Fetch the complete documentation index at: https://docs.landerlab.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurar a integração de webhook

> Saiba como configurar uma integração de webhook no LanderLab para enviar dados de leads em tempo real para qualquer endpoint HTTPS, incluindo CRMs, compradores de leads e APIs personalizadas.

> Conecte um webhook às suas landing pages no LanderLab para enviar dados de leads em tempo real para qualquer endpoint HTTPS. Use webhooks para enviar leads a CRMs, plataformas de distribuição de leads, APIs personalizadas ou qualquer sistema que aceite requisições HTTP.

## O que é um webhook?

Um webhook é uma requisição HTTP automática que envia dados de um sistema para outro no momento em que um evento acontece. No LanderLab, um webhook é disparado toda vez que um lead é coletado na sua landing page. Ele envia os dados do lead (campos do formulário, informações do visitante e quaisquer campos personalizados que você definir) diretamente para a URL que você especificar.

Isso significa que seus leads são entregues instantaneamente ao seu CRM, ao comprador de leads ou ao seu sistema de backend, sem nenhuma exportação manual nem middleware de terceiros.

A integração de webhook do LanderLab é compatível com os métodos **GET**, **POST** e **PUT**, com os tipos de corpo **JSON** e **Form (URL encoded)** e com cabeçalhos personalizados, além de oferecer controle total sobre quais campos são enviados e como eles são nomeados.

<Note>
  As integrações de webhook **não** são salvas globalmente. Cada webhook é configurado por landing page, então você precisará configurar um novo webhook para cada landing page da qual quiser enviar dados de leads.
</Note>

***

## Como adicionar um webhook

A configuração do webhook usa um assistente de 3 passos: configure a requisição, mapeie seus campos e revise o payload final antes de conectar.

### Passo 1: Configurar a requisição

<Steps>
  <Step title="Acesse sua landing page">
    Vá até **Landing Pages** e clique no **nome da landing page** à qual você quer adicionar o webhook.
  </Step>

  <Step title="Abra a aba de integrações">
    Clique em **Add Integration** para abrir o painel de integrações.
  </Step>

  <Step title="Selecione a integração de webhook">
    Na lista de integrações disponíveis, encontre **Webhook integration** (com a descrição "Send lead data to any HTTPS endpoint in real time") e clique nela. O assistente de configuração do webhook será aberto.
  </Step>

  <Step title="Preencha as configurações da requisição">
    Informe os seguintes dados:

    | Campo         | Descrição                                                                                                                                                                |
    | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Name**      | Um nome para identificar este webhook (ex.: "Enviar leads para o CRM" ou "Comprador de leads - Webhook").                                                                |
    | **URL**       | O endpoint HTTPS para onde os dados do lead devem ser enviados (ex.: `https://api.example.com/webhooks/leads`). Precisa ser uma URL HTTPS válida.                        |
    | **Method**    | O método HTTP da requisição. As opções são **GET**, **POST** ou **PUT**. A maioria das integrações usa POST.                                                             |
    | **Body type** | O formato do corpo da requisição. Escolha **JSON** (`application/json`) ou **Form (URL encoded)** (`application/x-www-form-urlencoded`). A maioria das APIs espera JSON. |

    <Note>
      A configuração **Body type** só se aplica a requisições POST e PUT. Requisições GET enviam os dados como parâmetros de consulta (query parameters) na URL.
    </Note>
  </Step>

  <Step title="Adicione cabeçalhos (opcional)">
    Se o seu endpoint exigir cabeçalhos HTTP personalizados (como uma chave de API ou um token de autorização), clique em **+ Add header** e informe a **Key** (chave) e o **Value** (valor) de cada cabeçalho. Exemplos comuns:

    | Key             | Value                 |
    | :-------------- | :-------------------- |
    | `Authorization` | `Bearer your-api-key` |
    | `X-API-Key`     | `your-api-key`        |

    Você pode adicionar vários cabeçalhos clicando em **+ Add header** novamente.
  </Step>

  <Step title="Clique em Continue">
    Clique em **Continue** para avançar para o passo de mapeamento de campos.
  </Step>
</Steps>

***

### Passo 2: Mapear seus campos

Neste passo, você escolhe quais campos de dados incluir na requisição do webhook e como eles devem ser nomeados ao serem enviados para o seu endpoint. O LanderLab oferece duas formas de montar o payload: o modo **Fields**, com um mapeador visual simples, ou o modo **JSON**, para ter controle total sobre o corpo da requisição.

Na parte superior da tela, você verá um seletor entre **Fields** e **JSON**. Escolha a opção que melhor atende ao seu caso de uso.

#### Opção A: modo Fields (recomendado para a maioria dos usuários)

O modo Fields oferece uma interface visual na qual você pode selecionar campos, renomear as chaves deles e adicionar valores personalizados sem escrever nenhum código.

<Steps>
  <Step title="Selecione e configure os campos">
    O LanderLab inclui automaticamente um conjunto de campos padrão do LanderLab, disponíveis em todas as landing pages. Cada campo tem uma caixa de seleção para incluí-lo ou excluí-lo e uma coluna **Sent As**, na qual você pode renomear a chave enviada na requisição. Os campos padrão do LanderLab são:

    | Campo do formulário        | Sent As (chave padrão)   | Descrição                                                 |
    | :------------------------- | :----------------------- | :-------------------------------------------------------- |
    | **LL Lander URL**          | `ll_lander_url`          | A URL completa da landing page em que o visitante estava. |
    | **LL Visitor IP**          | `ll_visitor_ip`          | O endereço IP do visitante.                               |
    | **LL Visitor User Agent**  | `ll_visitor_user_agent`  | As informações de navegador e dispositivo do visitante.   |
    | **LL Submission Time UTC** | `ll_submission_time_utc` | A data e a hora em que o lead foi enviado (em UTC).       |
    | **LL Variant ID**          | `ll_variant_id`          | O ID da variante do teste A/B exibida ao visitante.       |

    Use as caixas de seleção para ativar ou desativar qualquer campo. Você também pode editar o valor de **Sent As** para que ele corresponda aos nomes de campo que o seu endpoint espera.

    <Tip>
      Se a sua landing page tiver um **funil de quiz** ou um **formulário**, todos os campos de formulário que você adicionou (como nome, e-mail, telefone, endereço e quaisquer campos personalizados) aparecerão automaticamente nesta lista, junto com os campos padrão do LanderLab. Você pode ativá-los, desativá-los ou renomeá-los da mesma forma que os campos padrão.
    </Tip>
  </Step>

  <Step title="Adicione campos personalizados (opcional)">
    Na seção **Additional fields**, clique em **+ Add field** para incluir pares de chave-valor extras no payload do webhook. Isso é útil para enviar valores fixos, como um ID de campanha, uma tag de origem do lead ou um identificador de API de que o seu endpoint precisa, mas que não é coletado pelo formulário.
  </Step>

  <Step title="Clique em Continue">
    Clique em **Continue** para avançar para o passo de revisão.
  </Step>
</Steps>

#### Opção B: modo JSON (avançado)

O modo JSON oferece um editor de código bruto no qual você pode escrever exatamente o corpo JSON que será enviado com o webhook. Esta é a opção avançada para quem precisa de controle total sobre a estrutura do payload, principalmente quando a API de destino exige objetos aninhados, arrays ou um formato específico que o modo Fields não consegue gerar.

<Steps>
  <Step title="Mude para o modo JSON">
    Clique no seletor **JSON** na parte superior da tela. Um editor de código aparecerá com um payload JSON padrão que inclui todos os campos disponíveis.
  </Step>

  <Step title="Edite o payload JSON">
    Escreva ou modifique o corpo JSON diretamente no editor. Para inserir dados dinâmicos do lead, use a sintaxe de modelo `{{Field Name}}`. Digite `/` para abrir o seletor de campos ou digite o nome da variável manualmente entre chaves duplas. Essas variáveis de modelo são substituídas pelos valores reais quando o webhook é disparado. Por exemplo, `{{LL Visitor IP}}` será substituído pelo endereço IP real do visitante que enviou o lead.

    **Payload plano básico (igual ao que o modo Fields gera):**

    ```json theme={null}
    {
      "ll_lander_url": "{{LL Lander URL}}",
      "ll_visitor_ip": "{{LL Visitor IP}}",
      "ll_visitor_user_agent": "{{LL Visitor User Agent}}",
      "ll_submission_time_utc": "{{LL Submission Time UTC}}",
      "ll_variant_id": "{{LL Variant ID}}"
    }
    ```

    **Payload aninhado com objetos agrupados:**

    Algumas APIs esperam que os dados estejam organizados dentro de objetos aninhados. O modo JSON permite montar qualquer estrutura de que você precise. Por exemplo:

    ```json theme={null}
    {
      "lead": {
        "first_name": "{{First Name}}",
        "last_name": "{{Last Name}}",
        "email": "{{Email}}",
        "phone": "{{Phone}}"
      },
      "tracking": {
        "source_url": "{{LL Lander URL}}",
        "ip_address": "{{LL Visitor IP}}",
        "user_agent": "{{LL Visitor User Agent}}",
        "submitted_at": "{{LL Submission Time UTC}}"
      },
      "campaign": {
        "variant_id": "{{LL Variant ID}}",
        "source": "landerlab"
      }
    }
    ```

    **Payload com valores fixos e dados mistos:**

    Você pode combinar variáveis de modelo dinâmicas com valores fixos (hardcoded) no mesmo payload:

    ```json theme={null}
    {
      "api_key": "your-api-key-here",
      "lead_source": "landing_page",
      "contact": {
        "name": "{{Full Name}}",
        "email": "{{Email}}",
        "phone": "{{Phone}}",
        "zip": "{{Zip Code}}"
      },
      "meta": {
        "page_url": "{{LL Lander URL}}",
        "ip": "{{LL Visitor IP}}",
        "variant": "{{LL Variant ID}}"
      }
    }
    ```

    <Note>
      Os nomes de campo dentro de `{{ }}` precisam corresponder exatamente aos nomes de campo disponíveis na sua landing page. Os campos padrão do LanderLab usam nomes como `LL Lander URL`, `LL Visitor IP` etc. Os campos de formulário e de quiz usam os nomes que você deu a eles ao montar o formulário (ex.: `First Name`, `Email`, `Phone`).
    </Note>
  </Step>

  <Step title="Clique em Continue">
    Clique em **Continue** para avançar para o passo de revisão.
  </Step>
</Steps>

***

### Passo 3: Revisar e conectar

<Steps>
  <Step title="Revise seu webhook">
    O último passo mostra uma prévia completa da requisição que será enviada toda vez que um lead for coletado. Você verá:

    * O **método HTTP** e a **URL** (ex.: `POST https://api.example.com/webhooks/leads`)
    * O **corpo** (body), com todos os campos mapeados exibidos como variáveis de modelo (ex.: `{{LL Lander URL}}`, `{{LL Visitor IP}}`)

    Revise a requisição com atenção para garantir que o método, a URL e os nomes dos campos correspondam ao que o seu endpoint espera.

    <Tip>
      Clique no botão **cURL** no canto superior direito da prévia para copiar a requisição como um comando cURL. Você pode usá-lo para testar o webhook manualmente no terminal antes de conectá-lo.
    </Tip>
  </Step>

  <Step title="Clique em Connect webhook">
    Se estiver tudo certo, clique no botão **Connect webhook** para salvar e ativar a integração. Se precisar alterar algo, clique em **Back** para voltar aos passos anteriores.
  </Step>
</Steps>

***

## Casos de uso comuns

Os webhooks são flexíveis e podem ser usados para enviar dados de leads para praticamente qualquer sistema. Veja alguns exemplos comuns:

* **Sistemas de CRM** - Envie leads diretamente para o Salesforce, o HubSpot, o GoHighLevel ou qualquer CRM que aceite webhooks de entrada ou tenha um endpoint de API.
* **Plataformas de distribuição de leads** - Envie leads em tempo real para compradores ou ping trees, para leilão (bidding) e distribuição de leads.
* **Ferramentas de e-mail marketing** - Adicione novos leads às suas listas de e-mail em plataformas como Mailchimp, ActiveCampaign ou Klaviyo.
* **Backends personalizados** - Envie dados para a sua própria API ou sistema de backend para processamento, pontuação ou roteamento.
* **Zapier ou Make** - Use uma URL de webhook do Zapier ou do Make para acionar workflows automatizados a partir dos leads das suas landing pages.

***

## Dicas para configurar webhooks

* **Use sempre HTTPS** - O LanderLab exige uma URL HTTPS para os endpoints de webhook. URLs HTTP não são aceitas.
* **Faça os nomes dos campos corresponderem** - Use a coluna **Sent As** no Passo 2 para renomear os campos de acordo com o que o sistema de destino espera. Por exemplo, se o seu CRM espera `email_address` em vez de `email`, renomeie o campo no mapeador de campos.
* **Teste antes de colocar no ar** - Use o botão **cURL** no passo de revisão para copiar e testar a requisição manualmente. Você também pode usar ferramentas como o [webhook.site](https://webhook.site) para inspecionar as requisições recebidas e verificar o formato do payload.
* **Adicione cabeçalhos de autenticação** - Se o seu endpoint exigir uma chave de API ou um token, adicione-o na seção de cabeçalhos (headers) durante o Passo 1. Não inclua credenciais de autenticação na URL.
