“Implementing their AI agents completely transformed our customer support pipeline. Hands down the best tech integration we’ve done this year.”
Sarah Jenkins
CEO at NexaFlow
OraFacePass is a smart-lock company. Evolvv AI built them an enterprise-grade AI outbound voice agent that speaks in a real, cloned human voice and places 250,000 calls every day, wired directly into their stack from CRM to calendar. The build covers three surfaces. An outbound agent pulls contacts straight from their CRM, validates every record, then pushes clean data into the AI voice engine. An inbound agent answers incoming calls, guides callers, and automatically sets up calendar invites when they want to speak with a manager. A chatbot answers questions about OraFacePass products on demand. A built-in detector flags whether an outbound call is being shown as spam or scam, protecting caller reputation. At this scale an AI voice agent is mostly an engineering problem rather than a scripting one: record hygiene before dialling, a feedback signal on how calls are being labelled, and calendar writes that stay correct when a call drops mid-sentence.
High-volume outbound calling is a data problem before it is a voice problem. A contact list pulled from a live CRM is rarely clean: the same person can appear as several records, and numbers arrive in inconsistent formats. An agent that dials that list unfiltered burns calls on records never worth dialling, and damages the reputation of the numbers it calls from.
For a hardware business, a phone number is a shared surface. A sales motion and a support motion usually run down the same line: outbound activity produces callbacks, and product questions arrive from people who already own the device. Outbound, inbound and chat were all delivered for OraFacePass.
An enterprise AI voice agent of this kind has to separate two kinds of logic. The language model handles what is genuinely open-ended: understanding what a caller said, choosing what to say next, answering a product question in speech. Anything with a consequence — which contact is dialled, when a retry is permitted, whether an invite is written — belongs in deterministic code rather than in the model. A model is a poor place to keep state and a worse place to keep guarantees.
The workable pattern is a state machine per call rather than one long prompt. Each call carries a position — dialled, connected, completed — written back as it moves. Calls drop mid-sentence, so every write must be safe to repeat: creating the same invite twice has to leave the same result as creating it once. The CRM should stay the source of truth, because a transcript records a conversation and the CRM records what happened.
In a real-time AI voice agent, a single conversational turn has a budget about the length of an awkward pause. Inside that budget the agent transcribes what was said, decides the person actually finished rather than paused for breath, runs inference, and synthesises audio. Miss the budget and the call does not sound slow, it sounds broken. Barge-in matters as much: an agent that cannot be interrupted reads as a machine however good the voice is.
Caller reputation is an engineering discipline, not a branding concern. Carrier-side analytics attach labels such as "Spam Likely" to a phone number based on how it behaves: calling patterns, call durations, how quickly recipients hang up. The label attaches to the number rather than the message, and is invisible from the calling side unless something is deliberately watching for it.
Volume is not a dialer setting. It is the product of concurrency ceilings, call duration, retry policy and legitimate calling windows across time zones. The failure modes are specific: answering machines mistaken for humans, background noise convincing the system a caller stopped talking, a calendar API rate-limiting during a burst, a CRM write failing quietly and taking a booking with it. Without transcripts, event logs and dispositions, none of these are findable, and a voice system without observability is not fast, it is unfalsifiable.
The public shape of this build is a CRM the pipeline pulls from, a record-validation layer sitting in front of the voice engine, a spam and scam signal on outbound calls, and a live calendar integration. Across its voice and automation work Evolvv AI builds on Claude and Retell at the agent layer, n8n for orchestration, and HubSpot, Clay, Apify and Phantombuster on the data side. The pattern that holds a system like this together is boring and worth stating: one system of record, validation before anything is queued, deterministic code around every consequential write, and enough logging that a single bad call can be found and explained.
Evolvv AI is an AI agency based in Brooklyn, New York. Evolvv AI builds custom AI agents and AI agent systems and runs business process automation for US small and mid-sized businesses, alongside AI SaaS and app development, web development, and IT and business consulting. Eight Evolvv AI voice agents are live and speakable in the browser on the homepage voice agent demos: Leo answers as a receptionist, Issac books appointments, Olivia qualifies leads. Email info@evolvvai.com, call +1 914 369 5427, or book a 30-minute call.
Yes, and building them as one system rather than two is usually the point. Outbound calling generates callbacks, so the same line receives people returning a missed call alongside existing customers with product questions. For OraFacePass, Evolvv AI built an outbound voice agent, an inbound agent that answers incoming calls and sets up a calendar invite when the caller wants to speak with a manager, and a chatbot that answers product questions on demand. The engineering difficulty sits in pacing rather than in the split. Outbound volume is capped by how many calls the telephony layer carries at once, how long an average call lasts, how retries are scheduled, and which hours are legitimate to call in each time zone. Push past those limits and answer rates fall while the reputation of the number degrades — the same number inbound callers are trying to reach. Pace the outbound queue against real concurrency, and the inbound side stays reachable.
Carrier-side analytics decide the label, and they decide it about the number rather than the message. The inputs are behavioural: how many calls a number places, how long those calls last, how quickly recipients hang up, how often people report it. A number that dials a stale or duplicated list accumulates short calls and fast hang-ups, which is exactly the pattern the analytics look for. The label is also close to invisible from the calling side. Calls still connect, they are simply answered less often, and nothing in the call log says why. A system operating at volume therefore needs a deliberate signal telling it how its own outbound calls are being displayed, which is what the detector built into the OraFacePass system reports. Rotating through fresh numbers is the common reflex, but it spreads reputation across many numbers instead of building it on a few, and breaks callback continuity for anyone trying to reach you back.
Yes — and booking is one of the harder parts to make reliable. The OraFacePass inbound agent answers incoming calls, guides the caller, and automatically sets up a calendar invite when they want to speak with a manager. Making that dependable takes more than an API call. Any agent doing this has to resolve the caller's time zone from the conversation, read live availability rather than a cached copy, and avoid double-booking when two calls land on the same slot seconds apart. It also has to be idempotent: a phone call can drop mid-sentence, so creating the invite twice must leave the same result as creating it once. The easier design, promising a callback and leaving a note for a human, is much worse to receive, because it hands the scheduling back to the person who called and depends on someone remembering to act on it.
Let’s put AI to work in your business. Start the conversation and see how far we can go, together.
Book a call