> ## 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.

# Configura la integración de webhook

> Aprende a configurar una integración de webhook en LanderLab para enviar los datos de los leads en tiempo real a cualquier endpoint HTTPS, incluidos CRMs, compradores de leads y APIs personalizadas.

> Conecta un webhook a tus landing pages en LanderLab para enviar los datos de los leads a cualquier endpoint HTTPS en tiempo real. Usa webhooks para enviar leads a CRMs, plataformas de distribución de leads, APIs personalizadas o cualquier sistema que acepte peticiones HTTP.

## Qué es un webhook

Un webhook es una petición HTTP automatizada que envía datos de un sistema a otro en el momento en que ocurre un evento. En LanderLab, un webhook se dispara cada vez que se recoge un lead en tu landing page. Envía los datos del lead (campos del formulario, información del visitante y cualquier campo personalizado que definas) directamente a la URL que indiques.

Así tus leads llegan al instante a tu CRM, a tu comprador de leads o a tu sistema backend, sin exportaciones manuales ni herramientas intermedias de terceros.

La integración de webhook de LanderLab admite los métodos **GET**, **POST** y **PUT**, los tipos de cuerpo **JSON** y **Form (URL encoded)**, cabeceras personalizadas y control total sobre qué campos se envían y cómo se llaman.

<Note>
  Las integraciones de webhook **no** se guardan de forma global. Cada webhook se configura por landing page, así que tendrás que crear un webhook nuevo en cada landing page desde la que quieras enviar datos de leads.
</Note>

***

## Cómo añadir un webhook

La configuración del webhook se hace con un asistente de 3 pasos: configurar la petición, mapear los campos y revisar la carga final antes de conectar.

### Paso 1: configura la petición

<Steps>
  <Step title="Ve a tu landing page">
    Ve a **Landing Pages** y haz clic en el **nombre de la landing page** en la que quieres añadir el webhook.
  </Step>

  <Step title="Abre la pestaña de integraciones">
    Haz clic en **Add Integration** para abrir el panel de integraciones.
  </Step>

  <Step title="Selecciona Webhook integration">
    En la lista de integraciones disponibles, busca **Webhook integration** (con la etiqueta "Send lead data to any HTTPS endpoint in real time") y haz clic en ella. Se abrirá el asistente de configuración del webhook.
  </Step>

  <Step title="Rellena los ajustes de la petición">
    Introduce estos datos:

    | Campo         | Descripción                                                                                                                                                                    |
    | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Name**      | Una etiqueta para identificar este webhook (por ejemplo, "Enviar leads al CRM" o "Comprador de leads webhook").                                                                |
    | **URL**       | El endpoint HTTPS al que se deben enviar los datos del lead (por ejemplo, `https://api.example.com/webhooks/leads`). Tiene que ser una URL HTTPS válida.                       |
    | **Method**    | El método HTTP de la petición. Las opciones son **GET**, **POST** o **PUT**. La mayoría de las integraciones usan POST.                                                        |
    | **Body type** | El formato del cuerpo de la petición. Elige **JSON** (`application/json`) o **Form (URL encoded)** (`application/x-www-form-urlencoded`). La mayoría de las APIs esperan JSON. |

    <Note>
      El ajuste **Body type** solo se aplica a las peticiones POST y PUT. Las peticiones GET envían los datos como parámetros de consulta en la URL.
    </Note>
  </Step>

  <Step title="Añade cabeceras (opcional)">
    Si tu endpoint necesita cabeceras HTTP personalizadas (como una clave de API o un token de autorización), haz clic en **+ Add header** e introduce la **Key** y el **Value** de cada cabecera. Algunos ejemplos habituales:

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

    Puedes añadir varias cabeceras haciendo clic de nuevo en **+ Add header**.
  </Step>

  <Step title="Haz clic en Continue">
    Haz clic en **Continue** para pasar al mapeo de campos.
  </Step>
</Steps>

***

### Paso 2: mapea tus campos

En este paso eliges qué campos de datos incluir en la petición del webhook y con qué nombre deben enviarse a tu endpoint. LanderLab te ofrece dos formas de crear la carga: el modo **Fields**, con un mapeador visual sencillo, o el modo **JSON**, con control total sobre el cuerpo de la petición.

En la parte superior de la pantalla verás un selector entre **Fields** y **JSON**. Elige el que mejor encaje con tu caso.

#### Opción A: modo Fields (recomendado para la mayoría)

El modo Fields ofrece una interfaz visual en la que puedes seleccionar campos, cambiar el nombre de sus claves y añadir valores personalizados sin escribir código.

<Steps>
  <Step title="Selecciona y configura los campos">
    LanderLab incluye automáticamente un conjunto de campos predeterminados de LanderLab disponibles en todas las landing pages. Cada campo tiene una casilla para incluirlo o excluirlo y una columna **Sent As** en la que puedes cambiar el nombre de la clave que se envía en la petición. Los campos predeterminados de LanderLab son:

    | Campo                      | Sent As (clave predeterminada) | Descripción                                                       |
    | :------------------------- | :----------------------------- | :---------------------------------------------------------------- |
    | **LL Lander URL**          | `ll_lander_url`                | La URL completa de la landing page en la que estaba el visitante. |
    | **LL Visitor IP**          | `ll_visitor_ip`                | La dirección IP del visitante.                                    |
    | **LL Visitor User Agent**  | `ll_visitor_user_agent`        | La información del navegador y del dispositivo del visitante.     |
    | **LL Submission Time UTC** | `ll_submission_time_utc`       | La fecha y hora en que se envió el lead (en UTC).                 |
    | **LL Variant ID**          | `ll_variant_id`                | El ID de la variante del test A/B que vio el visitante.           |

    Usa las casillas para activar o desactivar cualquier campo. También puedes editar el valor de **Sent As** para que coincida con los nombres de campo que espera tu endpoint.

    <Tip>
      Si tu landing page incluye un **embudo de quiz** o un **formulario**, todos los campos que hayas añadido (como nombre, email, teléfono, dirección y cualquier campo personalizado) aparecerán automáticamente en esta lista junto a los campos predeterminados de LanderLab. Puedes activarlos, desactivarlos o cambiarles el nombre igual que a los predeterminados.
    </Tip>
  </Step>

  <Step title="Añade campos personalizados (opcional)">
    En la sección **Additional fields**, haz clic en **+ Add field** para incluir pares clave-valor adicionales en la carga del webhook. Es útil para enviar valores fijos, como un ID de campaña, una etiqueta de origen del lead o un identificador de API que necesita tu endpoint pero que no se recoge en el formulario.
  </Step>

  <Step title="Haz clic en Continue">
    Haz clic en **Continue** para pasar a la revisión.
  </Step>
</Steps>

#### Opción B: modo JSON (avanzado)

El modo JSON te ofrece un editor de código en el que puedes escribir exactamente el cuerpo JSON que se enviará con el webhook. Es la opción avanzada para quienes necesitan control total sobre la estructura de la carga, sobre todo cuando la API receptora requiere objetos anidados, arrays o un formato específico que el modo Fields no puede generar.

<Steps>
  <Step title="Cambia al modo JSON">
    Haz clic en el selector **JSON** de la parte superior de la pantalla. Aparecerá un editor de código con una carga JSON predeterminada que incluye todos los campos disponibles.
  </Step>

  <Step title="Edita la carga JSON">
    Escribe o modifica el cuerpo JSON directamente en el editor. Para insertar datos dinámicos del lead, usa la sintaxis de plantilla `{{Field Name}}`. Escribe `/` para abrir el selector de campos o escribe el nombre de la variable a mano entre dobles llaves. Estas variables de plantilla se sustituyen por los valores reales cuando se dispara el webhook. Por ejemplo, `{{LL Visitor IP}}` se sustituirá por la dirección IP real del visitante que envió el lead.

    **Carga plana básica (igual que la que genera el modo Fields):**

    ```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}}"
    }
    ```

    **Carga anidada con objetos agrupados:**

    Algunas APIs esperan los datos organizados en objetos anidados. El modo JSON te permite crear la estructura que necesites. Por ejemplo:

    ```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"
      }
    }
    ```

    **Carga con valores fijos y datos mixtos:**

    Puedes combinar variables de plantilla dinámicas con valores fijos en la misma carga:

    ```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>
      Los nombres de campo dentro de `{{ }}` tienen que coincidir exactamente con los campos disponibles en tu landing page. Los campos predeterminados de LanderLab usan nombres como `LL Lander URL`, `LL Visitor IP`, etc. Los campos de formularios y quizzes usan los nombres que les diste al crear el formulario (por ejemplo, `First Name`, `Email`, `Phone`).
    </Note>
  </Step>

  <Step title="Haz clic en Continue">
    Haz clic en **Continue** para pasar a la revisión.
  </Step>
</Steps>

***

### Paso 3: revisa y conecta

<Steps>
  <Step title="Revisa tu webhook">
    El último paso muestra una vista previa completa de la petición que se enviará cada vez que se recoja un lead. Verás:

    * El **método HTTP** y la **URL** (por ejemplo, `POST https://api.example.com/webhooks/leads`)
    * El **cuerpo** con todos los campos mapeados como variables de plantilla (por ejemplo, `{{LL Lander URL}}`, `{{LL Visitor IP}}`)

    Revisa bien la petición para asegurarte de que el método, la URL y los nombres de los campos coinciden con lo que espera tu endpoint.

    <Tip>
      Haz clic en el botón **cURL** de la esquina superior derecha de la vista previa para copiar la petición como un comando cURL. Puedes usarlo para probar el webhook a mano en tu terminal antes de conectarlo.
    </Tip>
  </Step>

  <Step title="Haz clic en Connect webhook">
    Si todo está bien, haz clic en el botón **Connect webhook** para guardar y activar la integración. Si necesitas cambiar algo, haz clic en **Back** para volver a los pasos anteriores.
  </Step>
</Steps>

***

## Casos de uso habituales

Los webhooks son flexibles y sirven para enviar datos de leads a casi cualquier sistema. Estos son algunos ejemplos habituales:

* **Sistemas CRM**: envía los leads directamente a Salesforce, HubSpot, GoHighLevel o cualquier CRM que acepte webhooks entrantes o tenga un endpoint de API.
* **Plataformas de distribución de leads**: envía leads a compradores o a ping trees en tiempo real para pujas y distribución de leads.
* **Herramientas de email marketing**: añade los leads nuevos a tus listas en plataformas como Mailchimp, ActiveCampaign o Klaviyo.
* **Backends personalizados**: envía los datos a tu propia API o sistema backend para procesarlos, puntuarlos o enrutarlos.
* **Zapier o Make**: usa una URL de webhook de Zapier o Make para disparar workflows automatizados con los leads de tu landing page.

***

## Consejos para configurar webhooks

* **Usa siempre HTTPS**: LanderLab exige una URL HTTPS para los endpoints de los webhooks. Las URLs HTTP no se admiten.
* **Haz coincidir los nombres de los campos**: usa la columna **Sent As** del paso 2 para cambiar el nombre de los campos y que coincidan con lo que espera tu sistema receptor. Por ejemplo, si tu CRM espera `email_address` en lugar de `email`, cámbialo en el mapeador de campos.
* **Prueba antes de ponerlo en vivo**: usa el botón **cURL** del paso de revisión para copiar y probar la petición a mano. También puedes usar herramientas como [webhook.site](https://webhook.site) para inspeccionar las peticiones entrantes y verificar el formato de la carga.
* **Añade cabeceras de autenticación**: si tu endpoint necesita una clave de API o un token, añádelo en la sección de cabeceras del paso 1. No incluyas credenciales de autenticación en la URL.
