One workflow for everything
A single account-wide webhook into HighLevel with a branch on the calculator field.
Calculators
58 US mortgage and loan calculators, each one a lead form with the borrower's numbers attached.
All calculatorsPre-qual funnel
Four stages, from the first payment question to the lead in your CRM.
Pre-qual funnelProduct
Capture, brand, embed, route. Built for loan officers who run their own sites and HighLevel funnels.
FeaturesSolutions
Independent LOs, brokerages, branch leaders, HighLevel users and bilingual teams.
SolutionsResources
Guides, definitions and straight answers for licensed professionals.
ResourcesLead webhooks
One POST per lead, with the borrower's numbers and the campaign that brought them, sent wherever you work leads.
Free plan, no card. Paid plans include a 14-day trial.
POST https://your-endpoint.example/hook
Content-Type: application/json
{ "event": "calculator.lead",
"calculator": "fha-loan",
"contact": { "email": "…", "phone": "…" },
"submission": { "inputs": { … }, "results": { … } },
"utm_source": "google" }A PrequalFunnel lead webhook sends an HTTP POST with a JSON body to a URL you choose each time a borrower submits a calculator's lead form. The body holds the contact, consent, every input and result, the calculator, a timestamp and campaign attribution. Webhooks are on the Producer and Brokerage plans.
01
It is an automatic message from PrequalFunnel to your system, sent the moment a borrower submits a lead form inside a calculator. Instead of you copying details out of an email alert, your CRM or automation tool receives a structured JSON record it can act on immediately. The lead webhook glossary entry covers the general idea; this page covers PrequalFunnel's version.
The order of operations is deliberate. First the lead is saved as a contact in your built-in CRM, de-duplicated by email and then phone. Then the webhook fires. If your endpoint is down, slow or misconfigured, the borrower's record and numbers are still there.
You set one account-wide webhook URL and can override it per calculator. Webhook URLs live on the server only; they are never included in the calculator configuration that loads in a visitor's browser.
Here is an example for an FHA calculator lead from a returning visitor who first arrived from a Google ad and came back from Facebook. Field names match what PrequalFunnel sends; the values are illustrative, and the keys inside inputs and results vary by calculator.
{
"event": "calculator_lead",
"calculator": "fha-loan",
"is_new_contact": true,
"contact": {
"name": "Maria Lopez",
"email": "maria.lopez@example.com",
"phone": "+15125550143",
"consent": true
},
"submission": {
"inputs": {
"home_price": 385000,
"down_payment_percent": 3.5,
"interest_rate": 6.5,
"loan_term_years": 30,
"property_tax_yearly": 6900,
"home_insurance_yearly": 1800,
"credit_score_range": "640-679"
},
"results": {
"base_loan_amount": 371525,
"upfront_mip": 6502,
"monthly_principal_interest": 2389,
"monthly_mip": 170,
"monthly_piti": 3134
}
},
"submitted_at": "2026-10-17T15:42:08Z",
"attribution": {
"first": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "fha_austin",
"gclid": "Cj0KCQjw-example",
"landing_page": "https://www.yourbrokerage.com/fha-loans/",
"referrer": "https://www.google.com/",
"at": "2026-10-15T21:10:33Z"
},
"last": {
"utm_source": "facebook",
"utm_medium": "paid_social",
"utm_campaign": "first_time_buyers",
"fbclid": "IwAR-example",
"landing_page": "https://www.yourbrokerage.com/first-time-buyers/",
"referrer": "https://m.facebook.com/",
"at": "2026-10-17T15:31:02Z"
}
},
"utm_source": "facebook",
"utm_medium": "paid_social",
"utm_campaign": "first_time_buyers",
"utm_term": "",
"utm_content": "carousel_v2",
"gclid": "",
"fbclid": "IwAR-example",
"msclkid": "",
"landing_page": "https://www.yourbrokerage.com/first-time-buyers/",
"referrer": "https://m.facebook.com/",
"first_touch_source": "google / cpc / fha_austin"
} Top-level keys are stable across calculators, so you can map them once. The flat attribution fields repeat the last touch for tools that can't read nested objects.
| Field | Contains | Typical use |
|---|---|---|
| event | The event name for a calculator lead | Filter in a shared endpoint |
| calculator | The calculator slug, e.g. fha-loan or dti | Route or tag by intent |
| is_new_contact | true for a first-time contact, false for a returning one | Different first message |
| contact | Name, email, phone and consent | Create or update the CRM contact |
| submission | Every input the borrower entered and every result they saw | Custom fields and talking points |
| submitted_at | ISO 8601 timestamp | Speed-to-lead timing |
| attribution | First and last touch objects | Full campaign history |
| utm_*, gclid, fbclid, msclkid | Flat campaign and click-ID fields | Ad reporting without parsing |
| landing_page, referrer, first_touch_source | Entry page, referring site, first-touch summary | Source reporting |
Most setups start with one URL and grow into per-calculator routing once lead volume justifies separate follow-up.
A single account-wide webhook into HighLevel with a branch on the calculator field.
Per-calculator webhooks send VA, FHA and refinance leads to separate workflows with their own scripts.
Point the webhook at Zapier or Make and fan out to a sheet, a team chat and your CRM.
A developer receives the POST, validates it and writes it into an in-house database or LOS-adjacent system.
The JSON contains a borrower's contact details, income, debts and consent. Use HTTPS endpoints only, limit who can see automation logs, and avoid sending the full payload to tools that don't need it, such as a public team channel. Ask your compliance team how long these records should be kept.
It takes a receiving URL, one paste and a test submission.
In HighLevel, Zapier, Make or your own server, create a webhook catcher and copy its URL.
Paste it as the account-wide webhook or on a specific calculator. Producer or Brokerage plan required.
Fill in the calculator's lead form yourself so the receiver can see the real field structure.
Map contact, inputs, results and utm fields in the receiving tool, then turn on the follow-up steps.
FAQ · 9 questions
Producer and Brokerage. The free Originator plan captures leads into the built-in CRM and emails you each one, but does not POST them to other systems. Paid plans have a 14-day free trial on monthly and yearly billing.
JSON, in the body of an HTTP POST. Nested objects hold the contact, submission and attribution, and flat fields repeat the key campaign values for tools that only read top-level keys.
No. The contact is saved in PrequalFunnel's CRM before the webhook is sent, so the borrower's details and numbers remain available even if your endpoint fails.
Yes. A per-calculator webhook overrides the account-wide URL for that calculator only. Others keep using the account-wide one.
No. Top-level keys are the same everywhere, but submission inputs and results reflect each calculator's fields. Send a test lead from each calculator you route separately and map from that sample.
No. Webhook URLs are stored server-side and never included in the public calculator configuration a browser loads.
Yes. The contact object carries the consent the borrower gave on the form, so your automation can check it before texting or calling.
A one-line summary of how the contact first found you, such as google / cpc / campaign name. It stays the same for a returning borrower, while the flat utm fields describe the latest visit.
Yes. Each new submission sends a webhook, with is_new_contact set to false, and the new calculation is added to the contact's history in your CRM.
PrequalFunnel
Give them the numbers they came for, and get the lead with those numbers attached.
Free forever on Originator. Upgrade when you want webhooks and your own brand. 14-day free trial on monthly and yearly. Cancel before it ends and you pay nothing.