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
Two URLs + an auth header, once
Your lead types load live from your API
Only the relevant parts of the chat — nothing more
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.
Two-way, not one-way
Leads flow out to your system, and your system's own events flow back the other way:
- Your records start journeys. A lead created, sold, lost or gone quiet — or a service due, a price drop or a birthday — can start the right WhatsApp follow-up automatically. Events are safe to repeat: the same one never runs twice.
- WhatsApp on your lead screen. Drop our snippet on the record and your staff see the last 10 messages, the customer's consent, whether the 24-hour window is open and who owns the chat — with Load older messages and a link into the full conversation.
- Everything is written back. Messages sent from the lead screen, consent recorded, and outcomes like sold or lost all land on the record as notes, so the history lives where your team already looks.
Step 1 — Register the integration
Dashboard → Lead Settings → Add LMS. You provide:
| Field | Purpose |
|---|---|
| Create Lead URL | We POST completed leads here (required) |
| Lead Types URL | GET endpoint we call live when an agent opens the lead form (optional but recommended) |
| System / Integration ID | Your identifier for this tenant — echoed in every payload so one endpoint can serve many clients |
| Auth header | Name + 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:
[
{ "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
{
"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:
{ "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