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.

Four ways to put a phone line in your product

Build it yourself

the phone line is on you

A generic voice platform

the data model is on you

A white-label agent

your user gets a recording

okeep.voice

your user gets the job

Your 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

okeep.voice — live
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
Talk to us about your vertical
// 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.