Platform

A platform engineered for production voice.

Not a no-code toy. Not a black box. A serious tool for serious operators — with the depth scripting needs and the speed real-time voice demands.

P/01

Conversation engine

A goal-oriented dialogue manager that owns the flow. You declare the goal, the slots and the intercepts; the engine fills slots with validators, handles interruptions, silence, repetition, language enforcement and graceful endings. 23 intercept events let scripts react to every meaningful moment of a call.

P/02

Realtime + Cascade voice

Two execution modes the engine switches between in-call: S2S (OpenAI Realtime or Gemini live audio) for natural turn-taking, and Cascade (Deepgram STT → LLM → Cartesia TTS) for cost-controlled scenarios. Hard 800ms p95 from end of user speech to first audio on the hot path.

P/03

AI-first onboarding

Paste a website URL. The platform crawls it, drafts the agent, and runs a Copilot dialog to confirm goals and adapt the industry pack. From URL to first live call inside one working session — no blank prompts, no engineering ticket.

P/04

Plugin SPI (open + typed)

Eight typed plugin categories — Telephony, LLM Realtime, LLM Text, Booking, Calendar, CRM, Notification, Storage. Plugins expose tools to the LLM with conditional availability based on slot state. Errors surface as structured "service unavailable" results, not exceptions. Write your own in an afternoon.

P/05

Scripting & debugger

TypeScript runs inside an isolated-vm sandbox with no filesystem, no process, network only through the SDK. 50ms hot-path / 500ms warm-path / 32MB budgets per handler. Monaco editor with TypeScript hints, inline validation and version history. Replay any past Session deterministically — set breakpoints, watch variables, inspect state, re-run after a code edit.

P/06

Knowledge base & crawler

Index a website and the PDF datasheets it links to. Heading-aware chunking, OpenAI embeddings, Qdrant retrieval with tenant + project filtering — all inside a 100ms warm-path budget. The agent reads from your data, never invents facts. Reindex on demand or auto-refresh nightly.

P/07

Inbound + outbound + web test caller

Inbound on Twilio SIP or your own trunk. Outbound by API (POST /v1/calls, idempotency-key, scheduled dispatch) or CSV upload (per-project pacing, batch progress UI, AMD detection). Web test caller in the browser — develop and iterate without a phone number.

P/08

Webhooks (in + out)

Outbound: session.started, session.ended, session.failed, goal.achieved, slot.filled, intercept.triggered, intent.classified, outbound.batch.completed — HMAC-signed, at-least-once delivery, exponential backoff up to 6h. Inbound: POST /v1/projects/:id/webhooks/:name fans the payload to every active Session as an on_webhook_received event.

P/09

Observability you can act on

Structured JSON logs (ClickHouse, 90d), Prometheus metrics, Grafana dashboards for voice-latency budget breakdown and session outcomes, OpenTelemetry tracing into Langfuse for prompts / tool calls / token counts. Per-session debug mode and per-session email digest land in the right inbox automatically.

P/10

Billing & metering

Outcome-based revenue (success / real conversation / spam) with optional overage minutes, plus crawler hours and chat tokens. Prepaid wallet by default; postpay net-30 on request. Per-tenant rate cards. Sandbox mode marks every charge is_simulated until you flip the switch.

P/11

Multi-tenant security

Every business-data table carries tenant_id; the Repository pattern injects it on every query and a lint rule blocks direct ORM access. Magic-link auth (6-digit code), JWT with 15-min expiry + 30d refresh rotation. Cross-tenant project membership for agencies that operate multiple clients. AES-256-GCM column encryption for API keys, plugin secrets and webhook signing keys. 7-year audit log retention.

P/12

EU residency

All primary data — sessions, recordings, transcripts, knowledge base — lives in Hetzner data centres in Germany and Finland. Backups stay in the EU. Sub-processor list public. EU-signed DPA. When a provider sits in the US (OpenAI, Anthropic, Stripe) the transfer is covered by EU SCCs plus supplementary measures including content minimisation.

Numbers our customers care about

< 800ms

voice p95 latency

70%+

goal completion on qualified calls

24/7

inbound coverage with no headcount

20+

languages supported on the agent

Inside the product

Live operations dashboard

Calls in flight, today’s outcomes, goal completion, latency, conversion. The screen you keep open all day.

aitelier.org · live operations dashboard
Live operations dashboard

Scenario editor with debugger

Monaco-based. Step through a real recorded session. Edit a line, replay, ship.

aitelier.org · scenario editor with debugger
Scenario editor with debugger

Session timeline

Every call as a timeline — transcript, LLM calls, tool calls, latency. Click any event to inspect.

aitelier.org · session timeline
Session timeline

Built on documentation that exists.

Architecture, domain model, conversation engine, plugin SPI, scripting cookbook, runbooks, ADRs. Read before you commit.

Open the documentation
// scenarios/restaurant-booking.ts
export const scenario = defineScenario({
  goal: 'BOOK_TABLE',
  slots: {
    partySize: int().required(),
    when:      dateTime().required(),
    name:      string().required(),
    notes:     string().optional(),
  },
  intercepts: {
    'caller.silent': retryGracefully(),
    'caller.angry':  handoffToHuman(),
  },
  tools: {
    checkAvailability: bookingPlugin.availability,
    createBooking:     bookingPlugin.create,
  },
});

Stop missing calls. Stop chasing leads. Start shipping.

White-glove onboarding. 30-day pilot. Cancel anytime.