WhatsApp leads,
delivered to your LMS

Agents spot an opportunity mid-conversation, tap once, pick a lead type, tick the relevant messages — and a structured lead lands in your system with full context.

How it works

1
You register your LMS
Two URLs + an auth header, once
2
Agent taps the lead icon in chat
Your lead types load live from your API
3
Agent picks messages for context
Only the relevant parts of the chat — nothing more
4
We POST the lead to you
Structured JSON with your system ID echoed

Leads are outbound only — ChatReach delivers to your system; it never becomes a second lead database you have to reconcile.

Step 1 — Register the integration

Dashboard → Lead Settings → Add LMS. You provide:

FieldPurpose
Create Lead URLWe POST completed leads here (required)
Lead Types URLGET endpoint we call live when an agent opens the lead form (optional but recommended)
System / Integration IDYour identifier for this tenant — echoed in every payload so one endpoint can serve many clients
Auth headerName + value (e.g. Authorization: Bearer …) attached to every call we make to you

Step 2 — Expose lead types (optional)

Your Lead Types URL should return either shape:

GET your-lms.co.za/lead-types → 200
[
  { "id": "lt_new_vehicle", "name": "New Vehicle Enquiry" },
  { "id": "lt_used", "name": "Used Vehicle Enquiry" },
  { "id": "lt_service", "name": "Service Booking" },
  { "id": "lt_parts", "name": "Parts" }
]

// or simply:
["Sales", "Support", "Partnerships"]

No Lead Types URL? Tenants define internal lead types in ChatReach instead — those leads fire the lead.created webhook and email the configured recipients.

Step 3 — Receive the lead

POST your-lms.co.za/leads ← ChatReach
{
  "integrationId": "your-system-id-for-this-client",
  "lead": {
    "leadId": "3c9d…",
    "leadType": "New Vehicle Enquiry",
    "leadTypeExternalId": "lt_new_vehicle",
    "contact": {
      "id": "…",
      "phone": "27821234567",
      "name": "John Smith"
    },
    "notes": "Interested in the 2026 model, needs finance, trade-in available",
    "conversationContext": [
      { "direction": "in",  "body": "Hi, do you have the 2026 model in stock?" },
      { "direction": "out", "body": "We do! Blue and silver available this week." },
      { "direction": "in",  "body": "Great — can I trade in my 2019?" }
    ],
    "createdAt": "2026-07-11T11:20:00Z"
  }
}

Respond with your lead's ID and we store the reference against the conversation:

Your 200 response
{ "id": "LMS-88412" }

Non-2xx responses mark the lead failed with your response body captured — visible to the tenant on their Lead Settings page, so delivery issues surface immediately.

Privacy by design

Agents explicitly tick which messages to include — the whole conversation is never shipped by default. That keeps unrelated customer chatter out of your CRM and keeps POPIA reviewers happy.

Ten minutes to your first WhatsApp lead

Two URLs and an auth header. That's the whole integration.

Start Free Trial