DocsCall TrackingWarm Transfer (Pre-Call Data)

Warm Transfer (Pre-Call Data)

Send a caller's details right before a warm or live transfer and Lead Distro AI attaches them to the matching call automatically, for reporting, reconciliation, and dispute review. Works with any dialer that can send a quick GET or POST.

Last updated:

Call Tracking is in beta and turned on per account. If you don't see Calls in your left sidebar (or it shows a "Soon" tag), email support@leaddistro.ai and we'll switch it on for you.

A warm transfer (also called a live transfer) is when your source pre-qualifies a caller and then bridges the live call to your tracking number, instead of the caller dialing in cold. This guide shows how to send that caller's details a moment before the transfer, so Lead Distro AI can attach them to the call. For the basics of a call campaign first, see Call Tracking Setup.


When to use it

  • Your buyer pays per qualified or passed call, not per lead, so each call needs to be tied to who the caller was.
  • You want the caller's details (name, state, case type, TrustedForm, your own lead id) on the call record for reporting, reconciliation, and dispute review.
  • Your source runs a warm or live transfer through a dialer that can send a quick web request before it bridges the call.

How it works

  • Your source sends the caller's details to the call enrichment endpoint (a quick GET or POST) right before the transfer.
  • Your source bridges the live call to your campaign's tracking number.
  • Lead Distro AI matches the two by the caller's phone number and shows the details on the call record.

The one requirement: the transfer has to show the consumer's phone number as the caller ID (this is called ANI passthrough). That number is how we match the details to the call. If your dialer can only show its own number, email support@leaddistro.ai and we'll set you up with a dedicated number per lead instead.


Step 1: Turn on Pre-call Data and choose your fields

Open your call campaign, go to Settings, and turn on Pre-call Data. A Fields tab appears where you choose which parameters to accept: add whatever your vertical needs (first name, state, case type, ZIP, your own lead id, anything). There is no fixed list. We always keep the caller's name, phone, and email; the Fields tab is for the extra fields you want stored and shown on the call.

Give a field the ZIP / Postal Code or State type and it does double duty: we store it AND can route the call by territory. See Geographic Routing.

Step 2: Send the caller details

Send the fields to the enrichment endpoint using the same API key your source already uses. You can send them as a POST with a JSON body, or as a GET with query values, whichever your dialer supports. The callerid is the consumer's phone in E.164 format (like +13105551234) and is required, since it's the key we match on.

curl -X POST https://www.leaddistro.ai/api/v1/calls/enrich \
  -H "x-api-key: YOUR_SUPPLIER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "flo_campaign_id": "YOUR_CAMPAIGN_ID",
    "flo_supplier_id": "YOUR_SUPPLIER_ID",
    "callerid": "+13105551234",
    "first_name": "Maria",
    "state": "TX",
    "case_type": "MVA",
    "trustedform_url": "https://cert.trustedform.com/...",
    "lead_id": "YOUR-LEAD-ID"
  }'

Prefer a simple GET? Send the same values as query parameters (send the x-api-key as a header, and URL-encode the + in callerid as %2B):

https://www.leaddistro.ai/api/v1/calls/enrich?flo_campaign_id=YOUR_CAMPAIGN_ID&flo_supplier_id=YOUR_SUPPLIER_ID&callerid=%2B13105551234&first_name=Maria&state=TX&case_type=MVA&lead_id=YOUR-LEAD-ID

On success you get back a confirmation of exactly what we stored and will match on:

{
  "success": true,
  "mode": "call_enrichment",
  "stored": true,
  "caller_phone": "+13105551234",
  "fields_stored": ["first_name", "state", "case_type", "trustedform_url"],
  "external_lead_id": "YOUR-LEAD-ID",
  "expires_at": "...",
  "match_window_hours": 48
}

Testing your setup? Add test=true and we'll reply with exactly what we parsed, without storing anything, so you can confirm the wiring before going live. You have 48 hours from sending the details to bridge the call.

Step 3: Bridge the live call

Send the live call to your campaign's tracking number, passing the consumer's phone number as the caller ID. When the call lands, we match it to the details you sent and attach them.

Step 4: Set the destination to bill on connect

Because your buyer pays for a passed transfer rather than talk time, set the destination to bill when the call connects. Open the destination in Edit Target, set billing to bill on connect with a 1 second minimum, and save. If a transfer doesn't qualify, refund that call from the call's page and it shows as Returned. See Wallet & Top-Ups.

Where the data shows up

Open the call from the Calls page. The Pre-call data card shows your lead id and every field you sent, tied to that exact call, ready for reporting, reconciliation, or a dispute.


Limits to know

  • Matching needs the consumer's caller ID. If the transfer shows the dialer's own number instead, we can't match on the phone. Ask support about a dedicated number per lead.
  • You have 48 hours from sending the details to bridge the call, then the saved details expire.
  • The buyer doesn't receive the fields yet. Today the details live on your call record for your reporting. Passing them into the buyer's own system alongside the call is on the roadmap.

FAQ

Frequently Asked Questions

Do I need a new API key or a different endpoint?
A new endpoint, /api/v1/calls/enrich, but the same API key your source already uses for this account. We always keep the caller's name, phone, and email; to store any extra fields, add them once in the campaign's Fields tab (after turning on Pre-call Data).
Can my dialer send a GET instead of a POST?
Yes. Send the fields as query parameters on a GET, or as a JSON body on a POST, whichever your dialer supports. Both work the same way.
What if the transfer can't pass the consumer's caller ID?
Email support@leaddistro.ai. We can set you up with a dedicated tracking number per lead so the match doesn't depend on the caller ID.
How long do I have to bridge the call after sending the details?
48 hours. In a warm transfer the call usually follows within seconds, so this is plenty of room.
Does my buyer get the caller's details too?
Not yet. For now the details are attached to your call record for your reporting and disputes. Sending them into the buyer's own system alongside the call is a planned follow-up.
How is a passed versus an unqualified call billed?
Set the destination to bill when the call connects, so every passed transfer bills. If a transfer isn't qualified, refund that call and it shows as Returned.

If you have any questions, send us an email at support@leaddistro.ai