Operational

Ori Documentation

Platform docs for building, running, and operating Ori voice agents.

Ori is a real-time voice-AI platform. It answers and places phone calls, holds a live speech-to-speech conversation against a bot you configure, and hands back a fully recorded, transcribed, and dispositioned call record — at fleet scale.

These docs are split into two tracks. Pick the one that matches what you came here to do.

What Ori does

Every call — inbound or outbound — runs the same loop inside a single worker: speech-to-text → language model → text-to-speech, with voice-activity and turn detection deciding who's speaking. When the call ends, the worker uploads the recording and returns a complete record: transcript, analysis, quality-control findings, and a disposition.

The design rule underneath everything is a clean split between two planes.

The control plane — Console, Backend, and the data layer — owns everything durable: bots, campaigns, and every call record. The runtime plane — Dialler and Voice fleet — does the heavy real-time work but keeps no long-lived state; it re-fetches config at the start of every call. That one property is what lets the fleet scale out and makes a crashed worker cost you exactly one call.

The four services

Console

The operator dashboard — bot builder, campaign builder, call logs, reports, and settings. A React single-page app.

Backend API

The control plane and source of truth — auth, bots, campaigns, per-call config, durable records, and CRM push. Python · FastAPI.

Voice fleet

The runtime workers that run the live conversation and the speech pipeline — one call per worker. Python · FastAPI · Pipecat.

Dialler

Outbound campaign execution — predictive pacing, retries, answering-machine screening, and attaching answered calls to the fleet. Python · asyncio.

The life of a call

A call begins

The Dialler places a paced outbound campaign call, or a customer dials in to a configured number. Both arrive at the telephony plane.

A worker picks it up

The call lands on exactly one free fleet worker, which immediately asks the Backend for that bot's runtime config — prompts, voice settings, tools, and CRM data.

The conversation runs

Inside the worker, the speech pipeline runs the loop — STT → LLM (with tools) → TTS — while the audio is recorded.

The call is finalised

The worker uploads the recording and hands back a complete result: transcript, analysis, QC findings, and a disposition. The Backend stores it and can push it to your CRM.

Where to go next

On this page

Ask AI

Hi — I'm the Ori docs assistant. Ask me anything about building, running, or operating Ori.

Answers come from these docs · AI can make mistakes.