First-line customer support
A customer clicks “Talk to support” at 11 pm.
- Answers common questions from your policies
- Checks the customer's account or order
- Hands off to a human with a summary when it can't help
get_accountcreate_ticketNew · AI Voice Agents
Put a natural-sounding AI agent inside your product. It answers questions, looks things up in your systems and takes actions through your APIs, in real time, in your users' language. You configure it in the dashboard; PurpleCallio runs the voice, the model connection, the tools and the billing.
Unlocks after your first verified credit purchase.
Hi Priya, this is Ava from ShopCo. How can I help today?
My order hasn't arrived yet. It was supposed to come yesterday.
lookup_order · success · 412 ms
I see order 4821 is with the courier and out for delivery today, before 6 pm. Would you like an SMS when it's nearby?
Yes please.
enable_sms_alert · success · 230 ms
Done. You'll get a text when the driver is about 15 minutes away. Anything else?
Natural conversation
Users can interrupt mid-sentence, like a real call.
13 languages
English, Hindi, Spanish, French, German, Japanese and more.
Takes real actions
Looks up and updates data through your own APIs.
No ML work
Write instructions in plain language in the dashboard.
How it works
Create an agent
In the dashboard, give it a name, instructions, a greeting, a voice, a language and a maximum call length. Every change is saved as a new version.
Add tools (optional)
Point the agent at HTTPS endpoints on your server, like lookup_order or book_slot. PurpleCallio signs every request so you know it's genuine.
Test it in the playground
Talk to the agent from your browser, watch the live transcript and tool calls, and refine the instructions until it sounds right.
Start sessions from your backend
When a signed-in user wants to talk, your server creates a session with your API key and hands the browser a short-lived, single-use token.
Your user talks to the agent
The browser SDK or the drop-in React component streams their voice. The agent answers, calls your tools, and the call is billed per minute in credits.
Use cases
Anywhere your users would otherwise wait for a person, fill in a form, or search a help centre, an agent can talk them through it. Each example shows the tools it would connect to.
A customer clicks “Talk to support” at 11 pm.
get_accountcreate_ticketA patient or client wants the next free slot on Tuesday.
find_slotsbook_slotA visitor on your pricing page has questions before buying.
save_leadbook_demoA shopper asks, “Where's my order?”
lookup_orderstart_returnHundreds of applicants need a first-round conversation.
get_jobsave_screeningA patient prepares for a telemedicine visit.
save_intakeA student wants to practise spoken Spanish for 10 minutes.
get_lessonsave_progressA guest wants a table for four at 8 pm.
check_tablereserve_tableAn employee needs to reset access or check a leave policy.
search_policyopen_ticketCapabilities
Real-time, interruptible voice
Low-latency speech in and out. When the user talks over the agent, it stops and listens.
Your instructions, your voice
Plain-language instructions, a greeting, a voice and a language per agent, with full version history.
Secure tools
HMAC-signed HTTPS calls to your endpoints, argument validation, timeouts, and protection against requests to private networks.
Confirm before acting
Mark risky tools (refunds, bookings) as “requires confirmation” so the user must approve each call in the browser.
Playground
Talk to any agent from the dashboard, with a live transcript, tool activity and a call timer.
Call history and analytics
Every call with its duration, outcome and credits, plus totals, success rate and peak usage.
Optional transcripts
Store transcripts per agent, with card numbers, keys and emails redacted, and delete them after 7, 30 or 90 days.
Gemini or OpenAI
Choose the voice model per agent. Provider keys stay on our servers and never reach the browser.
Built-in limits
Maximum call length per agent, concurrency and daily limits, and calls capped by the credits left.
Integrate
Your server creates a session for a signed-in user, then your page renders the agent. The API key stays on your server; the browser only ever sees a short-lived token.
1. Your backend: create a session
// Your backend: the API key never leaves the server.
import express from "express";
import { PurpleCallioClient } from "@purplecallio/sdk";
const client = new PurpleCallioClient({
apiKey: process.env.PURPLECALLIO_API_KEY!,
apiUrl: "https://purplecallio.com/api",
});
const app = express();
app.post("/api/ai-session", requireLogin, async (req, res) => {
const session = await client.ai.createSession({
agentId: process.env.PURPLECALLIO_AGENT_ID!,
participant: { id: req.user.id, name: req.user.name },
metadata: { plan: req.user.plan }, // optional, max 2 KB JSON
});
// Hand the browser only the short-lived bj_ai_ token.
res.json({ token: session.token });
});
// Later, from your backend:
// await client.ai.getSession(sessionId);
// await client.ai.endSession(sessionId);2. Your page: drop in the agent
import { PurpleCallioAI } from "@purplecallio/react";
export function SupportWidget() {
return (
<PurpleCallioAI
apiUrl="https://purplecallio.com" // required
getToken={() => fetch("/api/ai-session", { method: "POST" }).then((r) => r.json())}
className="my-agent"
startLabel="Talk to support"
/>
);
}Prefer your own UI? Use the usePurpleCallioAI hook or the headless PurpleCallioAgentCall class from @purplecallio/sdk.
A program that holds a spoken conversation with your user in real time. It listens, understands, replies with a natural voice, and can call your APIs to look up or change data.
No. You describe how the agent should behave in plain language in the dashboard, and optionally connect tools that point at your existing APIs.
AI voice agents unlock after your first verified credit purchase. You can still explore the dashboard before purchasing credits.
Per minute, in credits from the same prepaid balance as your video and audio calls. A call can't run longer than your remaining credits cover. See the pricing page for the current rate.
Yes, through tools: HTTPS endpoints on your server that the agent calls with validated arguments. For actions with side effects, require confirmation so the user approves each one.
Audio is never stored. Text transcripts are stored only if you turn them on for an agent, with sensitive data redacted, and deleted after the retention period you choose.
Yes. When the user starts speaking, the agent stops talking and listens, just like a phone call with a person.
Create an agent, talk to it in the playground, and embed it with a few lines of code.