Skip to main content

How to Send Leads to LeadTruffle Using Custom Lead Sources (Webhooks)

Send leads from Zapier, Make, CRMs, or other tools into LeadTruffle using a custom webhook lead source.

Written by Bryan Shankman
Updated today

Overview

Custom Lead Sources allow you to send leads from almost any external system into LeadTruffle using a webhook.

This is ideal for advanced integrations such as:

  • Zapier

  • Make

  • N8n

  • Custom web forms

  • Lead aggregators

  • CRMs or internal tools

Instead of forwarding leads via email, you can POST lead data directly to LeadTruffle, which will create and optionally qualify the lead automatically.

If you want a simpler option, you can also forward leads using the email gateway.

LeadTruffle is designed to capture and qualify leads through automated SMS conversations once they enter the platform.


Step 1: Open Custom Lead Sources

  1. Log into app.leadtruffle.com

  2. Navigate to Custom Lead Sources

  3. Click Add Source

⚠️ If you do not see Custom Lead Sources, contact support and we can enable it for your account.


Step 2: Create the Source

Fill out the basic setup:

  1. Name: Choose something unique

    1. Example: Web Forms

  2. Source Template:

    1. Select Custom

  3. Click Continue


Step 3: Copy Your Webhook URL

On the next screen you will see two webhook endpoints:

  • Test Endpoint

  • Live Endpoint

Recommended approach

Use the Live Endpoint immediately so you don’t need to update integrations later.

Click Copy URL.

This webhook URL is where external systems will send lead data.


Step 4: Send a Test Lead

Before mapping fields, you must send one test lead so LeadTruffle can detect the incoming data structure.

You can do this in several ways:

Option 1 — Test From Your Integration Tool

Many platforms provide a test feature:

  • Zapier → “Test Trigger”

  • Make → “Run once”

  • CRMs or lead providers may also allow sending test data

Option 2 — Send a Test via Terminal (cURL)

You can manually send a fake lead using a cURL POST request.

Replace the webhook URL with the Live Endpoint from your LeadTruffle setup:

curl -X POST "PASTE_YOUR_LEADTRUFFLE_WEBHOOK_URL_HERE" \
-H "Content-Type: application/json" \
-d '{
"firstName": "John",
"lastName": "Smith",
"phone": "5125550123",
"email": "[email protected]",
"message": "I need a quote for pressure washing my driveway and patio.",
"service": "Pressure Washing",
"source": "Website Contact Form",
"smsOptInUrl": "https://example.com/consent/john-smith-optin"
}'

What This Test Does

This command will:

  • Send a sample lead to your LeadTruffle webhook

  • Allow LeadTruffle to capture the payload

  • Enable you to map incoming fields during setup

Fields Included in the Example

Field

Description

firstName

Lead’s first name

lastName

Lead’s last name

phone

Lead phone number

email

Lead email

message

Project description

service

Example custom field

source

Where the lead originated

smsOptInUrl

URL showing SMS consent proof

After running this command, return to the Custom Lead Source setup screen and confirm that Payloads Captured = 1.

Then click Continue.


Step 5: Map Lead Fields

LeadTruffle now displays the fields captured from the webhook.

Click Auto Map Fields to automatically match common fields.

Typical required mappings include:

  • First Name

  • Last Name

  • Email

  • Phone Number

Example mapping:

Incoming Field

LeadTruffle Field

firstName

First Name

lastName

Last Name

email

Email

phone

Phone

message

Project Description


Step 6: Configure Optional Fields

Optional fields allow you to capture additional lead information.

For example, SMS opt-in proof is recommended if you plan to send text messages.

The format used when referencing webhook fields is:

$.fieldName

Example:

$.smsOptInUrl


Step 7: Create Custom Fields (Optional)

If your webhook sends fields that don’t exist in LeadTruffle, you can create new ones.

Example: Service Type

  1. Scroll to Additional Data

  2. Click Add Field

  3. Name the field service

  4. Map it using:

$.service

If configured correctly, you will see a green checkmark confirming the field exists in the webhook payload.


Step 8: Run a Dry Test

Before going live, LeadTruffle performs a dry run to preview how the lead will be created.

Example output might show:

  • Name: John Smith

  • Phone: 512-555-0123

  • Project Description: Pressure washing quote

If a required field appears empty, go back and adjust your mappings.


Step 9: Choose What Happens When Leads Arrive

LeadTruffle provides four options for handling incoming webhook leads.

1. Create Lead Only

Creates the lead in LeadTruffle without sending messages.

Useful if your team wants to manually follow up.

2. Create + Qualify Over Email

Creates the lead and sends an automated email.

⚠️ Requires an Email Gateway to be configured.

You can customize the subject line using variables such as:

{{firstName}} your pressure washing request

3. Create + Qualify Over SMS

  • Creates the lead and starts an AI SMS conversation.

4. Create + Qualify Over Email AND SMS (Recommended)

This option:

  • Creates the lead

  • Sends an email

  • Starts an SMS conversation

This helps maximize the chance of reaching the lead quickly.


Step 10: Enable SMS Compliance

Before activating the webhook:

  • Confirm that SMS opt-in requirements are met

  • Acknowledge compliance settings

Then enable the Live Endpoint.

Once activated, any system sending data to your webhook will automatically create leads in LeadTruffle.


Recap

To send leads into LeadTruffle using webhooks:

  1. Create a Custom Lead Source

  2. Copy your Webhook Endpoint

  3. Send a Test Lead

  4. Map Required Fields

  5. Add optional or custom fields

  6. Run a Dry Test

  7. Choose how leads should be handled

  8. Activate the Live Endpoint

Once set up, your external tools can automatically send leads into LeadTruffle for capture and qualification.


Need help? Contact us at [email protected] or message the team via the Intercom chat on this article or in-app.

Did this answer your question?