What we’re building
Answers the phone
Inbound, in Finnish and English.
Knows the policies
Opening hours, cancellations, insurance — from a corpus.
Books appointments
A real HTTP tool against your system.
Ends cleanly
The
hangUp system tool.1
Pick a language and voice
previewUrl at phone quality before deciding. A voice that reads
well in a list can sound thin on a narrowband call.2
Create the agent
firstSpeaker: agent— inbound callers expect to be greetedinterruptible: false— the greeting cannot be talked over, so a recording notice is actually heardtemperature: 0— a receptionist should answer the same question the same waymaxDuration: 600— ten minutes is generous for reception; the 50-minute default lets a stuck call burn creditsinactivityTimeout: 20+prompt— twenty seconds of silence gets a spoken check-in, not a silent disconnect
The agent speaks Finnish here, so
greeting and kbSearchAnnouncement are
written in Finnish. They are spoken verbatim and never translated.3
Add the knowledge
Create a corpus in the dashboard
and upload your policy documents — PDFs, pasted text, or a URL to crawl.Wait until every source shows The agent now has a
PROCESSED. Testing before then produces an
agent that correctly says it cannot find something, which looks like a bug but
is the system telling the truth.Then link it:search_... tool automatically. You do not configure it.4
Add the booking tool
Build it as in the authenticated tool example,
then attach it along with
hangUp:5
Test before the number is live
6
Put it on the phone
{ "agentId": null }.Then iterate
Change one thing at a time and say why:Reading the calls
endTime is populated. /calls uses cursor
pagination (cursor / pageSize), not page / limit like the rest of the API.
There is no webhook for call events — poll
GET /calls with a cursor rather
than polling each call individually.