Skip to main content

Sending Leads In

Push leads into ABC Sales AI from your own systems (forms, CRMs, landing pages) with the lead intake endpoint:

POST /v1/webhooks/leads
Inbound vs outbound

This is the inbound path: you send leads to ABC Sales AI. It is different from Webhooks, which is the outbound path where ABC Sales AI notifies your system about events.

Request

curl -X POST "https://api.abcsalesbot.com/v1/webhooks/leads" \
-H "Authorization: Bearer $ABC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Doe",
"email": "jane@example.com",
"phone": "+60123456789",
"id": "your-external-id-123",
"source": "landing-page",
"tags": ["pricing-page"],
"timezone": "Asia/Kuala_Lumpur",
"locale": "en",
"currency": "MYR",
"custom_fields": { "plan_interest": "scale" }
}'

Fields

FieldRequiredNotes
nameYes2 to 100 characters.
emailNo
phoneNoUp to 50 characters. Unparseable numbers are kept raw and tagged for review rather than rejected.
idNoYour external lead ID (up to 50 chars). Used as the upsert key, so resending the same id updates the existing lead instead of creating a duplicate.
naver_line_idNoLINE user ID, used as a lookup/upsert identifier for LINE-channel leads. Takes precedence over phone when both are supplied.
sourceNoFree-text source label.
tagsNoArray of strings.
timezone, locale, currencyNo
custom_fieldsNoArbitrary JSON object.
automations, user_assignmentsNoSubscribe the lead to automations / assign users on creation. See the API Reference.

Response

The endpoint processes leads asynchronously and returns 202 Accepted once the payload is queued (it may return 200/201 when processed synchronously). The lead is created or updated out of band.

Because id is an upsert key, sending the same external id again is safe and idempotent.

Rate limit

This endpoint is rate limited to 300 requests per minute per company. On exceed it returns 429 with a Retry-After header. See Rate Limits.