Step by step guide to integrating Fathom with Salesforce for seamless lead tracking

If you want to know which marketing efforts actually turn into Salesforce leads, you’re in the right place. Maybe you’re tired of “data-driven” dashboards that never match up, or you’re rolling your eyes at another overhyped integration. This guide is for folks who just want Fathom analytics talking to Salesforce, so you can see what’s working and skip the guesswork.

You don’t need to be a developer, but you should have admin access to both Fathom and Salesforce—and a willingness to poke around in settings. If you’re hoping to set this up in five minutes, fair warning: you’ll need a bit of patience. But once it’s done, you’ll spend less time fiddling and more time actually using your data.

Let’s get started.


Why bother integrating Fathom and Salesforce?

Before you wade in: is this worth it? If you’re using Fathom for privacy-focused web analytics and Salesforce as your CRM, integrating the two means:

  • You can see which pages or campaigns generate real leads, not just visits.
  • No more switching between tabs, squinting at spreadsheets, or playing the “where did this lead come from?” game.
  • Your marketing and sales don’t have to argue about which channel works—they’ll both see the same data.

But here’s what you won’t get: a magical, one-click integration that reads your mind. There’s some setup, and you might need to tweak things as you go. If you want deep, multi-touch attribution or fully custom dashboards, you’ll need extra tools. For most teams, though, this guide gets you 90% of the way.


Step 1: Map Out What You Actually Want to Track

Don’t skip this, even if you’re itching to dive in.

  • What’s a “lead”? In Salesforce, a lead is usually a new contact who filled out a form or took some other action.
  • What triggers the lead? Is it a contact form, a demo request, a newsletter signup? Be specific.
  • What Fathom data matters? Most folks want source, medium, campaign (UTM parameters), landing page, and maybe first/last visit.

Pro tip: Write these down. If you’re working with anyone else—even future you—this will save a lot of “what were we trying to do again?” moments.


Step 2: Prep Your Fathom Account

Log in and check your Fathom settings:

  • Events & Goals: Make sure you’ve set up events for your lead actions. For example, if your lead form redirects to a “Thank you” page, track that pageview as a goal. If you use AJAX forms, you may need to trigger a custom event in Fathom. (Docs here)
  • UTM Tagging: Make sure your marketing links use UTM parameters (source, medium, and campaign) so Fathom can capture them.
  • API Access: If you want to pull data directly, you’ll need your Fathom Site ID and an API key (find these in your account settings).

Heads up: Fathom is privacy-first, so you won’t get personally identifiable info (like email or name) from Fathom itself. That’s a good thing, but it means you need to link sessions to leads some other way.


Step 3: Prep Salesforce

You’ll need admin rights for this part.

  • Custom Fields: Create custom fields in Salesforce Leads for the data you want to pass from Fathom (e.g., Source, Medium, Campaign, Landing Page). Label them clearly.
  • Web-to-Lead Form: If you don’t already have one, set up a Salesforce Web-to-Lead form. This is how website form submissions turn into Salesforce leads.
  • API (Optional): If you want to automate things or work with a developer, set up a Salesforce Connected App to get API credentials.

Don’t overcomplicate your fields. Stick to the basics: source, medium, campaign, content, term. You can always add more later.


Step 4: Connect Fathom to Your Lead Forms

This is the trickiest bit, and it depends on how your site is built. Here’s the core idea: when a user fills out your lead form, you want to grab their Fathom session data (like UTM parameters or referrer) and send it to Salesforce along with the form.

A. Capture Fathom Data Client-Side

Fathom keeps UTM parameters and referrer in cookies or local storage, depending on your config. You’ll need to:

  1. On page load, read UTM parameters from the URL and store them (e.g., in hidden form fields or local storage).
  2. On form submit, pull those values and include them in your form submission.

Example using vanilla JavaScript:

js // Grab UTM parameters function getUTMParams() { const params = {}; const query = window.location.search.substring(1).split('&'); query.forEach(function(part) { const item = part.split('='); if (item[0].startsWith('utm_')) { params[item[0]] = decodeURIComponent(item[1]); } }); return params; }

// Fill hidden fields on your form const utms = getUTMParams(); Object.keys(utms).forEach(key => { const field = document.querySelector(input[name="${key}"]); if (field) field.value = utms[key]; });

  • Add hidden fields for utm_source, utm_medium, utm_campaign (and any others you want) to your form.
  • If your form is built with a platform like HubSpot, Gravity Forms, or Typeform, check their docs—many have built-in UTM tracking now.

Reality check: If your lead forms span multiple pages or users take a while to convert, you’ll need to persist UTM data in cookies or local storage.

B. Send the Data to Salesforce

  • For a Salesforce Web-to-Lead form, map your hidden fields to the custom fields you made in Step 3. When someone submits, the UTM data goes straight into Salesforce.
  • For custom forms or tools (like Zapier, Make, or a backend handler), just make sure your handler grabs the UTM/referrer data and pushes it to Salesforce via their API.

Ignore: “Plug-and-play” browser plugins that promise to do this all for you, unless you’ve tested them. Most are either outdated or break on anything but the simplest setups.


Step 5: Test Your Setup (Don’t Skip This)

Take off your admin hat and act like a normal user:

  1. Click a test ad or email with UTM parameters in the URL.
  2. Fill out your lead form.
  3. Check Salesforce—did the lead show up, with the correct UTM/source data in the fields you made?

If something’s missing:

  • Double-check your hidden field mapping.
  • Make sure the form isn’t being cached or blocked by browser privacy settings.
  • Try different browsers or devices.

If you’re stuck, look at your browser’s network tab to see if the form data is actually being sent. Nine times out of ten, it’s a field mismatch or JavaScript error.


Step 6: Set Up Simple Reporting

Once you’re getting Fathom data into Salesforce, you can build reports that actually mean something.

  • In Salesforce, create a report or dashboard that slices leads by source, medium, or campaign.
  • Don’t bother with super-fancy dashboards—just start with a simple table: Date | Source | Campaign | Lead Count.
  • Compare with Fathom’s own reporting to spot discrepancies. They won’t always match exactly (privacy tools, ad blockers, etc.), but they should be in the same ballpark.

Pro tip: If you see “(not set)” or blank fields in Salesforce, your UTM mapping is off or users are coming in without tagged links. Fix your marketing links at the source, not in Salesforce.


What Works, What Doesn’t, and What to Ignore

What works: - Tracking UTM/source data for every lead, right in Salesforce. - Keeping things simple—just the fields you need, mapped clearly.

What doesn’t: - Relying on third-party “connectors” that promise to sync everything automatically. Most are overpriced or break with custom setups. - Expecting perfect data. Ad blockers and privacy settings mean some visits won’t be tracked. That’s okay—look for trends, not perfection.

What to ignore: - Overly complex attribution models unless you have a real need (and a team to maintain them). - “360-degree customer views” unless you’re working at a Fortune 500. For most, source/campaign is enough.


Keep It Simple—Iterate as Needed

Connecting Fathom and Salesforce isn’t rocket science, but it does take a bit of setup and testing. Start with the basics—get your UTM data flowing, sanity-check the results, and build from there. If you run into snags, don’t chase “magic” plugins. Stick to clear field mapping and honest reporting.

You’ll save time, avoid dashboard drama, and actually know what’s moving the needle. And that’s the whole point.