The three common delivery methods
- Webhook (JSON POST): Provider posts the lead to your HTTPS endpoint within seconds of capture. Standard for real-time inventory.
- CSV download: Provider generates a CSV file in the buyer dashboard. Standard for aged inventory and batch orders.
- API (pull): Buyer\'s system calls the provider\'s API to pull leads on a schedule. Less common but useful for heavy-enterprise integrations.
Webhook specifics
A well-configured webhook delivery has four characteristics:
- Sub-five-second end-to-end latency. From consumer click to record landing in the buyer\'s dialer or CRM.
- JSON payload with clearly named fields. first_name, last_name, phone, email, dob, state, zip, consent_timestamp, source_url, trustedform_url (where applicable).
- HTTPS with TLS 1.2+. Required for PII transmission.
- Retry on failure. If the buyer endpoint is momentarily unavailable, the provider retries with exponential backoff.
Ringy integration
Ringy accepts incoming webhooks with field names matching its lead intake schema. ClosrLeads payloads map cleanly to Ringy\'s first_name, last_name, phone, email, state, and custom field slots. A delivery spec is available from support on request.
GoHighLevel integration
GoHighLevel accepts webhooks on custom contact fields. Our default payload maps to the standard GHL schema plus agreed-upon custom fields for coverage_interest, consent_timestamp, and source_url. Works with GHL V1 private integration tokens and V2 workflow triggers.
Custom agency CRM integration
Any CRM that accepts a JSON POST can receive leads. If your CRM accepts only form-url-encoded requests, we can configure the webhook transformer to post form-encoded instead of JSON. If your CRM requires an API key header, that can be included.
CSV specifics
CSV delivery is the standard format for aged inventory and bulk orders. A well-structured CSV includes:
- First-row headers matching documented field names.
- One record per row.
- UTF-8 encoding (avoids import issues with special characters).
- Consent timestamp in ISO 8601 format.
- Source URL as a full URL, not a slug.
- Record ID in the first or last column for replacement disputes.
API pull specifics
Less common in the insurance lead space. Useful for enterprise buyers with custom routing infrastructure. ClosrLeads supports API pull on request for agencies with specific integration requirements. Standard webhook push is the default because it is faster end-to-end.
Field mapping checklist before you go live
- Receive the provider\'s payload spec.
- Map every provider field to a CRM field, including new custom fields where needed.
- Test with a provider-sent sample payload (not a live consumer).
- Verify the consent fields land in the CRM in a queryable location.
- Confirm duplicate detection is enabled in the CRM.
- Set up downstream routing: dialer queue, agent assignment, SMS trigger.
- Go live with a small volume (10-25 records) and monitor for mapping drift.
- Scale up only after mapping is verified on 100% of test records.
Common integration mistakes
- Not mapping the consent fields. You will regret this during your first TCPA dispute.
- Relying on phone number as deduplication key without normalization. 555-123-4567 and 5551234567 are the same number; your CRM may treat them as different contacts.
- Not logging the full raw payload somewhere. When something looks wrong, the raw log is what you need to debug.
- Building the dialer routing on a CRM task queue that waits for an agent to click. That gives away the speed advantage of real-time.
How ClosrLeads delivers
Real-time leads post by webhook (JSON) to your CRM or dialer, with CSV mirrors written in parallel for audit and recovery. Aged leads are delivered as CSV from the buyer dashboard. Webhook payloads match Ringy and GoHighLevel schemas out of the box; custom mappings are available for other CRMs. TLS 1.2+, retry on failure, and full consent-field inclusion are standard on every real-time product.
Written and fact-checked by The ClosrLeads Team.