One console for the whole loop.
From audience to insights, built from four channel-agnostic primitives. Voice is the first surface the platform masters, not the foundation it rests on. The same model runs the logic, paces the run, enforces the rules, and reports what it achieved.
The model
Four primitives, one throughline.
Every program is the same shape: a logic, the people it runs against, the governed run that connects them, and the business result it produced. These objects are channel-agnostic. Voice is how we prove they work.
01 · Flow
The logic
A visual graph of typed nodes wired by exits. Speak, ask, branch, transfer, call an API, record a result.
02 · Audience
Who to reach
Imported contacts with the data columns your team brings, segmented and passed into the logic as variables.
03 · Automation
The governed run
One published flow against one audience, paced and scheduled, with compliance checked before every action.
04 · Outcomes
What it achieved
Declarative business outcomes, measured and explorable. Achievement in business terms, not raw throughput.
The Flow holds the logic of an interaction, decoupled from any one channel. The Audience is the people and the per-contact data the team owns. The Automation is the controlled act of running a flow against an audience inside a set of rules. Outcomes are the declared results the run was meant to produce. Read left to right, the four objects are the entire loop.
Flow: the logic
A visual graph of typed nodes.
Nodes are wired by their exits and ports. The graph is versioned and published, reusable and inspectable, with live diagnostics while it runs. It is a small but real programmability layer for people who do not write code.
Available today
01
Speak / TTS
Multi-voice, multi-language text-to-speech rendered at run time.
02
Ask / keypad
Capture keypad (DTMF) input and store it against the contact.
03
IVR menu
Branch on a menu choice into separate downstream paths.
04
Survey
Structured question sequences with recorded responses.
05
Conditional branch
Route on contact data or captured values via live expressions.
06
Delay
Hold the interaction for a defined interval, then resume.
07
Transfer to a person
Hand the live interaction to a human when the path calls for it.
08
Audio playback
Play a recording from your audio library inside the flow.
09
Outbound HTTP / REST
Call your own APIs through saved, authenticated connections.
10
Send email as a step in the flow through your own provider.
11
Record result
Mark a declared business outcome from inside the logic.
12
AI nodes
An AI category (AI speech, sentiment and intent) is reserved in the surface. On the path
A live expression engine evaluates templated {{ expressions }} at run time, so a branch can read a contact field, a captured keypad value, or an API response and decide what happens next. Non-engineers get real logic without writing code.
when: "{{ contact.balance > 0 and answer.key == '1' }}"
then: "node:payment_promise"
else: "node:closing_message"
Audience: who to reach
The people, and the data they carry.
Import contacts from CSV with the data columns your team owns. Segment them, and let that data flow into the logic as variables the flow can read and branch on.
Available today
- CSV import
- Bring contacts from your own systems. The platform does not own your list.
- Per-contact data
- Arbitrary columns your team defines, attached to each contact and addressable in the flow.
- Segmentation
- Slice an audience into the subset a given automation should run against.
- Data as variables
- Contact fields resolve inside
{{ expressions }}for branching, speech, and API calls.
Automation: the governed run
One flow, one audience, run under control.
An automation binds a published flow to an audience and runs it inside a defined envelope: how fast, when, how often, within which hours, and how it retries. Control of the live run stays with you.
Available today
Pacing
Set the rate at which interactions are attempted across the run.
Retry policy
Define how unreached contacts are re-attempted over time.
Schedule
Run immediately, at a scheduled time, or on a recurring cadence.
Calling window
Constrain attempts to a per-automation window of permitted hours.
Live pause, resume, and stop are honoured by the running engine, not queued for later. Execution is durable: a restart mid-run does not lose its place. The run resumes from where it was.
Outcomes: what it achieved
Measured in business terms.
Declare the outcomes a program is meant to produce (appointment booked, payment promised, survey completed) and an intelligence layer measures them. Analytics report achievement, not just dial counts.
Available today
Totals
Aggregate outcome counts across a program or a time range.
By type
Breakdowns per declared outcome, side by side.
Daily trends
Outcome movement over time, day by day.
Per-automation views
Achievement attributed to a single run.
Outcomes explorer
Drill into the records behind any number.
Achievement vs throughput
The question is what was accomplished, not how many were attempted.
Throughput tells you the machine ran. Outcomes tell you the work got done.
The engine
How one interaction runs.
Compliance is enforced in the execution path, before anything happens — not reconstructed in a report afterwards. Every interaction passes the same gate.
Check compliance first
Before any action: suppression and DNC, the contact's local-time window, per-contact frequency caps, and the tenant-wide live concurrency ceiling. On failure the interaction is skipped or rescheduled, and it never proceeds.
Act
Place the call over the customer's own telephony. The platform orchestrates; it is not the carrier.
Run the flow
Execute the graph step by step, resolving expressions and reading contact data as it goes.
Record
Write the disposition and outcome signals as immutable records for analytics and audit.
The gate is a real control in the path, not a setting that produces a warning later. A contact that fails a check does not get called.
Bring your own stack
You bring the providers. We orchestrate.
Connect your own telephony, AI and voice, email, CRM, webhooks, and APIs. Credentials are encrypted and test-connected before use. The platform does not resell a carrier — it conducts yours.
Available today
Telephony
Outbound voice runs over the customer's own carrier, on a supported PBX (3CX today).
AI / voice
Bring your own voice and speech providers.
Send through your own email provider as a flow step.
CRM
Push results into the systems of record you already run.
Webhooks
Signed, idempotent event delivery to your endpoints.
APIs
Saved, authenticated connections called from inside a flow.
Every connection is encrypted per tenant and verified with a test before it can run. Orchestration sits above your providers, so the platform stays neutral to who you buy from.
Your workspace
In-tenant workspace controls.
A per-tenant, in-app workspace where a team manages everything it owns. This is in-app self-service for a provisioned workspace — public signup, billing, and plans are a separate, forward-looking direction.
Available today
Teams
Organise the people in your workspace.
Roles
Scope what each member can see and do.
Integrations
Manage your encrypted provider connections.
Compliance settings
Configure the rules the in-path gate enforces.
Security
Session and access controls for the tenant.
Audio library
Store and reuse recordings across flows.
Developer access
API keys, request logs, usage, and webhook tooling. See the developer surface.
Provisioning
Workspaces are operator-provisioned today, sales-assisted and bring-your-own-provider. On the path public self-service signup, billing, and plans.
Channel-first, not channel-bound
The primitives do not belong to voice.
Flow, Audience, Automation, and Outcomes are channel-agnostic by design. Voice is the first surface they master. Multi-channel is the direction the model was built to grow into.
On the path
SMS is reserved in the product surface but not available. Email exists today only as a flow step, not as a full channel. A real-time conversational AI voice loop, and AI agents that branch on intent and sentiment, are deliberately deferred rather than faked.
Because the logic is decoupled from the channel, the same Flow, Automation, and Outcomes model is intended to carry future channels without a second product. Where it is headed is described plainly on the vision page.
See it run against your own program.
Bring a flow, an audience, and your rules. We will walk the whole loop, from audience to insights, on your stack.