Building a voice agent used to mean a six-week procurement cycle, two carrier contracts, and a sprint with the ML team. Our quickstart compresses that into five minutes. This post walks through every step, with the exact prompt and the URLs you'll need.
woah
What you'll build
A working inbound voice agent that answers a phone number, qualifies the caller's intent, books a calendar slot, and writes the result back to your CRM. End-to-end latency under 200ms per turn.
- meow
If you've never used OmniDimension before, grab a free account at https://omnidim.io and follow along. No credit card required for the first 30 minutes of call time.
Before you start
You need:
- A working email — for signup and the dashboard
- 30 seconds of clean audio if you want a custom cloned voice (optional)
- A phone you can call from to test
That's it. We provision a test number on signup so you don't need to bring your own carrier.
Step 1 — Spin up an agent
Open the dashboard, click New agent, and paste the prompt below. Don't overthink it — you can edit anything later.
You are a friendly inbound receptionist for Acme Realty. Greet the caller, ask whether they want to buy, sell, or rent, then offer to book a tour. Stay under 15 seconds per turn. Never invent listings.
Click Save and you'll land on the agent's detail page. Look for the Test button in the top-right — that's the in-browser web call. Click it.
What happens behind the scenes
When you click Test, three things start in parallel:
- The STT pipeline warms up — a
deepgram-nova-2connection opens - The LLM (Claude Haiku 4.5 by default) preloads with your system prompt
- A TTS voice (
Sarahfrom our library) gets a warm worker pool
The first audio packet leaves our edge in roughly 180ms after you stop speaking. That's why agents on our platform don't feel like IVRs.
Step 2 — Connect a real phone number
In the agent detail page, scroll to Telephony and pick:
- Country — pick your country
- Number type —
Local,Toll-free, orMobile - Carrier — leave on
OmniDimension(we'll provision a number for you)
Click Provision. You get a real phone number in about 90 seconds.
Pro tip: for sandbox testing, use the Test button instead. It runs in your browser, no real PSTN costs, and gives you the full replay UI for debugging.
Step 3 — Wire your CRM
ge, click Integrations → pick your CRM → paste your API key. The next call you take will write a contact, a deal, and a call note back to the CRM automatically.
What the CRM gets
A typical inbound call produces:
- A new
Contactwith phone + name + intent - A new
Deal(orOpportunity) tagged with the call recording URL - A
Notecontaining the full transcript and our extracted summary
You can map any of these via the Field mapping UI if your CRM has custom fields.
Step 4 — Test and iterate
Two ways to test:
- Click Test in the dashboard — talks to the agent in your browser
- Call the real number from your phone — exercises the full PSTN path
Both write to the same Replay tab. Replay shows the audio waveform, the live transcript with per-token confidence, the LLM tokens streaming in, and the latency breakdown. If a turn felt slow, Replay tells you exactly which stage was the culprit.
Replay turned "the agent sounded weird" into a 30-second diagnosis for our team. We'd never go back.
Step 5 — Go live
When you're happy with the prompt and the CRM integration, flip the Live toggle on the agent. Your number is now answering real calls 24/7.
What changes when you go Live
- Concurrency limit lifts — default 50 simultaneous calls
- Calls hit your real CRM (no sandbox mode)
- Billing meters start ticking — see https://omnidim.io/pricing for current rates
That's it. Five minutes, one agent, zero infrastructure work on your end.
Where to go next
for enterprise software. The agents you build today will be answering ten thousand calls a day in six months. Start small, ship fast, iterate from real call data.
Happy building. If you ship something cool, post in [r/OmniDimension](https://www.reddit.com/r/OmniDimension/) — we love seeing what people build.
Comments