Lead source attribution for law firms
Marketing attribution tool for law firms
Legal clicks are among the most expensive in marketing, so every intake call has to be accounted for. SourceLoop ties each call and case inquiry to the channel that earned it, tracks cost per signed case, and pushes signed cases back to your ads.
Free 7-day trial. No credit card required.
Used by 750+ marketing teams, agencies, and law firms
Built for law firms
From the first click to the signed case, attributed to the channel that earned it
Cost per signed case by channel, case value rolled up to source, and call, form, and chat intake captured, all built for high-value legal matters.
See which channels send matters, worth more than the click.
Calls, forms, and chats, captured as one attributed inquiry.
Channel attribution
See which campaigns earn real cases
Multi-touch attribution on one first-party dataset, sliceable by practice area. Know which keywords and campaigns drive signed cases, not just clicks on a costly legal keyword.
- UTM, GCLID, and keyword on every inquiry
- Cost per signed case, by practice area
Cost per signed case · Last 90 days
Signed| Channel | Spend | Signed | Cost/case |
|---|---|---|---|
| $33K | 78 | $420 | |
| $18K | 30 | $610 | |
| $13K | 46 | $280 | |
| RFReferral | $0 | 21 | $0 |
| $2K | 9 | $220 |
Call tracking
Attribute every intake call
Most case inquiries start with a call. Connect CallRail, CallTrackingMetrics, Invoca, or Mediahawk and every inbound call becomes an attributed lead, matched to the caller's journey, recording attached for intake review.
- CallRail, CallTrackingMetrics, Invoca, Mediahawk
- Source and campaign on every call
(305) 555-0162 · Intake call
7m 16s · recording attached
-
Cases
Attributed by practice area
-
Calls + forms
Captured as one inquiry
-
30+
Ad & CRM integrations
-
Qualified
Cases tracked, not raw leads
Intake funnel
See where matters drop between lead and signed
Build the intake funnel: lead, qualified, consult, signed. Slice by source so you can see which channel sends matters that actually sign, and where qualified cases stall before intake closes them.
- Build any intake funnel in clicks, no SQL
- Source breakdown for every step
Intake funnel · Last 30 days
Case-value dashboard
Track signed cases and cost per case in one view
A live dashboard of signed cases by source, average case value, and cost per signed case. Pre-built and tied to your intake outcomes, so you can see which channels send matters worth the spend.
- Signed cases and cost per case, real-time
- Case value rolled up to the channel
Conversion sync
Send signed cases back to your ads
Forward qualified and signed cases to Google Ads and Meta as server-side offline conversions so bidding optimizes toward matters that sign, not raw form fills.
- Real-time, server-side via Conversions API
- No GTM, no DIY CAPI endpoint to babysit
Signed-case conversions · pushed back
Lead quality
Only real cases count, not every inquiry
Spam, wrong practice areas, and 10-second calls are marked before they reach intake reports. Rules you set, like practice area, location, or a call over 60 seconds, or Ask AI reading the case description, mark each lead Good, Not a fit, or Spam. Cost per lead becomes cost per real case, and only real ones go back to your ads.
- Rules for practice area, location, and call length
- Spam never reaches your reports, CRM, or ads
Intake today
Rules on| Lead | Asked for | Quality |
|---|---|---|
| Case review form | Car accident, injured | Good |
| Call, 7:21 | Workplace injury | Good |
| Case review form | Parking ticket | Not a fit |
| Contact form | Marketing offer | Spam |
Customer stories
Firms that know where every consultation started
From agencies and SaaS companies to clinics and law firms, teams use SourceLoop to trace every lead and every dollar back to the campaign that earned it.
Most of our leads showed up as Direct in the CRM. SourceLoop now gives us the full journey behind every inquiry, chat and call, from the first search to the booked consultation.
- More consults per dollar
- 27%
- Lead channels in one report
- 4
We run paid media for 14 clients. Every lead now lands in their CRM with the campaign, keyword and ad behind it, so we can prove our impact with numbers clients can check for themselves.
- Lower cost per lead
- 41%
- Client accounts tracked
- 14
We started sending only qualified demos back to Google Ads as conversions. Within six weeks, paid search was filling our calendar with buyers who fit our ICP, and close rates followed.
- SQLs from paid search
- +38%
- Demo-to-close rate
- 2.1x
Half our new patients book by phone. Multi-touch attribution on every call showed us which ads start a booking and which ones close it, so we cut the two channels that did neither.
- Of bookings now attributed
- 63%
- Monthly spend reallocated
- $9k
FAQ
Law firm attribution questions
How do you attribute intake calls?
Connect CallRail, CallTrackingMetrics, Invoca, or Mediahawk and every inbound call becomes an attributed lead alongside your form and chat inquiries. SourceLoop matches the call to the caller's web session, so an intake call carries the same source and campaign as an online inquiry. Offline calls still record, tagged as Direct.
Can I see ROI per practice area?
Yes. Slice attribution by landing page, campaign, and keyword so you can compare cost per signed case across practice areas and shift budget to the matters that pay.
Legal clicks are expensive, how does this help?
Because every dollar matters, SourceLoop ties each costly click through to the call or inquiry it produced and on to whether the case signed. You stop optimizing toward cheap clicks and start optimizing toward signed cases.
Does it work for multi-location firms?
Yes. Track each office's site, numbers, and campaigns together and compare performance per location, each number attributed independently.
Can I push signed cases back to my ad platforms?
Yes. Forward qualified and signed cases to Google Ads, Meta, and ChatGPT Ads as server-side offline conversions so smart bidding optimizes toward matters that sign, not raw form fills.