Three layers. One agent.
Knowledge tells the agent what is true. Policy tells it what is allowed. Actions let it do something about it. Everything else is plumbing — and we did the plumbing.
Grounded in what is actually true today.
Oriel indexes your help center, internal runbooks, Slack threads your team marked as canonical, and — crucially — the live state of the customer’s account. It cites every claim, so when a policy changes, the agent changes with it.
- Live connectors: Zendesk, Intercom, Notion, Confluence, Google Drive, GitHub
- Account-aware retrieval: order, plan, device, region, history
- Freshness scoring — stale articles are demoted, not deleted
- Every answer cites the source paragraph
Rules your agent can’t talk itself out of.
Policies are written in plain English and compiled to checks the model cannot override. Refund windows, dollar limits, identity verification, tone, regulated phrasing — evaluated before every action, visible in every transcript.
- Plain-English policies with versioning and staged rollout
- Hard limits: dollar caps, rate limits, allow-lists per action
- Approval queues for anything above threshold
- Red-team suite runs on every policy change
Resolution means doing something.
Oriel ships with 140 pre-built actions across commerce, billing, identity and ticketing, and a typed SDK for your own. Every action is scoped, idempotent, logged, and — where the underlying system allows it — reversible with one click.
- 140 actions, from “issue refund” to “rotate API key”
- Dry-run mode: see what the agent would have done
- One-click reversal with audit trail
- Your APIs via an OpenAPI spec or the SDK
Chat, email, voice, in-product.
Same agent, same memory, same policies. Voice runs at sub-second latency and hands off mid-call with the full transcript attached.
Chat
Web widget, in-app, WhatsApp, Messenger. Rich cards, file uploads, typing that means thinking.
Threads, attachments, forwards. Replies in your voice, with your signature and your SLA.
Voice
Natural, interruptible, 31 languages. Verifies identity by voice and OTP. Hands off without hold music.
In-product
Reads live UI state via our SDK and guides or acts on the screen the customer is looking at.
Resolution rate, audited.
We count a conversation as resolved only when the customer confirms or goes quiet after an action. Every week a sample is re-checked by humans and the number is corrected. The dashboard shows you the gap.
- Resolution, handoff and reopen rates per intent
- Policy hits: what the agent wanted to do but couldn’t
- Knowledge gaps ranked by cost
- Export to Looker, Mode, BigQuery, Snowflake
Your APIs become actions in an afternoon.
Point Oriel at an OpenAPI spec or write an action in TypeScript. Declare inputs, scopes and a reversal. We generate the policy hooks, the audit log and the dry-run harness.
Read the docs// Registers a reversible action with scopes + policy hooks import { action, z } from "@oriel/sdk"; export default action({ name: "warranty.open", scope: "orders:write", input: z.object({ orderId: z.string(), reason: z.enum(["defect", "damage"]) }), limits: { perCustomer: "1/30d" }, async run({ input, customer }) { const rma = await acme.openRMA(input.orderId, input.reason); return { rmaId: rma.id, summary: `Opened ${rma.id}` }; }, async reverse({ output }) { await acme.cancelRMA(output.rmaId); } });
See it on your backlog.
Shadow mode runs Oriel against last month’s tickets and shows you what it would have resolved. No customer sees a word until you say so.