Lead webhook
Push leads in from any form, vendor, or Facebook Lead Ads. One required field.
Push leads into LeadBind from any system that can send an HTTP request. A form builder, a lead vendor, Facebook Lead Ads, or your own code.
Your endpoint
Get your personal URL from Connections, in the Menu under Lead sources. The Lead webhook row there shows it. It looks like:
https://leadbind.org/api/ingest/lead?token=YOUR_TOKEN
POST only. The token identifies your account and is the only credential, so treat the URL like a password. Anyone holding it can create leads in your book. If it leaks, ask support to rotate it.
You can also send the token as a header instead of a query parameter, which keeps it out of server logs:
x-leadbind-token: YOUR_TOKEN
The required field
A phone number or an email address. Send either one, or both. Everything else is optional.
A request with neither returns:
{ "error": "phone or email required" }
with HTTP 400.
A lead that arrives with an email and no phone is saved like any other, and you are notified. It cannot be dialed, so speed to lead cannot call it until it has a number.
Fields it understands
Field names are matched against the list below, so most systems work without remapping anything. Case does not matter. Use the spelling shown, because a name that is not on the list is kept as an extra field rather than read as that meaning.
| Meaning | Names accepted |
|---|---|
| Full name | name, full name, fullname, full_name, lead name, contact |
| First name | first name, first_name, firstname, first |
| Last name | last name, last_name, lastname, last |
| Phone (phone or email required) | phone, phone number, phone_number, mobile, cell, number |
| Email (phone or email required) | email, email address, email_address, e-mail |
| State | state, st |
| Age | age |
| Date of birth | dob, date of birth, birthday, birthdate |
| Beneficiary (insurance accounts) | beneficiary, bene |
| Lead source | source, lead source, lead_source, campaign |
| Vendor | vendor, lead vendor, lead_vendor |
| Lead date | lead date, lead_date, received on, date |
Send source. It is optional and it is the field you will wish you had, because it is the only way to tell which campaign is worth the money. See Leads.
If you send dob without age, the age is calculated for you.
The beneficiary is stored on the lead for insurance accounts. On any other kind of account it is kept as an extra field on the lead.
Anything else you send is kept
Unrecognized fields are not discarded. They are matched against your industry's own field list where they fit, and preserved as-is where they do not. So a roofer sending roof_age and an insurance agent sending coverage_amount both work without configuration.
Example
curl -X POST "https://leadbind.org/api/ingest/lead?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Maria Lopez",
"phone": "8325550134",
"email": "maria@example.com",
"source": "facebook-roofing-march",
"message": "Roof leaking after the storm"
}'
What happens next
- Deduplicated within your account, by phone first (matched on the last ten digits), then by email. The same person submitting twice updates one lead rather than creating two. This is what stops one person receiving two follow-up sequences. A name is never used to match, because two different people share names.
- Grouped into your Inbound Leads list.
- Speed to lead fires, if you have it on and it is inside your calling hours. The assistant calls immediately.
- Follow-up picks up anyone who did not answer.
Opt-out flags
If your form or vendor marks someone as do-not-call, send it and LeadBind will respect it. Recognized as truthy: dnc, do not call, do_not_call set to 1, true, yes, or y.
Important: Consent is your responsibility, not the webhook's. Pushing a purchased list through this endpoint is the same risk as importing one, and it will start dialing within seconds. Read Consent and opt-outs first.
Facebook Lead Ads
Point your Lead Ads webhook at your URL. Facebook's field names match the aliases above closely enough that most forms need no mapping.
Troubleshooting
400 phone or email required: no recognized phone or email field. Check the column names against the table above.
Lead arrives, no call: speed to lead is off, or it is outside your calling window.
Duplicates: different phone formatting will still dedupe, since matching is on the last ten digits. Two genuinely different numbers for one person are two leads; merge them in Leads.
Nothing arrives at all: test with the curl above. If that works, the problem is in the sending system.