Turn every customer call into verified CRM data
A white-label voice copilot for your CRM: it listens to the call and fills the work order live — a human approves before anything is written.
Reference implementation live in production at okeep.auto — from the ring to a ready work order.
Three things happen on their own
A client calls
Before you pick up, the panel shows who it is and what it's about.
AI takes the notes
You hold the phone — the issue, service and date fill in by themselves.
Request ready
You hang up — it's all in the system, the client gets an SMS.
Your database, your UI, your customers
okeep.voice is a conversation layer — not a CRM replacement, not a data migration, not taking over your customer relationship.
An event stream, not a black box
Every call is a real-time event stream:
The copilot is the core product
Two people just talk — the system turns the conversation into CRM structure in the background. The autonomous bot is an optional fallback module, not the point.
Copilot — you talk, AI writes
Invisible to the caller.
- caller card before you answer
- the form fills in live
- duty roster
Autopilot — the bot takes over
A polite conversation instead of voicemail.
- takes bookings and time slots
- tells repair status
- takes a message
Your users are not at the screen? Nothing gets lost
Hands full
Answer on the move — the request records itself anyway.
Can't pick up
The bot takes the booking or a message. Your team gets notified.
Nights, weekends, holidays
Autopilot works after hours. Everything's waiting in the morning.
Three callers at once
Every call gets its own transcript and its own request.
Ship a voice copilot in days, not months
Telephony adapters, Polish-tuned transcription, live form-filling, correction handling and an approval flow — one SDK. You keep your UI and your customers.
- a tenant + a small adapter API on your side
- drop-in React components: call badge, live-fill hooks
- automotive domain pack: VIN, plates, makes, defect vocabulary
// your backend implements ~10 callbacks, // okeep.voice does the rest import { voiceAdapter } from '@okeep/voice-node' export default voiceAdapter({ resolveCaller: (phone) => crm.findClient(phone), createRequest: (draft) => crm.inbox.add(draft), publishEvent: (staff, ev) => ws.push(staff, ev), /* …call status, messages, schedule */ })
See it live
We'll call the demo line while you watch the form fill itself in — then let's talk integration.