Skip to main content

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.

Connect a webhook to your landing pages in LanderLab to send lead data to any HTTPS endpoint in real time. Use webhooks to push leads to CRMs, lead distribution platforms, custom APIs, or any system that accepts HTTP requests.

What is a Webhook?

A webhook is an automated HTTP request that sends data from one system to another the moment an event happens. In LanderLab, a webhook fires every time a lead is collected on your landing page. It sends the lead data (form fields, visitor information, and any custom fields you define) directly to the URL you specify. This means your leads are delivered to your CRM, lead buyer, or backend system instantly, without any manual export or third-party middleware. LanderLab’s webhook integration supports GET, POST, and PUT methods, JSON and Form (URL encoded) body types, custom headers, and full control over which fields are sent and how they are named.
Webhook integrations are not saved globally. Each webhook is configured per landing page, so you will need to set up a new webhook for each landing page where you want to send lead data.

How to Add a Webhook

The webhook setup uses a 3-step wizard: configure the request, map your fields, and review the final payload before connecting.

Step 1: Configure the Request

1

Go to your landing page

Navigate to Landing Pages and click the name of the landing page where you want to add the webhook.
2

Open the Integrations tab

Click Add Integration to open the integrations panel.
3

Select Webhook integration

From the list of available integrations, find Webhook integration (labeled as “Send lead data to any HTTPS endpoint in real time”) and click on it. The webhook configuration wizard will open.
4

Fill in the request settings

Enter the following details:
FieldDescription
NameA label to identify this webhook (e.g. “Send leads to CRM” or “Lead Buyer - Webhook”).
URLThe HTTPS endpoint where lead data should be sent (e.g. https://api.example.com/webhooks/leads). This must be a valid HTTPS URL.
MethodThe HTTP method for the request. Options are GET, POST, or PUT. Most integrations use POST.
Body typeThe format of the request body. Choose JSON (application/json) or Form (URL encoded) (application/x-www-form-urlencoded). Most APIs expect JSON.
The Body type setting only applies to POST and PUT requests. GET requests send data as URL query parameters.
5

Add headers (optional)

If your endpoint requires custom HTTP headers (such as an API key or authorization token), click + Add header and enter the Key and Value for each header. Common examples include:
KeyValue
AuthorizationBearer your-api-key
X-API-Keyyour-api-key
You can add multiple headers by clicking + Add header again.
6

Click Continue

Click Continue to move to the field mapping step.

Step 2: Map Your Fields

In this step, you choose which data fields to include in the webhook request and how they should be named when sent to your endpoint. LanderLab gives you two ways to build your payload: Fields mode for a simple visual mapper, or JSON mode for full control over the request body. At the top of the screen, you will see a toggle between Fields and JSON. Choose the one that fits your use case. The Fields mode provides a visual interface where you can select fields, rename their keys, and add custom values without writing any code.
1

Select and configure fields

LanderLab automatically includes a set of default LanderLab fields that are available on every landing page. Each field has a checkbox to include or exclude it, and a Sent As column where you can rename the key that gets sent in the request. The default LanderLab fields are:
Form FieldSent As (default key)Description
LL Lander URLll_lander_urlThe full URL of the landing page the visitor was on.
LL Visitor IPll_visitor_ipThe IP address of the visitor.
LL Visitor User Agentll_visitor_user_agentThe browser and device information of the visitor.
LL Submission Time UTCll_submission_time_utcThe date and time the lead was submitted (in UTC).
LL Variant IDll_variant_idThe A/B test variant ID the visitor was shown.
Use the checkboxes to enable or disable any field. You can also edit the Sent As value to match the field names your endpoint expects.
If your landing page includes a quiz funnel or form, all the form fields you have added (such as name, email, phone, address, and any custom inputs) will automatically appear in this field list alongside the default LanderLab fields. You can enable, disable, or rename them just like the default fields.
2

Add custom fields (optional)

Under the Additional fields section, click + Add field to include extra key-value pairs in the webhook payload. This is useful for sending static values like a campaign ID, lead source tag, or API identifier that your endpoint needs but is not collected from the form.
3

Click Continue

Click Continue to move to the review step.

Option B: JSON Mode (Advanced)

The JSON mode gives you a raw code editor where you can write the exact JSON body that will be sent with the webhook. This is the advanced option for users who need full control over the payload structure, especially when the receiving API requires nested objects, arrays, or a specific format that the Fields mode cannot produce.
1

Switch to JSON mode

Click the JSON toggle at the top of the screen. A code editor will appear with a default JSON payload that includes all available fields.
2

Edit the JSON payload

Write or modify the JSON body directly in the editor. To insert dynamic lead data, use the {{Field Name}} template syntax. Type / to open a field picker, or type the variable name manually inside double curly braces. These template variables are replaced with real values when the webhook fires. For example, {{LL Visitor IP}} will be replaced with the actual IP address of the visitor who submitted the lead.Basic flat payload (same as Fields mode produces):
{
  "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}}"
}
Nested payload with grouped objects:Some APIs expect data organized inside nested objects. JSON mode lets you build any structure you need. For example:
{
  "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 with static values and mixed data:You can combine dynamic template variables with hardcoded static values in the same payload:
{
  "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}}"
  }
}
The field names inside {{ }} must match exactly the field names available in your landing page. Default LanderLab fields use names like LL Lander URL, LL Visitor IP, etc. Form and quiz fields use the names you gave them when building the form (e.g. First Name, Email, Phone).
3

Click Continue

Click Continue to move to the review step.

Step 3: Review and Connect

1

Review your webhook

The final step shows a complete preview of the request that will be sent every time a lead is collected. You will see:
  • The HTTP method and URL (e.g. POST https://api.example.com/webhooks/leads)
  • The body with all mapped fields shown as template variables (e.g. {{LL Lander URL}}, {{LL Visitor IP}})
Review the request carefully to make sure the method, URL, and field names match what your endpoint expects.
Click the cURL button in the top right corner of the preview to copy the request as a cURL command. You can use this to test the webhook manually in your terminal before connecting it.
2

Click Connect webhook

If everything looks correct, click the Connect webhook button to save and activate the integration. If you need to change anything, click Back to return to the previous steps.

Common Use Cases

Webhooks are flexible and can be used to send lead data to almost any system. Here are some common examples:
  • CRM systems - Send leads directly to Salesforce, HubSpot, GoHighLevel, or any CRM that accepts incoming webhooks or has an API endpoint.
  • Lead distribution platforms - Push leads to buyers or ping trees in real time for lead bidding and distribution.
  • Email marketing tools - Add new leads to your email lists in platforms like Mailchimp, ActiveCampaign, or Klaviyo.
  • Custom backends - Send data to your own API or backend system for processing, scoring, or routing.
  • Zapier or Make - Use a webhook URL from Zapier or Make to trigger automated workflows from your landing page leads.

Tips for Setting Up Webhooks

  • Always use HTTPS - LanderLab requires an HTTPS URL for webhook endpoints. HTTP URLs are not supported.
  • Match your field names - Use the Sent As column in Step 2 to rename fields so they match what your receiving system expects. For example, if your CRM expects email_address instead of email, rename it in the field mapper.
  • Test before going live - Use the cURL button in the review step to copy and test the request manually. You can also use tools like webhook.site to inspect incoming requests and verify the payload format.
  • Add authentication headers - If your endpoint requires an API key or token, add it in the Headers section during Step 1. Do not include authentication credentials in the URL.