Lead source in Salesforce.
Stop guessing in the Lead Source field. Capture the real source on every form on your site.
Works across Salesforce’s form ecosystem
Salesforce trusts you to populate Lead Source.
The Lead Source field is a picklist. The Web-to-Lead form generator produces HTML that maps form fields to Lead object properties. None of it captures source data automatically. Salesforce assumes you’ll wire that up. Most orgs don’t. The ones that do, do it differently every time. There is a tidier way to keep the Lead Source field clean.
The framework
- Standard Lead Source picklist
- Web-to-Lead form generator
- Custom fields for anything you need
- Lead conversion → Opportunity flow
- Reports on Lead Source breakdown
The data itself
- Which source actually drove the click
- Persisting UTMs across visitor navigation
- Normalising values across team data entry
- Pages they read before submitting
- Surviving Lead → Contact → Opportunity intact
Custom fields, Apex triggers, Flow rules. Pick three.
Salesforce has every hook you need to capture source, and gives you the whole job. Create the fields. Modify the Web-to-Lead HTML. Build the triggers. Carry the data through conversion. Maintain it as your org grows.
The manual way
- 01Create custom fields for
utm_source__c,utm_medium__c,utm_campaign__c,utm_content__c,utm_term__con the Lead object. Then again on Contact. Then again on Opportunity. - 02Modify every Web-to-Lead form’s generated HTML to include hidden fields mapped to those custom fields. Re-generate every time the form changes.
- 03Build a Flow or Apex trigger to populate the hidden fields from URL parameters before form submission. Test across Lightning & Classic, Experience Cloud, and embedded contexts.
- 04Configure field mapping for Lead conversion. Salesforce doesn’t carry custom fields across conversion automatically. Audit the mapping every release.
With Lead Source
- 01Script tag on the site where your Web-to-Lead forms are embedded. Captures source independently of Salesforce.
- 02Pardot landing pages and Experience Cloud forms are hosted outside your site, so a script cannot reach them. Paste one Lead Source webhook URL into the form’s completion action instead.
- 03Source recorded with the campaign name written out: “Google Ads · Local Services Sydney”. Available in your Lead Source dashboard alongside Salesforce’s native data.
- 04From there, Zapier writes the lead and its source into Salesforce, onto whatever Lead field you choose.
// Salesforce gives you the framework. The data is your job. We can be that job.
Two install paths. Pick the one that matches your forms.
Sign up to get both a script tag and a webhook URL. Use the script for Web-to-Lead forms embedded on your site. Use the webhook for Salesforce-hosted forms. MCAE/Pardot landing pages, Experience Cloud, or any form that submits server-side without a page you control.
<!-- illustrative. Paste your real snippet from app.leadsource.co --> <script async src="https://app.leadsource.co/ft.js" data-site="YOUR_SITE_KEY"></script>
One line in your site header. It captures every form on the page, including a Web-to-Lead form, without touching the form or the POST it sends to Salesforce.
# illustrative. Paste your real webhook URL from app.leadsource.co https://app.leadsource.co/api/capture/webhook/YOUR_SITE_KEY
For Pardot and Experience Cloud forms, add this as a completion action or external system callout. Close the loop by receiving every submission with its source attached.
Three steps. Done in five minutes.
Sign up. Get both your snippet and your webhook URL
Create your free Lead Source account. Your dashboard shows both: a script tag for sites you control, and a webhook URL for receiving submissions from hosted forms.
Install the path that matches your forms
For forms hosted outside your site, configure a completion action or external system callout pointing at your Lead Source webhook URL.
Submit a test through any Salesforce form
Fill in a real Web-to-Lead or Pardot form. Submit. Within a minute or two, the Lead appears in your Lead Source dashboard with the source, campaign, and full page journey. Alongside whatever Salesforce records in the standard Lead Source picklist.
Questions, answered.
Will Lead Source conflict with Web-to-Lead?
No. Lead Source observes the submission event but doesn't modify the form, intercept the POST to Salesforce, or change any field values. Web-to-Lead keeps doing exactly what it does today, including creating the Lead record with whatever Lead Source value the picklist provides. We capture source data in parallel, in Lead Source.
What about Pardot and MCAE forms?
Those are hosted on Pardot's own domain, so a script on your site cannot see them. Use the webhook path instead: a form completion action posts each submission to Lead Source with its source attached.
Can I get the source onto a Salesforce field?
Yes, through Zapier. Lead Source fires when a lead is captured, and Zapier's Salesforce action writes the fields you pick onto the Lead or Contact. You choose the field and map it once.
Does Lead Source write into Salesforce directly?
No. Lead Source records the lead and its source in its own dashboard, and Zapier or your own webhook carries it into Salesforce. Nothing in your Salesforce org is modified by us.
What happens on Lead-to-Contact conversion?
Nothing on our side. The record lives in Lead Source, so conversion, merges and field-level edits in Salesforce cannot affect it. If you have mapped the source onto a Salesforce field through Zapier, standard Salesforce conversion mapping applies.
Fix your Salesforce attribution. Free to start.
Lead Source runs alongside Salesforce's standard Lead Source field. No Apex, no custom fields wired up across three objects, no rep training. When your picklist shows “Web”, we show the actual source.
Start freeFree to start · no card