Compensable

Tracking & attribution

Know which dollar made the phone ring.

Every call is tied to the campaign that produced it — and followed through to the signed case. Marketing reports stop being arguments.

Compensable · callssample datasample
The Compensable calls view: campaign, pipeline, duration, and qualification status per call

Numbers and campaigns shown are sample data.

How it works

From click to retainer, one unbroken record.

Server-side dynamic number insertion assigns each visitor a pool number and keeps it sticky — the same visitor sees the same number, so the attribution never smears across campaigns. Assignments land in an append-only ledger, not a mutable cache.

Attribution eventssample
call_connectedemitted · deduped
buyer_successemitted → webhook
retainer_sentlinked to call

Calls route by campaign, geography, and buyer availability — with concurrency caps on ping-tree buyer routing. Plans are compiled, versioned, and published; every call is pinned to the exact plan version that routed it, which is what you want when someone asks why a call went where it went.

Routing plan · versionedsample

plan v14 · published 2026-07-02

if state in [TX, FL] → intake_desk_a

elif buyer_pool → ping(buyers, cap=2)

else → ai_intake(blueprint: afff_v3)

// every version kept. every call pinned to the version that routed it.

Connection and buyer-success events are deduplicated at write time and delivered over HMAC-signed webhooks. Recording is policy-gated per tenant. Scoped API keys mean an agency can pull its numbers without touching the firm's.

Webhook delivery · signedsample

POST https://firm.example/hooks/compensable

x-signature: hmac-sha256=1f8e…c204

event: buyer_success · id: evt_8841 (deduped)

200 OK · delivered once, provably yours

Thirty minutes. Bring last month's spend.

We'll run a live call, work a sample docket, and show you the system refusing a call it shouldn't make.