Salesforce is the most widely deployed enterprise CRM — which means Salesforce attribution is the question that marketing operations teams at larger companies ask when they want to know which campaigns are driving pipeline and revenue. If you use Salesforce as your CRM and want to understand how attribution data gets into Salesforce, what Salesforce can report on natively, and where the gaps are, this post covers it.
How Lead Source Gets Into Salesforce
Salesforce has a built-in Lead Source field on both the Lead and Contact objects. This field records where the record came from — Organic Search, Web, Paid Search, Social, Email, Trade Show, Referral, or whatever values your organization has configured in the picklist.
Lead Source is a picklist that someone or something has to populate. It doesn’t auto-fill from browsing behavior the way a marketing automation tool’s attribution might. The three main ways it gets populated:
Via Web-to-Lead Forms
Salesforce’s Web-to-Lead feature generates an HTML form that submits directly to Salesforce. When a visitor fills out the form, Salesforce creates a Lead record. You can embed a hidden field in the Web-to-Lead form with a fixed Lead Source value (e.g., “Web”) or pass a dynamic value from the URL.
If you embed UTM parameters as hidden fields in a Web-to-Lead form — capturing utm_source, utm_medium, utm_campaign from the visitor’s URL — and map those to custom Salesforce fields, you have channel-level attribution in the Lead record. Without this mapping, every Web-to-Lead submission records as “Web” regardless of whether the visitor came from Google Ads, organic search, or an email campaign.
Via Marketing Automation (Pardot / Account Engagement, Marketo, HubSpot)
Most Salesforce-connected organizations use a marketing automation platform that handles more sophisticated tracking and syncs to Salesforce:
- Salesforce Marketing Cloud Account Engagement (formerly Pardot) — Salesforce’s own marketing automation platform, built for Salesforce integration. Pardot tracks visitor sessions, reads UTM parameters, and syncs prospect (contact) records to Salesforce with source data. Pardot’s campaign influence model records which campaigns a contact interacted with, and these can be attributed against pipeline and closed revenue in Salesforce’s Campaign Influence reporting.
- HubSpot — The HubSpot-Salesforce integration syncs HubSpot contacts to Salesforce as Leads or Contacts. HubSpot’s Original Source property can be mapped to Salesforce’s Lead Source field, carrying the attribution across. The quality of the attribution in Salesforce depends on the quality of HubSpot’s attribution (discussed in the HubSpot attribution post).
- Marketo — Marketo’s Salesforce integration syncs leads and supports campaign attribution through Marketo’s program membership and Salesforce’s Campaign Member object. Marketo’s Revenue Cycle Analytics layer provides multi-touch attribution modeling that connects marketing activity to revenue in Salesforce.
Via Manual Entry or Data Import
For leads generated offline (trade shows, referrals, direct outreach), Lead Source is typically entered manually by a sales rep or set during a bulk import. Manual entry is only as accurate as the process that enforces it — without a required field or a validation rule that prevents blank Lead Source, it often gets left empty or set to a generic value.
Campaign Influence: Multi-Touch Attribution in Salesforce
The built-in Lead Source field is single-touch — it records one source per record. For multi-touch attribution (crediting multiple campaigns in the path to a closed deal), Salesforce uses the Campaign Influence object.
Campaign Influence records the relationship between a Contact, a Campaign they were a member of, and the Opportunity associated with that Contact. It allows you to report on how many opportunities were influenced by a specific campaign and to apply attribution models (first touch, last touch, even distribution) across the campaign members.
Campaign Influence requires:
- Contacts added as Campaign Members (either via Salesforce campaigns connected to a marketing automation platform, or manually)
- The Contact associated with an Opportunity (via the Contact Role object)
- The “Influence Auto-Association” setting enabled in Salesforce (or a marketing automation platform that writes Campaign Influence records directly)
When set up correctly, Campaign Influence lets you report in Salesforce on which campaigns generated pipeline, how much pipeline each campaign touched, and which campaigns were present in the path to won deals. This is the multi-touch attribution picture in Salesforce — connecting marketing spend to sales outcomes.
Salesforce Attribution With WordPress
For businesses that use WordPress for their website and Salesforce as their CRM, the attribution connection depends on how WordPress forms connect to Salesforce:
Web-to-Lead Forms Embedded in WordPress
Embedding Salesforce’s Web-to-Lead HTML in a WordPress Custom HTML block is the simplest integration. For attribution: add hidden fields for utm_source, utm_medium, utm_campaign (mapped to custom Salesforce Lead fields), and use JavaScript to populate them from the URL at page load. Each submission arrives in Salesforce with the UTM data from the visitor’s session.
WordPress Forms Connected via Zapier or a Direct Integration
Gravity Forms, WPForms, and Elementor Forms all have Salesforce integrations (native or via Zapier). As with HubSpot, the attribution gap appears here: if UTM fields are not added to the WordPress form and mapped through the integration to Salesforce Lead fields, the Lead Source in Salesforce reflects the default or generic value, not the actual marketing channel.
The fix is the same: add hidden UTM fields to WordPress forms, capture UTM parameters from the visitor’s session, and map those fields explicitly to Salesforce Lead fields through your integration or Zapier action.
Pardot Connected to WordPress
If your organization uses Pardot (Salesforce Marketing Cloud Account Engagement), Pardot has a WordPress plugin that adds the Pardot tracking code to all pages. Pardot handles UTM reading, session tracking, and visitor identification automatically — and syncs attribution data to Salesforce through the native integration. This is the cleanest setup for Salesforce attribution from WordPress when Pardot is already in the stack.
First-Party Attribution for WordPress + Salesforce
For organizations that don’t use Pardot and want more robust attribution than UTM hidden fields provide, first-party attribution tools capture lead source data at the WordPress level and write it to Salesforce through the form-to-CRM integration.
Tools like Sales Provenance handle UTM capture, first-touch persistence across sessions, and automatic population of hidden form fields — so that when a WordPress visitor converts via a contact form, their original lead source (even from a previous session) is included in the Salesforce Lead record. This is more reliable than session-level UTM capture because it handles the common case where the converting session was not the session that originally carried the UTM parameters.
Salesforce Reporting on Attribution Data
Once Lead Source and Campaign Influence data is populated correctly in Salesforce, reporting options include:
- Leads by Lead Source (standard report): how many leads each channel generated in a period. The most basic attribution report.
- Opportunities by Lead Source: how much pipeline and revenue each channel produced.
- Campaign Influence reports: which campaigns touched opportunities, how much pipeline they influenced, and which attribution model you’re applying. Requires Campaign Influence to be configured.
- Custom reports on UTM fields: if you’ve created custom Lead fields for UTM data (utm_source, utm_medium, utm_campaign), build custom reports that segment leads and opportunities by those fields for more granular channel analysis.
The limitation of all Salesforce attribution reporting: it’s only as good as the data that goes in. A Salesforce instance where Lead Source is blank on 40% of records, or where UTM fields are inconsistently populated, produces attribution reports that can’t be trusted. Accurate attribution in Salesforce is primarily a data entry and integration quality problem, not a reporting problem.
If you want help setting up WordPress-to-Salesforce attribution that accurately captures lead source for every form submission, Sales Provenance is built for this integration.