Your CRM,
beside every chat

Agents open a conversation and see who they're talking to — account status, order history, VIP flags — pulled live from your CRM. No tab-switching, no copy-pasting phone numbers.

The lookup lifecycle

1
First open: phone lookup
We GET your Lookup URL with the customer's number
2
Your ID gets stored
We read the id field and link records permanently
3
Every open after: direct fetch
GET by your customer ID — faster, exact, cached 1h

Setup — one form, three URLs worth knowing

Dashboard → CRM → Add CRM. URL templates support {phone}, {id} and {crmTenantId} placeholders:

Example configuration
Lookup URL:    https://api.your-crm.co.za/customers/search?tenant={crmTenantId}&phone={phone}
Customer URL:  https://api.your-crm.co.za/customers/{id}?tenant={crmTenantId}
CRM Tenant ID: acct_9876
Auth header:   Authorization: Bearer sk_live_…
ID field:      id
Key contact:   isKeyAccount  →  auto-tag "key-contact"

Any JSON response works — the whole object renders in the agent's flyout as a clean field table. Arrays are fine too; we read the first element.

Key-account auto-tagging

Set the Key Contact field to any top-level boolean-ish property in your response (true, "yes", 1 all count). The moment a flagged customer's data loads, ChatReach tags them — the tag shows in the conversation list, on their profile, and can trigger tag-based automations and campaign segments. VIPs get VIP treatment without anyone remembering to do it.

Your response
{
  "id": "CUST-2210",
  "name": "Xee Holdings (Pty) Ltd",
  "accountManager": "Priya N.",
  "lifetimeValue": 482000,
  "openOrders": 3,
  "isKeyAccount": true        ← auto-tags "key-contact"
}

Two-way: query and write back

Your CRM can also reach into ChatReach — the same API key works:

CRM-facing endpoints
# Contact profile + WhatsApp analytics (works by phone OR your CRM ID)
GET  /api/crm/contacts/27821234567
→ { "id": "…", "phone": "27821234567", "name": "John Smith",
    "tags": "key-contact", "optedIn": true, "crmCustomerId": "CUST-2210",
    "totalMessages": 142, "lastSeen": "2026-07-11T08:15:00Z", "leads": 3 }

# Push your customer ID proactively (skip the phone lookup entirely)
POST /api/crm/contacts/27821234567/link
     { "crmCustomerId": "CUST-2210" }

# Internal notes — read what agents wrote, write from your side
GET  /api/crm/contacts/27821234567/notes
POST /api/crm/contacts/27821234567/notes
     { "note": "Renewal due 1 Sept — offer loyalty rate", "author": "CRM Sync" }

Notes written by either side appear in the agent's flyout instantly — one shared memory about the customer.

What agents actually see

A flyout beside the chat with: the contact's profile and tags, WhatsApp analytics (messages, leads, first/last seen), your CRM data as a field table with a sync timestamp and refresh button, an AI conversation summary button, and the shared notes stream with quick-add. Everything about the customer, one click away, zero context-switching.

Give your agents X-ray vision

Any CRM with a REST API connects in minutes. Free trial includes the full CRM sync.

Start Free Trial