Embedded voice for vertical CRM & DMS
Put a voice copilot in your product in weeks, not quarters
The job gets written up while your user is still on the phone — and saved only when they approve it.
A finished request, not a recording to retype
Your people approve before anything is saved
One integration, all your customers, your brand
Running in production at okeep.auto — our own vertical CRM, on this exact integration.
Running a workshop, not building software?
See okeep.auto — a ready-made system with the voice copilot built in →
Four ways to put a phone line in your product
Build it yourself
the phone line is on youA generic voice platform
the data model is on youA white-label agent
your user gets a recordingokeep.voice
your user gets the jobYour database, your UI, your customers
A conversation layer, not a CRM. We never sit between you and your customer.
The call — your number or ours
↓
okeep.voice — listens, writes, handles corrections
↓
your product, in real time
↓
your database, your interface, your customers
↓
your user approves — then it is saved
Every call, on your terms
09:12Sarah Mitchell is calling — known client, Ford Focus
ringingDan and Chris — today's duty roster
answeredDan picks up; the caller card is already on his screen
in callissue: "knocking at the front" → suspension diagnostics
correction"not Tuesday — Thursday" · the date updates itself
savedDan approves · work order #2847 in your system ✓
who ringsa roster by day, hours and nights — one person can step out
before pickupwho it is, which vehicle, what is still open
as they speakthe job fills in live, corrections included
after hoursthe bot takes it instead of voicemail
The copilot is the product. The bot is the fallback.
74% of enterprises have already switched off a customer-facing AI agent. So the bot is the fallback — never the product.
IN BUSINESS HOURS
Copilot — your user talks, we type
Invisible to the caller.
- you decide who rings, and when
- the caller card lands before they answer
- the form fills in live — what your user typed is never overwritten
OPTIONAL MODULE · AFTER HOURS
Autopilot — the bot takes the call
A polite conversation instead of voicemail.
- takes bookings and time slots
- reports job status
- takes a message — and your team gets notified
WHITE-LABEL · THREE NPM PACKAGES
One hardened vertical, not a blank canvas
Our automotive intake, running in production. Other industries are on the roadmap — working in one? Let’s talk.
- a small adapter on your side — implement what you need, skip the rest
- drop-in React components for the call card and the live form
- runs on your telephony or ours
// your backend implements the handlers you need; // the ones you skip return 404 — that is legal import { createVoiceAdapter } from '@okeep/voice-node' export default createVoiceAdapter({ secret: process.env.VOICE_ADAPTER_SECRET, handlers: { callerInfo: ({ phone }) => crm.findClient(phone), createBookingRequest: (b) => crm.inbox.add(b), callDraft: (ev) => ws.push(ev), /* …8 more: ringing, started, ended */ }, })
See it on a live call
We’ll call the demo line while you watch a job write itself. No card, no procurement — a test tenant on the same day.