Match ad spend with recorded intake stages
Compare spend with inquiries, consultations, and staff-confirmed retained matters, while keeping unmatched records visible.
Tools for the documented steps
Practice relevance
Cross-practice idea · A general operational method. Review the stated tool and jurisdiction limits before use.
The problem
Compare spend with inquiries, consultations, and staff-confirmed retained matters, while keeping unmatched records visible.
Why it matters: Click and call totals do not show whether inquiries reached consultation or retention. Comparing recorded stages with spend makes attribution gaps visible without claiming that an ad caused a matter or a financial return.
Sources & evidence
Proposed / not tested. The public source describes the problem. Documentation supports only the stated method components; no result from this recipe has been verified.
What’s been verified
Source methods and reported problems have been reviewed. We have not run the adapted workflow. The sample below describes expected behavior on synthetic data, not a customer result.
What to measure: In a synthetic pilot, count correctly found exceptions, false alarms, and unresolved inputs. No time or cost saving is assumed.
- Pain evidence: Public discussion ↗original post 2026-06-16. A ten-attorney firm's marketing coordinator reports spending approximately $10,000/month without conversion tracking, unable to connect calls or clicks to clients; self-reported numbers, not ROI evidence.
- Method: Google Ads lead measurement and imports ↗Google documents qualified/converted lead stages and Data Manager imports. Current guidance flags the June2026 Data Manager API migration. This recipe only reconciles prepared exports; it uploads no data.
- Method: Google Ads lead measurement and imports · supporting guide 2 ↗Additional official capability reference. The complete adapted recipe has not been tested.
Source checked: October 15, 2026. Pain accounts are self-reported. Documentation supports components; this adapted recipe and prompt have not been tested. We wrote these prompts. The adapted workflow hasn’t been tested.
Suggested approach
Start when: Weekly Ads export plus approved anonymized intake-stage export
- join using existing firm-internal attribution IDs, preserve unmatched records and distinguish inquiry/consult/retained
- Keep source references and report unknowns instead of filling gaps.
- The responsible reviewer checks the report before any separately approved action.
Limits and review
The assistant drafts or reports only. Check source records and review the output before a human performs any separately approved send or change. No automatic legal decision, money movement, account connection or publication is included.
Who reviews it: No client narratives or identities to ad platforms. Any conversion upload requires separate firm privacy/ethics approval and supported data-sharing permission; hashed identifiers remain personal data. Revenue may not be available or comparable across matters.
What you need
Your firm-approved AI assistant · prepared files
- Existing authorized access to the correct source account and records; no new login, credentials, installation or permission grant is included.
- Responsible lawyer/operations reviewer approves scope, definitions and any later action.
- AI optional; use only approved minimized data and retain originals separately.
- Use synthetic inputs first. Keep real data in firm-approved accounts and processing, with appropriate access, confidentiality and retention controls. Aliases alone do not anonymize records. Never paste credentials, API keys or unnecessary client details.
How to use
Documentation-checked component path; proposed workflow, not tested
- Aggregate spend alone cannot establish individual attribution. Existing CRM IDs/source capture and historical stage events may be absent.
Check access and setup
- The live account, entitlement, exact headers, records and field coverage have not been observed.
Download scoped ad-spend data
Google Ads · Correct customer account > Campaigns statistics table > date/columns/segments > Download > Excel CSV or XLSX
Display campaign identity, period, cost and selected measurement columns. Download the visible table after checking account, currency, timezone, dates and filters. Preserve native headers, totals and the source file.
- Expected output
- Native campaign-period statistics export.
- Next step
- Open locally; capture all report settings in Scope.
- Check before continuing
- The download is aggregate advertising data, not a click-to-client ledger. Do not multiply each campaign spend by its number of lead rows.
Ask the in-app assistant for the source report
Lawmatics Merlin Copilot, optional · Left navigation > Merlin > Copilot
With an already approved seat and firm-wide reporting access, paste the prompt. Open the returned report/export or inspect its preview; if unavailable or incomplete, use the native report route below. Do not accept mutation previews, routines or feature-request sending.
- Expected output
- A report/one-time export or explicit unsupported/missing-field result; exact custom query coverage is not promised.
- Next step
- Check actual fields and records, then use the native CSV path where a report is returned. Prose alone does not certify completeness.
- Check before continuing
- Existing firm-approved AI entitlement and data handling approval are prerequisites. Lawmatics Merlin reporting can operate at firm scope; do not use it across ethical walls or assume matter-level permissions protect aggregate/search output. The detailed Copilot article and September 2026 release notes describe availability; the suite overview still contains a stale Coming Soon heading. Verify actual account access, with no purchase or permission changes.
Get the actual Lawmatics rows
Lawmatics · Reports > Custom Reports > existing matter report > eye/view icon > Export
Use an existing authorized report, or have its owner prepare a targeted report with Source, Campaign, Created At, Converted At, Status, Stage and the exact existing attribution identifier if available. Record the agreed review period and matter scope, including which date field sets the range. Export the viewed report to CSV; large exports may arrive by email. Preserve headers and file unchanged. A report creation/save is a separate account write, not performed here. If no suitable report exists, use the documented Settings > Export > Export Matters route only in restricted storage, then minimize locally.
- Expected output
- Native matter/contact-field rows; no promise of task history, audit history, destination IDs or custom fields that the firm never recorded.
- Next step
- Open in restricted Excel; compare rows to matter records before preparing aliases.
- Check before continuing
- A matter report may contain contact and matter fields. A contacts-only export omits matter fields. Date-created and date-converted scopes differ; exported grouping is not preserved.
Make the checked, minimized handoff
Excel / source-record reviewer · Restricted original workbook > separate analysis workbook > Scope worksheet
Staff verifies existing campaign/source identifiers and approved stage definitions. Aggregate distinct lead aliases by the approved attribution key and cohort first, then join to one Spend row per campaign/period/currency. Keep current-stage/as-of reporting separate from event-in-period counts; earlier stages require their real timestamped records. Never fuzzy-match names or reconstruct absent click IDs. Keep untouched original exports/screenshots and the identifying source map in restricted firm storage. Build a separate minimized analysis file; do not hide raw client data on another tab. Include the complete Scope/coverage note in the AI-visible workbook or prompt. Use aliases and administrative metadata only. Unknown is not zero, false, completed or absent.
- Expected output
- Spend(campaign_alias,period,currency,spend,source_ref); Intake(lead_alias,campaign_alias,created_at,recorded_stage,stage_at,as_of,source_ref); Scope(cohort,attribution_window,stage_dictionary,matching_coverage)
- Next step
- Format each approved range as a named table. Carry source-row references and coverage into the analysis workbook.
- Check before continuing
- Every field has an observed source or an explicit missing reason; staff assignments are marked editorial, not native.
Ask AI to inspect the checked inputs
Excel Copilot, optional · Analysis workbook > Copilot icon at lower right > Chat only
Open the minimized workbook containing the named tables and Scope. Paste the exact prompt; if unavailable, perform the same rule checks manually.
- Expected output
- A source-linked campaign/cohort table and missing-measurement list.
- Next step
- Copy checked results into a new Review sheet, retaining source references and unresolved blockers.
- Check before continuing
- Reconcile aggregate cost back to Ads once, check stage evidence and show unmapped proportion.
Human review and final action
Final human reviewResponsible firm reviewer · Internal Review worksheet / review document
Marketing and intake owners approve mapping, cohort, stage meaning and arithmetic. Save a provisional report if capture is partial.
- Expected output
- Reviewed recorded-attribution report; no causal or profitability claim.
- Next step
- Any tracking implementation or conversion upload is a separate privacy-reviewed project.
- Check before continuing
- No personal data, legal circumstances or client outcomes are uploaded to any ad platform.
What you’ll get
attribution-review.csv: source_id, spend, unique_inquiries, booked_consults, confirmed_retained, unmatched_count, denominator, coverage_warning
Inputs and a sample test Synthetic example · not a measured result
Input files
- ads.csv: source_id, campaign_id, period, spend, currency, attribution_token
- intake.csv: intake_alias, attribution_token, source_id, stage, stage_at; stage-dictionary.csv: stage, approved_definition; scope.txt: timezone, window, coverage
Synthetic example
R1: exact attribution token and staff-confirmed retained stage R2: inquiry has no matching token R3: recorded consultation without retention confirmation
Expected output
R1: observed attributed retention, not causal ROI R2: unmatched R3: consultation only
Test a failure
No client narratives or identities to ad platforms. Any conversion upload requires separate firm privacy/ethics approval and supported data-sharing permission; hashed identifiers remain personal data. Revenue may not be available or comparable across matters.
Try with the sample files
Follow the tool steps above and use the inputs named in each step. Where provided, native-* files are blank scaffolds and NATIVE-INPUT-MAPPING explains their fields. Original examples and the optional full review prompt use a separate prepared-input schema. Keep them separate unless the mapping explicitly connects them. Downloading a kit does not connect accounts or prove the workflow works.
Download inputs and checklist 19 files
Instructions, blank templates and separate synthetic examples; these files do not install an automation. Blank templates still need verified source data.
- Download starter kit All inputs, synthetic examples and review notes in one ZIP. No automation is installed.
- Start here: get the sources and prepare the review Documentation-checked acquisition, explicit manual mapping, exact prompts and human review limits
- Input template: ads.csv Header-only input template; preserve exact names and order
- Synthetic input: ads.csv Fabricated sample rows for an offline manual trial
- Input template: intake.csv Header-only input template; preserve exact names and order
- Synthetic input: intake.csv Fabricated sample rows for an offline manual trial
- Input template: stage-dictionary.csv Header-only input template; preserve exact names and order
- Synthetic input: stage-dictionary.csv Fabricated sample rows for an offline manual trial
- Output template: attribution-review.csv Header-only output template; preserve exact names and order
- Expected output: attribution-review.csv Hand-authored synthetic expected result; not an executed workflow result
- Policy/input template: scope.txt Required source/policy preparation scaffold; not populated with firm instructions
- Synthetic policy/input: scope.txt Fixture-only context; not an approved production policy
- Synthetic fixture expectations Acceptance targets and failure checks; no claim of workflow execution
- Review prompt Copyable offline review prompt; no executable automation
- Setup and prerequisites Recipe-specific setup, evidence sources and usage boundaries
- Native input scaffold: Spend Empty editorial table for Spend; populate from verified source evidence after reviewed mapping; not a native export
- Native input scaffold: Intake Empty editorial table for Intake; populate from verified source evidence after reviewed mapping; not a native export
- Native input scaffold: Scope Approved text input for Scope; complete from verified evidence and include in the AI-visible packet
- Native input mapping and scope guide Old-file-to-native-input compatibility map, acquisition requirements, privacy and blocking gates
Optional full review prompt for prepared inputs
Prepared-input review prompt with Your firm-approved AI assistant · prepared files
Proposed / not tested · editorial prompt. This prompt uses the original prepared-input schema shown in the sample test. Step prompts may use different tables. Follow NATIVE-INPUT-MAPPING where supplied; do not mix the original examples with native-step inputs without mapping and checking every field.