P/01Conversation 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/02Realtime + 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/03AI-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/04Plugin 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/05Scripting & 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/06Knowledge 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/07Inbound + 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/08Webhooks (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/09Observability 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/10Billing & 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/11Multi-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/12EU 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.