Buyer integration docs.
Everything you need to receive leads from Conduit: integration types, the payload we POST, filters, and a test endpoint you can hit right now.
Overview
Conduit routes qualified, consented leads to your stack in real time. You can receive leads three ways: an internal portal queue, an HTTPS webhook to your CRM, or a managed integration we build with you.
Integration types
- internal — leads land in the buyer portal queue. No endpoint required.
- webhook — Conduit POSTs JSON to your
endpoint_urlwith an auth header you choose. - managed — we map fields, sign requests, and operate the integration end-to-end.
Each delivery is logged with status, response code, response body, and attempt count. Failed deliveries can be retried from the admin console.
Delivery payload (webhook)
If you have not configured a custom payload_template, we POST the following JSON shape. Templates can rename, omit, or nest any field.
{
"lead_id": "9c1e...-uuid",
"vertical": "solar",
"score": 78,
"score_band": "A",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "5551234567",
"zip": "78701",
"state": "TX",
"form_data": { "homeowner": "yes", "monthly_bill": 220 },
"trustedform_cert_url": "https://cert.trustedform.com/...",
"jornaya_lead_id": "abcd-1234-...",
"delivered_at": "2026-05-15T14:22:09.123Z"
}Respond with HTTP 2xx to accept. Any non-2xx (or a JSON body containing { "accepted": false }) is treated as a reject and may be re-routed to the next eligible buyer.
Filters & caps
- accepted_states — array of US state codes. Empty means all states.
- accepted_vertical_ids — restrict to specific verticals.
- min_score — only leads scoring at or above this threshold.
- daily_cap / monthly_cap — hard caps Conduit enforces on your behalf.
- priority — lower numbers route first when multiple buyers are eligible.
Public intake API
Brand sites and embedded forms post to this endpoint. Use it to test the end-to-end pipeline against a brand you have access to.
POST /api/public/leads
Content-Type: application/json{
"brand_slug": "acme-solar",
"consent_acknowledged": true,
"form_data": {
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "555-123-4567",
"zip": "78701",
"state": "TX",
"homeowner": "yes",
"monthly_bill": 220
},
"attribution": {
"source": "google",
"medium": "cpc",
"campaign": "solar-tx-q2",
"utm": { "utm_term": "solar quotes texas" },
"referrer": "https://www.google.com/",
"landing_url": "https://acme-solar.com/quote"
},
"trustedform_cert_url": "https://cert.trustedform.com/...",
"jornaya_lead_id": "abcd-1234-..."
}Successful responses include { "ok": true, "lead_id": "..." }. Validation errors return 400 with a descriptive errorfield. Payloads larger than 32 KB are rejected with 413.
Test your endpoint
Once your buyer record has an endpoint_url, an admin can send a synthetic test lead from Admin → Buyers → your buyer → Test delivery. The full request, response status, and body are saved to your delivery log so you can debug field mapping without putting a real consumer at risk.
Security
- All deliveries are HTTPS only. Self-signed certificates are rejected.
- Auth secrets are stored encrypted and referenced by name; they never appear in payloads or logs.
- Consent text, TrustedForm cert, and Jornaya LeadiD are captured and retained for audit.
- PII access is logged and gated by role (admin, compliance, buyer).