Skip to content New SourceLoop MCP: chat with your attribution data in Claude, ChatGPT & Cursor
SourceLoop

Lead source attribution for home services

See which ad made the phone ring, then tie it to a booked job

Attribution built for HVAC, plumbing, roofing, and contractors. The phone is your main lead, so SourceLoop ties every call and form to the exact ad, search, or campaign that earned it, attributes to booked jobs and revenue, and pushes the wins back to your ads.

Free 7-day trial. No credit card required.

SourceLoop dashboard showing home-services calls and jobs attributed by channel

Used by 750+ marketing teams, agencies, and SaaS companies

  • Bennett
  • Vectivo
  • Siite
  • Huemor
  • Infludata
  • Wonsulting
  • Orchly
  • PacificCrest
  • ReachTopCPA
  • BrassAnimals
  • TechCXO

Built for home services

Every call, form, and booked job tied to the ad that earned it

See cost per booked job by channel, roll revenue up to source, and capture leads from phone, web, and Local Services Ads, all built for service-area businesses.

Cost per booked job

What each channel really costs you, per job that actually books.

Revenue by source

Job revenue rolled up to the channel, that drove the call.

Lead sources

Phone, web, and chat in one place, every lead attributed.

Call tracking

Every call tied to the ad that drove it

Most home-services leads call. Connect CallRail, CallTrackingMetrics, or Invoca and every inbound call becomes an attributed lead, matched to the caller's web journey, recording attached.

  • CallRail, CallTrackingMetrics, and Invoca
  • Source and campaign on every call
Learn more about call tracking
A

(480) 555-0133 · Inbound call

2m 51s · recording attached

First touch Google LSA · Local · ac_repair
Journey before the call
Local Services Ad click 1d ago
Visited /emergency-repair 1d ago
Called the dispatch line 2h ago
Booked job $480 just now

Channel attribution

Know your true cost per booked job, by channel

Multi-touch attribution on one first-party dataset. See which campaigns, keywords, and Local Services Ads drive calls and booked jobs, instead of guessing from a last click.

  • UTM, GCLID, and keyword on every job
  • Cost per booked job, by channel
Learn more about attribution

Cost per booked job · Last 30 days

Booked jobs
ChannelSpendJobsCost per job
Google LSA$3.4K89$38
Google Ads$4.2K69$61
Meta$2.6K35$74
Referral$041$0
Bing$1.1K14$79

Jobs dashboard

Booked jobs and revenue, live by source

Watch booked jobs and revenue roll in by channel in real time. See which sources send ready-to-book customers versus tire-kickers, all on pre-built dashboards, no GA4 setup or BigQuery joins.

  • Real-time, full-fidelity, never sampled
  • Jobs and revenue rolled up to source
Learn more about dashboards
Booked jobs by source Live
Jobs 318 +22%
Revenue $214K +19%
Trend
By source
Google LSA 112
Google Ads 86
Meta 47
Organic 41
Referral 32

Job funnel

See where leads drop off on the way to a job

Track the path from call or form to booked, completed, and repeat job. Slice by source so you see which channel sends leads that actually close, and where to put more spend.

  • Build any job funnel in clicks, no SQL
  • Source breakdown for every step
Learn more about funnels

Job funnel · Last 30 days

1,240Call/Form
422Booked
↓ 66%
351Completed
↓ 17%
138Repeat
↓ 61%

Conversion sync

Send booked jobs back to your ads

Forward booked and won jobs to Google Ads and Meta as server-side offline conversions so smart bidding chases real jobs, not the cheapest clicks.

  • Real-time, server-side via Conversions API
  • No GTM, no DIY CAPI endpoint to babysit
Learn more about server-side conversion tracking

Booked-job conversions pushed

Google Ads Last sync 8s ago 422 Live
Google LSA Last sync 12s ago 389 Live
Meta CAPI Last sync 22s ago 214 Live

FAQ

Home services attribution questions

Which ad actually made the phone ring?

SourceLoop captures the source, UTM, GCLID, and keyword on a visitor's first page view and keeps them through the session. When that visitor calls a CallRail, CallTrackingMetrics, or Invoca tracking number, the call is matched to their session, so you see the exact ad and campaign that made the phone ring.

Does this work with Google Local Services Ads and Google Ads?

Yes. SourceLoop captures GCLID and campaign data from Google Ads and ties calls and form leads back to the campaign and keyword. You can then push booked jobs back as offline conversions so bidding optimizes toward real work.

Can I track multiple locations or a franchise?

Yes. Track each location's site, tracking numbers, and campaigns together and compare performance per location, with each number attributed independently.

What about calls from a yard sign or truck wrap?

Those still record as leads. With no web session behind them there's no journey to attach, so they show as Direct, while calls that started on your site carry full source and campaign detail.

Can I push booked jobs back to my ad platforms?

Yes. Forward booked and won jobs to Google Ads and Meta as server-side offline conversions so smart bidding optimizes toward jobs that close, not the cheapest clicks.

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta