Lead intake
POST https://app.dialdozer.com/hooks/lead_intake.php
The dedicated intake endpoint accepts JSON or form data and requires leads:write.
curl -X POST 'https://app.dialdozer.com/hooks/lead_intake.php' \ -H "X-Api-Key: $DIALDOZER_API_KEY" \ -H 'Content-Type: application/json' \ -d '{ "first_name": "Alice", "last_name": "Johnson", "phone": "+1 555 123 4567", "email": "alice@example.com", "list_id": 1001, "source": "website", "hopper": true }'Fields
Section titled “Fields”| Field | Type | Required | Notes |
|---|---|---|---|
phone | string | yes | At least 10 digits; normalized to last 10 |
list_id | integer | conditional | Must exist; falls back to configured inbound list |
first_name, last_name | string | no | Truncated to safe storage lengths |
email | string | no | Invalid addresses are discarded |
address1, city, state, postal_code | string | no | Contact location |
source | string | no | Attribution label |
hopper | boolean | no | Enqueue a new lead for dialing |
Deduplication
Section titled “Deduplication”Intake deduplicates by the last 10 phone digits inside the selected list. A duplicate is successful and returns the existing ID:
{ "ok": true, "lead_id": 42, "deduped": true }A new lead syncs contact channels, fires the new_lead workflow trigger, emits lead.created, and enters the dial hopper when requested.