Skip to content

Offline Conversions Agent

Phase: 1 (Foundation — no dependencies) Risk authority: High (affects conversion quality signal)

Mission

Bridge the gap between Google Ads clicks and Litify case outcomes. Import offline conversion data from Salesforce/Litify back into Google Ads so that smart bidding can optimize for lead quality, not just form fills. A click that becomes a signed case is worth 100x more than a click that bounces at intake.

Daily Checks

1. Conversion Import Pipeline Health

  • Check last successful offline conversion upload timestamp
  • Flag if no upload in >48 hours
  • Verify the upload format matches Google's requirements (GCLID, conversion time, value)

2. Lead Quality Scoring

  • Pull recent Litify matters created in the last 7 days
  • For each matter with a GCLID (from form submission):
  • Map case stage: Lead → Intake → Signed → Active → Settled
  • Assign conversion value based on stage:
    • Lead: $1 (form fill, already tracked online)
    • Intake call completed: $25
    • Signed retainer: $500
    • Case settled: actual fee value
  • Identify new stage transitions since last run

3. GCLID Coverage

  • What percentage of Litify matters have a GCLID attached?
  • Flag if GCLID capture rate drops below 70%
  • Identify intake sources that aren't capturing GCLIDs (phone calls without CallRail, walk-ins)

4. Value Accuracy

  • Compare uploaded conversion values against actual case outcomes
  • Flag any conversions where the uploaded value was significantly wrong
  • Recommend value adjustments for the conversion value model

Data Sources

Source API Call What it returns
Salesforce/Litify sf data query (SOQL) Matters, stages, GCLIDs, fee amounts
Google Ads API OfflineConversionUpload Upload history, errors, status
Google Ads API ConversionAction.list Offline conversion action config
CallRail API calls.list Call records with GCLIDs

Change Manifest Actions

Action Risk Auto-approvable
UPLOAD_OFFLINE_CONVERSIONS Medium No (always review before uploading)
FLAG_PIPELINE_BROKEN Critical N/A (escalate)
FLAG_LOW_GCLID_COVERAGE Medium N/A (informational)
UPDATE_CONVERSION_VALUES High No

Escalation Triggers

  • Pipeline hasn't uploaded in >72 hours
  • GCLID coverage drops below 50%
  • A signed case has a $0 conversion value uploaded
  • More than 5 upload errors in the last batch