Three releases shipped this week: a dashboard surface for usage alert rules so an operator can define a spend or delivery alert without writing API calls, an anomaly-forensics page for usage and delivery deviations, and two opt-in voice-agent controls — backchannel cues and a sensitive-words redaction list. Each is live today; the sections below are the operator version of the 2026-08-27 changelog entries.
What shipped this week
Set a usage alert rule from the dashboard, not the API
The usage-anomaly alert engine already shipped on the API as /usage/alert-rules; the missing piece was a place to manage the rules without a curl command. Insights → Usage alert rules now exposes the full surface: define a rule on SMS delivery rate, outbound message volume, or spend, as either a threshold ("spend above $50/day") or a learned-baseline anomaly that fires without you picking a number.
The page shows every rule with its last-evaluation status and an enable/disable switch, and an Evaluate now button runs all active rules on demand for owner, admin, and developer roles. In the create dialog, a one-click suggested preset — "alert when daily spend crosses $50" — gets a first spend guard in place in under a minute, and you can adjust the amount before saving.
When a rule fires, the notification is edge-triggered: you get alerted when the metric crosses into breach, not on every evaluation tick. If the rule stays in breach, a cooldown re-notifies at most once per cooldown window (default 24 hours), so a persistent breach stays visible without paging you every hour. A breached metric lands in the in-app notification dropdown with a deep link to the metric surface.
Evaluation is read-only over your account: rules aggregate the message and billing rows you already have, and the only writes are rule state and the notification itself. Route: dashboard → insights → usage-alert-rules. Docs: Usage & delivery anomaly alert rules guide.
See a usage or delivery anomaly as the detectors raise it
The new Insights → Usage & delivery anomaly page reads the same anomaly-insights ledger the API has been returning and turns it into an operator surface. A summary strip shows totals in the current window, the open-anomaly count, and the high/critical severity count; a per-day stacked trendline puts wallet-spend and webhook/inbound scopes on the same chart so a burst in one reads against the other.
Below that, a ledger lists every detector raise — category, severity, scope, summary, GMT timestamp — newest first. Two scope filters drive the whole view: narrow the ledger to one scope (wallet spend, webhook, inbound), and pick a 7d / 30d / 90d window that resizes the summary strip, the trendline, and the ledger together. The page is a read-only projection of the ledger (/insights/anomalies), scoped to your tenant so one tenant can never read another's anomalies. Route: dashboard → insights → anomalies. API: `by-scope`, `timeseries`, `history` endpoint families for the same projections.
Make a voice agent sound like it is listening
Two opt-in controls landed on every agent, each configured per agent and off by default:
- Backchannel cues. In an agent's voice settings, an intensity toggle (low, medium, high) turns on short acknowledgements — "got it", "I see" — that fire while the caller is still mid-utterance on a long turn. Cues never interrupt the agent's own speech and are cooldown-spaced so they stay sparse; a caller hears active listening instead of dead air.
- Sensitive words. Up to 64 literal words or phrases per agent — competitor names, internal codenames, regulated claim phrasing, anything that should never leave a model's mouth. Matching is literal and case-insensitive across scripts, and every match in the agent's generated output is replaced with
[REDACTED]before it is spoken on a live voice call or returned in text. Redaction is advisory rather than blocking: the turn still completes, with the term scrubbed and a low-severity violation recorded so you can see how often the list fires. Terms outside the limits are rejected at save time rather than silently dropped.
Because both are per-agent opt-ins, nothing changes for an agent that does not opt in. Routes: dashboard → agents → <agent> → settings. Docs: Agents overview and Sensitive words guardrail.
Operator takeaways
Three actions are worth the minutes they take this week.
- Set the spend-throttle preset. Open Insights → Usage alert rules, click create, and accept the suggested preset — "alert when daily spend crosses $50." That is the first spend guard in place; add a second rule on SMS delivery rate ("below 95% over the trailing 7 days") and you have both directions covered. The usage anomaly alert rules guide walks through the rule shapes.
- Bookmark the anomalies ledger for the post-campaign check. After any large send, open Insights → Usage & delivery anomaly, set the 7d window, and filter to the scope you pushed. A spike shows in the trendline against the baseline the detectors compute, and the ledger entry tells you which detector raised it.
- Set a backchannel intensity on your longest-turn agent. Pick the voice agent whose callers talk the longest — intake, troubleshooting, collections — and set backchannel cues to low. Raise it only if callers still talk into dead air. Leave it off on short-turn agents where cues would only add noise.
Where this shows up
All three ship this week and are live now:
- Insights → Usage alert rules — create, enable, and evaluate rules from the dashboard.
- Insights → Usage & delivery anomaly — the read-only forensics ledger.
- Agents → <agent> → settings — backchannel cues and the sensitive-words list, per agent.
The canonical release history stays at orbit.devotel.io/en/changelog — the entries above mirror the 2026-08-27 publish there.