Home Blog Digital Marketing

Call and Form Attribution by City: Which Landing Pages Actually Book Work

February 13, 2026 KAJ Analytics 11 min read Digital Marketing

You have city pages for Katy, Sugar Land, Cypress, and Richmond—and maybe a few Google Ads campaigns or social campaigns that send traffic to different landing pages. But when leads and booked jobs land in the CRM, you often can't say which page or campaign they came from. Without that, you don't know which geography and which content actually convert, or how it lines up with your service radius and drive time. Operational attribution means tagging calls and forms by source (city page, campaign, or channel) so you can see which sources drive leads and booked work, and which to scale or cap. This post is for Houston metro contractor owners and marketing/ops leads who run multi-city or multi-page sites: how to capture source at point of contact, store it with the lead, and use it to compare performance to your service-area and capacity rules. For wiring leads into one place so attribution can stick, see From GBP click to CRM; for how to structure city content so attribution is meaningful, see service area pages for multi-city contractors.

Short Answer: Give each city page or campaign a way to identify itself when a lead is captured—unique tracking numbers for calls, UTM parameters or hidden form fields for forms—and pass that source into your CRM when the lead is created. Then segment leads and booked jobs by that source so you can see which pages or campaigns drive volume and which convert. Compare the results to your service radius and capacity: if a page pulls from an area you rarely serve or that stretches drive time, you can adjust content or spend instead of over-promising.

Key Takeaways

  • Attribution is operational: which city page or campaign produced the call or form, and whether that lead became a booked job—so you know which geography and content actually convert.
  • Capture source at point of contact (tracking number, UTM, or form field) and store it with the lead in the CRM; without that, you can't segment by page or campaign later.
  • Compare leads and booked jobs by source to your service radius and drive time; pages that pull from the edge of your area may need different expectations or less spend.
  • If you have multiple locations or branches, split attribution by area or branch so each team sees which sources feed their pipeline.

Why This Matters for Houston Metro Contractors

Contractors in the Houston metro already manage service radius—which ZIPs get a truck, how far dispatch is willing to send crews, and which cities get next-day vs same-week. When you run multiple city pages or campaigns, you need to know which of those sources actually produce leads and booked work. Otherwise you're guessing: doubling down on a city page that doesn't convert or under-investing in one that does. Attribution ties each lead to a source so you can see cost per lead and cost per booked job by page or campaign, and align that with your service-area and capacity rules.

Dispatch handoff and job types matter too. If one city page drives a lot of leads but they're mostly small repairs at the edge of your radius, your cost per booked job may be high once drive time and trip minimums are in the mix. Attribution gives you the numbers to have that conversation—which sources are worth scaling and which to cap or refine. Multi-location operations can use the same logic: which sources feed which branch, and whether that matches how you've defined territories.

How Call and Form Attribution Works (Mechanics)

Inputs

  • Your city pages or landing pages (and any paid campaigns that send traffic to them), each with a way to identify itself at capture—e.g. unique tracking number per page or UTM/form source per campaign.
  • CRM or lead store where every call and form lands, with a field (or fields) for source, campaign, or landing page.
  • Service radius and capacity rules: which cities or ZIPs you serve, drive time limits, and how you define a booked job so you can compare attribution to reality.
  • If multi-location: which branch or territory gets credit for which geography, so attribution can be split by area.

Triggers

  • You run multiple city pages or campaigns and want to know which drive leads and booked jobs instead of guessing.
  • You're deciding where to put budget or content effort and need cost per lead and cost per booked job by source.
  • You want to compare lead source to service radius—e.g. whether a page that ranks for a fringe city is pulling leads you can realistically serve.

Actions

  • Assign a unique call-tracking number (or pool) per city page or campaign so each call carries a source; forward to your main line and log the source when the lead is created in the CRM.
  • For forms: use UTM parameters or a hidden field that records the landing page or campaign, and pass that into the CRM on form submit so every form lead has a source.
  • Ensure every lead record has a source/campaign/landing-page field populated; if a lead comes in without one (e.g. direct call to main number), label it as unknown so you don't mix it with attributed traffic.
  • When a lead becomes a booked job, keep the source on the job record (or in a linked lead) so you can report booked jobs by source.
  • Report leads and booked jobs by source; compare to service radius and capacity so you can scale or cap based on where you actually serve and how far crews can go.

Minimum fields to capture (so reporting stays clean):

  • lead_source_type: call or form
  • lead_source_page: city/landing page slug or full URL
  • utm_campaign, utm_source, utm_medium: when running campaigns
  • tracking_number_id: when using unique tracking numbers

Outputs

  • Leads and booked jobs segmented by city page or campaign, so you know which sources convert.
  • Cost per lead and cost per booked job by source when you run paid—so you can shift budget toward sources that perform and away from those that don't.
  • A clear view of whether your top-converting sources align with your service radius and drive time, or whether you're over-investing in geography that's hard to serve.

Failure Modes

  • No source captured: Calls and forms land in the CRM with no page or campaign attached; you can't segment later. Fix: add tracking numbers and form source fields and backfill only where you can (e.g. UTM in referral).
  • Source lost between capture and CRM: The form or call handler doesn't pass the source into the CRM, or the field is missing. Fix: audit the path from form submit or call to CRM create and ensure the source field is populated.
  • Attributing to the wrong level: You tag by campaign but need to know by city page (or the reverse). Define the level you care about (page, campaign, or both) and capture it consistently.
  • Ignoring service radius: A source shows high volume but the leads are from the edge of your area; you scale spend and then struggle with drive time and trip minimums. Use attribution plus service-area rules to cap or refine.

Safeguards

  • Document which tracking number or UTM set maps to which page or campaign, and keep that map in one place so reporting and handoffs stay consistent.
  • Review attribution reports on a set cadence and compare to service radius—if a high-volume source is from geography you rarely serve, adjust content or spend rather than over-commit.
  • If you have multiple locations, agree on how source is mapped to branch (e.g. by city or ZIP) so each team sees the right slice of attributed leads and booked jobs.

Fastest Wins

Phase 1: Capture source. Phase 2: Report by source. Phase 3: Compare to service area and capacity.

Phase 1: Tag Calls and Forms by Source

  • Add a unique tracking number (or number pool) per city page or key campaign so every call can be tied to a source; ensure the number is forwarded to your main line and that your CRM or lead-creation step records the source.
  • For forms, add a hidden field or use UTM parameters so the landing page or campaign is passed with the form submit; ensure your form handler writes that into the CRM when the lead is created.
  • If you can't backfill old leads, start from a cutoff date and only report on leads created after source capture was in place.

Phase 2: Report Leads and Booked Jobs by Source

  • Build a simple report or export: leads by source, booked jobs by source. If you run paid, add cost per lead and cost per booked job by source.
  • Identify which sources drive the most leads and which drive the most booked jobs; they're not always the same—some pages may attract tire-kickers, others may convert better.

Phase 3: Compare to Service Radius and Capacity

  • Map your top sources to geography: does the city page or campaign align with the ZIPs and cities you actually serve well?
  • If a source pulls from the edge of your radius or from an area where drive time is long, consider capping spend there or adjusting the page so expectations match what you can deliver.
  • If you have multiple locations, ensure each branch or territory can see attribution for their area so they can tie marketing to their pipeline.

Measurement Plan

Concrete metrics so attribution is actionable.

  • Leads by source: Count of leads (calls and forms) by city page or campaign; trend over time so you see which sources grow or shrink.
  • Booked jobs by source: Count of jobs booked that came from each source; lead-to-book rate by source so you know which sources convert.
  • Cost per lead and cost per booked job by source: When you run paid, divide spend by source by leads and by booked jobs so you can compare efficiency.
  • Source vs service radius: For each source, note the geography it targets; compare to your service-area list and drive time rules so you don't over-invest in hard-to-serve areas.

Hypothetical example: An HVAC contractor in the Houston metro runs city pages for Katy, Sugar Land, Cypress, and Richmond. They add a unique tracking number to each page and a hidden form field that records the page URL. Calls and forms flow into their CRM with the source field populated. After a few months they see that the Cypress page drives the most leads and the best lead-to-book rate; the Richmond page drives fewer leads and many are from ZIPs that stretch their drive time. They decide to emphasize Cypress in organic content and cap paid spend that targets the far edge of Richmond, and they align dispatch so the team knows which areas are coming from which source. No invented stats—outcomes vary.

Local SEO and Attribution Tie-In

Your city pages and service-area content exist so search and visitors can find you in the right geography. When you attribute leads and booked jobs to those pages, you close the loop: you see which content actually drives work. That doesn't require changing how you do local SEO—it requires capturing and storing source so you can report on it. One service list (cities/ZIPs you serve) can guide both your content and your interpretation of attribution: if a page ranks for a city you serve well, and attribution shows it converts, you have a clear case to maintain or expand that page. If a page pulls from an area you rarely serve, you can tone down expectations on the page or reduce spend rather than over-promise.

FAQ: Call and Form Attribution by City

Why should I track leads and booked jobs by city or landing page?

So you can stop guessing. Track leads and booked jobs by page/city and you'll see what converts. Then compare it to drive-time and minimum job rules so you don't scale marketing that creates unprofitable work.

How do I attribute calls and forms to a specific city page or campaign?

Calls: use a unique tracking number per page/campaign and store the mapped source in your lead record. Forms: capture UTMs + landing page via hidden fields and write them into the CRM at lead creation. If it isn't stored at creation, it gets lost forever.

What if I have one location but multiple city pages?

Still fine. Attribute by page, then sanity-check it against where you actually dispatch crews. If a 'Richmond' page mostly produces leads outside your realistic radius, adjust the page expectations or cap spend.

What should I measure once attribution is in place?

Leads by source, booked jobs by source, and lead-to-book rate by source. If you run paid, add cost per booked job. Then flag sources that produce work at the edge of your service area.

Want help setting up call and form attribution for your city pages?

We can help you map tracking to your CRM and service area so you know which pages and campaigns actually book work.

Written by the KAJ Analytics team — AI consultants focused on Speed-to-Lead systems, content workflows, and local visibility for contractors in Katy and West Houston.

Want more local visibility and better lead conversion?

Start with Visibility Systems (Local SEO, GEO/AEO). Then add Speed-to-Lead to convert more calls and forms from the traffic you already earn.