Vodiči
Glasovni agent
Agent je dobar samo koliko mu je dobro napisan sistemski prompt. Ova stranica je vodič kako ga napisati, tri gotova uzorka za kopiranje i ograničenja koja treba imati na umu.
Broj asistenta
Agent se javlja i zove s broja koji mu dodijelite na detaljima agenta (u API-ju polje numberE164). Glasovni broj prima i obavlja pozive, ali ne SMS. Ako želite da asistent ima broj na koji ga ljudi mogu nazvati i poslati poruku te s kojeg zove i šalje SMS, naručite broj za pozive i SMS: praški fiksni broj na koji se nakon registracije kod operatera (obično u roku od 1 radnog dana, najkasnije 48 sati) javlja agent na vlastitom glasovnom pogonu volai. Pozivi s njega idu samo na češke brojeve (+420), a SMS-ovi s njega nemaju potvrde isporuke. Pojedinosti pronađite u dokumentaciji API-ja, u odjeljku Brojevi za pozive i SMS.
1Struktura systemPrompt
Dobar prompt ima četiri dijela. Bez bilo kojeg od njih agent prije ili kasnije zapne i ne zna što dalje - ili šuti ili nešto izmisli.
- Tko sam - jedna do dvije rečenice: naziv tvrtke, uloga, ton glasa. Agent se u tome mora snaći već u prvoj replici.
- Što znam - konkretni zadaci koje agent doista može obaviti (narudžba, termin, informacija) - ne općenito „pomoći ću s bilo čime“.
- Što NIKADA ne radim - granice: što agent ne smije izmišljati, obećavati ni priopćavati. Ovaj dio najčešće izostaje, a čini razliku između agenta koji izmišlja cijene i agenta koji pošteno kaže „to ne znam, nazovite na...“.
- Kako završiti poziv - kada i kako zaključiti poziv (sažetak, pozdrav) i što učiniti kada kupac želi nešto izvan opsega.
Dulje upute usporavaju odgovor otprilike za desetinku sekunde na svakih dvije tisuće znakova - uređivač agenta upozorit će vas od 3000 znakova. Čvrsta gornja granica je 6000 znakova.
Tri potpuna uzorka - kopirajte ih i prilagodite sebi:
Recepcionar s narudžbama
Ti si glasovni recepcionar kavane Nula na Vinohradima. Govoriš mirno,
prijateljski i sažeto - onako kako bi govorilo iskusno osoblje, a ne robot.
ŠTO ZNAŠ
- Primaš narudžbe za preuzimanje (kava, čaj, croissanti, sendviči).
- Kažeš trenutno radno vrijeme: ponedjeljak do petak 8:00-18:00, vikend
9:00-15:00.
- Na kraju narudžbe cijelu je ponoviš i potvrdiš vrijeme preuzimanja
(najranije za 15 minuta od sada).
ŠTO NIKADA NE RADIŠ
- Ne izmišljaš cijene ni stavke koje nisu u ponudi - reci da će točnu
cijenu potvrditi osoblje na licu mjesta.
- Ne obećavaš dostavu, kavana ne dostavlja.
- Nikada se ne pretvaraš da si čovjek kada te kupac to izravno pita -
reci da si glasovni asistent kavane.
KAKO ZAVRŠITI POZIV
Sažmi narudžbu i vrijeme preuzimanja, poželi ugodan dan i završi poziv. Ako
kupac želi nešto što ne znaš riješiti (reklamacija, catering), reci mu neka
nazove ponovno u radno vrijeme i razgovara izravno s vlasnikom.Istraživanje zadovoljstva
Zoveš u ime web-trgovine Botanika kao kratko istraživanje zadovoljstva nakon
nedavne narudžbe. Uljudan si, ideš ravno k stvari, razgovor ne razvlačiš
bez potrebe.
ŠTO ZNAŠ
- Pitaš ima li kupac minutu za tri kratka pitanja.
- Pitanje 1: Kako bi ocijenio zadovoljstvo narudžbom na ljestvici 1-5.
- Pitanje 2: Je li paket stigao na vrijeme?
- Pitanje 3: Postoji li nešto što bismo mogli poboljšati?
- Odgovore zapamtiš i na kraju poziva ih ukratko sažmeš.
ŠTO NIKADA NE RADIŠ
- Ne pritišćeš kupca kada odbije ili kaže da nema vremena - odmah se
pristojno oprosti.
- Ne rješavaš reklamacije ni povrat robe - to pripada korisničkoj liniji
koju kupcu na zahtjev izdiktiraš.
- Ne nudiš popuste ni kupone, za to nemaš ovlasti.
KAKO ZAVRŠITI POZIV
Zahvali na vremenu i povratnoj informaciji, poželi ugodan dan. Ako kupac
u bilo kojem trenutku kaže da ne želi nastaviti, odmah uljudno završi poziv
bez daljnjih pitanja.Porta / prijemna pisarnica
Ti si glasovni portir tvrtke Nordwex u poslovnoj zgradi na
Pankráci. Na ovaj broj zovu kuriri, posjetitelji i dobavljači.
ŠTO ZNAŠ
- Utvrdiš tko zove i s kojom svrhom (kurir s paketom, posjetitelj na
sastanak, dobavljač).
- Kod posjetitelja doznaš ime i s kim ima sastanak, kažeš mu neka se javi
na recepciji u prizemlju i pričeka dok netko ne dođe po njega.
- Kuriru kažeš neka paket ostavi na recepciji i ondje napiše naziv tvrtke
i primatelja.
- Primiš kratku poruku kada pozvana osoba trenutno nije dostupna.
ŠTO NIKADA NE RADIŠ
- Ne dijeliš brojeve privatnih mobitela zaposlenika - ponudiš
preusmjeravanje na recepciju ili poruku.
- Nikoga ne puštaš "gore samog" - svi posjetitelji idu preko
recepcije.
- Ne daješ informacije o tome tko je u zgradi i kada - reci
da to mora provjeriti na recepciji.
KAKO ZAVRŠITI POZIV
Ponovi što je dogovoreno (poruka, čekanje na recepciji, preusmjeravanje),
poželi ugodan dan i završi poziv.2Predlošci po djelatnosti
Ne želite pisati prompt od nule? Na webu su gotovi predlošci za šest djelatnosti (stomatološka ordinacija, autoservis, restoran, web-trgovina, agencija za nekretnine, obrtnici) - gotov sistemski prompt, primjer dijaloga i primjer koliko bi takav recepcionar koštao. Kopirajte i prilagodite sebi, kao i uzorke iznad.
Pregled predložaka po djelatnosti
3firstMessage
firstMessage je prva rečenica koju kupac čuje - kod dolaznog poziva odmah nakon javljanja, kod odlaznog odmah nakon što pozvana osoba podigne slušalicu.
- Kratak, govorni jezik - kako bi to rekao čovjek, a ne kako bi napisao u e-poruci.
- Odmah reci tko ili što zove ili se javlja - kupac mora za tri sekunde znati s kim govori.
- Završi otvorenim pitanjem („kako vam mogu pomoći“, „imate li trenutak“) - ne dugim monologom.
- Pročitaj naglas - što dobro izgleda napisano, izgovoreno može zvučati nespretno.
- Kod odlaznih poziva odmah na početku predstavi se i navedi razlog poziva - na nepoznate brojeve ljudi se nerado javljaju.
4Alati
Alat je adresa vašeg API-ja koju agent pozove usred razgovora i odgovor odmah iskoristi u govoru. Bez alata agent zna samo govoriti; s alatom može provjeriti narudžbu, pronaći slobodan termin ili upisati rezervaciju.
Alati se otvaraju u portalu na /agent/nastroje (ili preko POST /v1/tools), a zatim se agentu uključuju potvrdnim okvirom na njegovim detaljima (u API-ju polje toolIds). Alat pripada računu, a ne agentu - isti alat može koristiti više agenata. Kod njega unosite četiri stvari:
- Naziv - čitljiv („Provjeriti narudžbu“). Ime za model izvodi se iz njega samo (
overit_objednavku) i prikazuje se ispod polja. - Kada ga agent treba upotrijebiti - jedino prema čemu model odlučuje hoće li alat uopće pozvati. Pišite to kao uputu: „Upotrijebi kada se pozivatelj pita gdje mu je narudžba.“
- Adresu i metodu - samo
https, javno dostupnu.GETšalje parametre u query-ju,POSTu JSON tijelu. K tome zaglavlja, tipičnoAuthorization. - Parametre - kod svakog kažete odakle dolazi vrijednost: izvuče je model iz razgovora, dopuni se broj pozivatelja ili pozvani broj, ili je to fiksna vrijednost.
Ovako zatim izgleda zahtjev koji vašem endpointu stiže tijekom poziva:
POST https://api.vasa-aplikacija.hr/narudzbe
Content-Type: application/json
Authorization: Bearer vas_kljuc
{
"broj_narudzbe": "A-42",
"telefon": "+385911234567"
}A ovako odgovor s kojim agent zna raditi - kratak JSON iz kojeg se može reći jedna rečenica:
{
"status": "otpremljeno",
"dostava": "sutra prijepodne"
}Prije nego što alat spremite, isprobajte ga
Obrazac ima gumb Isprobaj: na zadanu adresu pošalje stvaran zahtjev s primjerima vrijednosti i prikaže status, vrijeme odziva i početak odgovora. Pritom se ništa ne sprema. Isplati se - endpoint koji odgovara sporo pozivatelji doživljavaju kao tišinu u razgovoru.
Ograničenja: najviše 10 alata po računu, 10 parametara i 5 zaglavlja po alatu, vremensko ograničenje odgovora 5 do 30 sekundi (zadano 20) - upravo toliko agent čeka na odgovor, a u međuvremenu kaže premosnu rečenicu da pozivatelj ne čuje tišinu. Vrijednosti zaglavlja prikazujemo vam natrag samo maskirane (Bear***) - puni tekst ne može se pročitati iz računa.
Vrata pristanka kod alata koji nešto šalje
Kod alata s nuspojavom (pošalje SMS, otvori zahtjev) poljem requireConfirmation: true uključite vrata pristanka (POST i PATCH /v1/tools, u MCP-u create_tool i update_tool). Vlastiti glasovni pogon volai tada alat izvršava samo kada posljednja replika pozivatelja jasno kaže da. Kod nejasnog odgovora („Halo“, „Da?“, „Da, ali kasnije“) alat se ne izvršava, agent dobiva uputu da ponovno pita, a završetak poziva u istom krugu se odgađa. Zadano je isključeno.
Vrijedi samo za agenta na vlastitom pogonu na češkom ili slovačkom: pogon zna riječi pristanka samo u ta dva jezika (kod en, de i pl blokirao bi i jasno „Yes“), pa se polje kod agenta na drugom jeziku ignorira i ElevenLabs ga ne koristi. Alat pripada računu i dijeli ga više agenata, zato se njegovo spremanje zbog jezika ne odbija. Vrata čitaju samo posljednju repliku i ne poznaju pitanje agenta: nejasan pristanak zaustave, ali ne svako „Da“ izgovoreno kao odgovor na drugo pitanje. Promjena alata do agenta koji već radi na pogonu stiže tek pri njegovu sljedećem spremanju ili objavi - uređivanje alata agente samo ne prepisuje. Kod kampanje u tijeku ovisi o načinu: ponovna objava testiranog nacrta bez izmjena zadržava oznaku „testirano“, zadatak nastavlja raditi, ali već s vratima koja test nije pokrio; izravno spremanje agenta (PATCH /v1/agents/{id}) poništava oznaku i zadatak se zaustavlja kodom agent_version_changed. Uključivanje vrata zato planirajte izvan trajanja kampanje i kampanju nakon toga ponovno testirajte.
U portalu vrata uključujete prekidačem Zahtijevati jasan pristanak pozivatelja u uređivaču alata (/agent/nastroje). Za njega vrijedi isto što je opisano gore; agentu koji već radi na pogonu promjena stiže gumbom Objavi na njegovim detaljima.
5Preusmjeravanje na osobu
Agent može poziv predati na vaš broj kada pozivatelj zatraži osobu ili naiđe na stvar koju agent ne zna riješiti. Uključuje se na detaljima agenta (u API-ju polje transferTo), uvjet napišete kao uputu modelu u transferCondition. Bez njega postavljamo zadanu rečenicu.
Na vlastitom glasovnom pogonu volai
Na vlastitom glasovnom pogonu volai preusmjeravanje ide mostom: agent kaže da vas spaja, pozivatelj čuje zvonjenje, a osoba na vašem broju vidi broj agenta. Nakon javljanja agent utihne i razgovor se nastavlja između vas dvoje preko volai. Ako bilo tko od vas prekine vezu, poziv završava za oboje. Ako se ne javite u roku od 25 sekundi, agent se pozivatelju ispričava, nudi poruku i nastavlja.
Dvije stvari koje treba znati unaprijed
Sažetak poziva osobi ne predajemo. Pozivatelj će čuti da ga preusmjeravamo, ali operater s druge strane odmah preuzima pozivatelja - nikakav „warm transfer“ u kojem bi agent prvo sažeo o čemu je riječ preko telefonske mreže ne znamo izvesti. Računajte s tim u uputama: neka agent pozivatelju kaže da će morati ponoviti stvar.
Preusmjeravanje je običan odlazni poziv i tako se i naplaćuje: 0,92 kr/min od javljanja do prekida veze, bez agentskog dodatka (agent više nije na toj grani). U povijesti poziva prepoznajete ga po vrsti transfer, a u detaljima izvornog poziva pronalazite karticu Preusmjeravanje s poveznicom na tu granu. Dolazna grana radi dalje i naplaćuje se zasebno.
Standardna platforma (ElevenLabs)
Na standardnoj platformi (ElevenLabs) preusmjeravanje ne radi - operater SIP preusmjeravanje ne dovršava. Nakon uključivanja preusmjeravanja volai odmah po spremanju pokušava agenta prebaciti na vlastiti glasovni pogon. Pokušaj može biti pauziran, pogon nedostupan ili prebacivanje može propasti; prema vraćenom polju provider stoga provjerite radi li agent doista na pogonu. Dok ostaje na ElevenLabsu, preusmjeravanje ne radi. Uspješnim prebacivanjem može se promijeniti glas agenta, zadani glas pogona je Milena.
Preusmjeravanje na vlastiti broj volai nije moguće - poziv bi se vraćao sam sebi dok ne ponestane stanja. Premium linije (90x) zabranjene su iz istog razloga.
Agent koji koristi broj za pozive i SMS preusmjerava samo na češke brojeve (+420): pozivi s tog broja idu samo na češke brojeve, pa se broj za preusmjeravanje izvan +420 kod takvog agenta ne sprema i API vraća destination_not_allowed.
6Što zabilježiti iz poziva
Umjesto čitanja cijelog transkripta možete reći što točno iz poziva želite - ime, broj komada, je li stvar hitna. Agent to nakon poziva ispuni, a vi dobivate JSON.
Svako polje ima ključ, tip i opis. Najviše deset polja po agentu:
- Ključ (
key) - mala slova bez dijakritika, brojke i podcrte, do 40 znakova - mora počinjati malim slovom. Pod tim imenom vrijednost pronalazite u rezultatu. - Tip (
type) -string,numberiliboolean. - Opis (
description) - što točno model treba izvući, 5 do 500 znakova. Napišite i što treba učiniti ako to u pozivu ne bude izgovoreno. - Mogućnosti (
enumValues) - neobavezan popis, samo kod tekstnog polja. Model tada bira samo iz ponuđenih vrijednosti pa se rezultat može odmah filtrirati. Najviše 20 mogućnosti, svaka do 60 znakova.
curl -X PATCH https://volai.cz/v1/agents/ag_kx91fa2b \
-H "Authorization: Bearer vk_VAS_KLJUC" \
-H "Content-Type: application/json" \
-d '{
"dataFields": [
{"key": "ime", "type": "string", "description": "Ime pozivatelja koje je sam rekao. Ako nije izgovoreno, ostavi prazno."},
{"key": "broj_kava", "type": "number", "description": "Koliko je kava pozivatelj naručio."},
{"key": "hitnost", "type": "string", "description": "Koliko je stvar bila hitna.", "enumValues": ["niska", "uobicajena", "visoka"]}
]
}'Rezultat se pojavljuje na tri mjesta: na detaljima poziva u portalu kao kartica „Zabilježeni podaci“, u polju data kod poziva (GET /v1/calls i GET /v1/calls/{id}) i u tijelu webhooka call.completed.
{
"call": {
"id": "c_8f2ac1d4",
"status": "completed",
"hasRecording": true,
"data": {
"ime": "Jana Nováková",
"broj_kava": 2,
"hitnost": "uobicajena"
}
}
}Vrijednost null znači „u pozivu to nije izgovoreno“ - jednako tako kada model odgovori praznim tekstom. Ako kod agenta nemate nijedno polje, ključa data u odgovoru uopće nema.
7Cilj agenta i ocjenjivanje
Cilj je jedna rečenica o tome što poziv treba ostvariti - „dogovoriti termin razgledavanja“, „utvrditi zanima li kupca ponuda“. Unosite ga u portalu u polje „Cilj agenta“ (pri otvaranju agenta i bilo kada kasnije u njegovu uređivanju) ili preko REST API-ja i MCP-a poljem goal u POST/PATCH /v1/agents i create_agent/update_agent (najviše 300 znakova).
Cilj ide agentu kao kriterij za ocjenu poziva: nakon završetka poziva model nad njim pročita transkript i odluči je li cilj ostvaren, neostvaren ili se iz poziva ne može utvrditi. Rezultat vidite uz poziv u portalu - na detaljima i u popisu poziva - a također u e-poruci nakon poziva, uz sažetak.
To je procjena modela, a ne činjenica
Ocjena čita samo transkript poziva, a ne ono što se dogodilo poslije (je li kupac doista došao na sastanak). Pošteno ograničenje: cilj agenta (goal) može se preko REST API-ja i MCP-a postaviti i pročitati, ali REZULTAT ocjene pojedinog poziva ostaje samo u portalu i e-poruci nakon poziva - GET /v1/calls i get_call ga ne vraćaju. Ocjenjivanje usto radi samo kod agenata na novom glasovnom pogonu volai - na kojoj platformi agent radi kaže polje provider (GET /v1/agents, list_agents i detalji agenta u portalu); prebacivanje obavlja volai. Stariji agenti koji ostaju na izvornoj platformi ocjenjivanje će dobiti tek nakon prebacivanja na ovaj pogon.
Što agent zna (podloge)
Osim uputa agentu možete dati podloge - radno vrijeme, cjenik, česta pitanja. Unosite ih u portalu u polje „Što agent zna“ (odjeljak Napredno), preko API-ja poljem knowledge u POST/PATCH /v1/agents. Tekst se dodaje na kraj prompta, stane u 20000 znakova, a PATCH s praznom vrijednošću ga briše. Za razliku od alata, podloge se tijekom poziva ne mijenjaju - ono što se mijenja (status narudžbe, slobodni termini) pripada u alat, a ne ovdje.
8E-poruka nakon poziva
Nakon završetka poziva s agentom volai vam šalje e-poruku sa sažetkom i poveznicom na detalje poziva u portalu - isti sažetak koji vidite i u API-ju u polju summary. Stiže kod agenata koji rade na vlastitom glasovnom pogonu volai (polje provider: "engine"); agent na ElevenLabsu (provider: "elevenlabs") je zasad ne dobiva.
Prekidač „E-poruka nakon svakog poziva“ pronalazite na stranici Postavke - isključivanjem je zaustavljate za cijeli račun odjednom. Pojedinom agentu je isključujete zasebno potvrdnim okvirom „Pošalji mi e-poruku nakon svakog poziva“ na njegovim detaljima (u API-ju polje notifyEmail: false). Za poziv stiže najviše jedna e-poruka, a poziv o kojem nema što javiti (nema sažetka, zabilježenih podataka ni razloga završetka) e-poruku ne pokreće.
9Snimke
Pozivi agenta snimaju se i u portalu ih puštate odmah na detaljima poziva - klikanjem u transkriptu pomičete se na pravo mjesto u snimci. Preuzeti ili reproducirati negdje drugdje može se iz GET /v1/calls/{id}/recording (isti API ključ) - format određuje zaglavlje content-type odgovora: kod agenta na ElevenLabsu audio/mpeg (MP3), kod agenta na pogonu volai danas audio/ogg. Ima li poziv snimku, kaže polje hasRecording.
- Čuvamo ih 90 dana od poziva, a zatim se brišu. Transkript i sažetak zadržavamo dalje, oni se ne brišu sa snimkom. Nakon devedeset dana endpoint vraća
recording_expired. - Isključiti se može kod svakog agenta zasebno - prekidačem na njegovim detaljima, u API-ju poljem
recordCalls: false. Snimka ne nastaje kod poziva započetih od tog trenutka; poziv koji već zvoni ili traje ravna se prema postavci iz trenutka kada je počeo (odlazni iz trenutka biranja), pa će se još snimiti. - Snimaju se samo pozivi ugrađenog agenta. Izravna veza dvaju brojeva (bridge), relay ni poziv preko SIP-a ne snimaju se.
Za obavještavanje pozivatelja odgovarate vi
Snimanje poziva je obrada osobnih podataka. Pozivatelju to agent sam neće reći - ako želite, uključite kod agenta opciju „Reći pozivatelju da se poziv snima“ (u API-ju recordingNotice: true) i volai će prvoj rečenici agenta dodati kratku rečenicu da se poziv snima. Jednako dobro to možete napisati izravno u prvu rečenicu. Za to da priopćenje odgovara zakonu za vašu situaciju odgovarate vi kao voditelj obrade osobnih podataka.
Svaka greška API-ja nosi cause (tko je ispravlja) i action (što učiniti) - vidi Format grešaka u referenci REST API-ja.
10Ograničenja
- Poziv traje najviše 10 minuta (600 sekundi), a zatim ga agent sam završava.
- Kada pozivatelj 20 sekundi šuti, agent to uzima kao kraj poziva i prekida vezu.
- Odziv agenta je otprilike 1 sekunda od trenutka kada završite govoriti - u stvarnom radu blago varira ovisno o opterećenju.
11Jezici
Agent može govoriti na pet jezika - češki (zadani), slovački, engleski, njemački i poljski - jezik postavljate na detaljima agenta (polje language u POST/PATCH /v1/agents, create_agent/update_agent) - glas za svaki jezik zasebno (Cartesia) ima samo vlastiti glasovni pogon volai (vidi poglavlje Glasovi niže), agent na ElevenLabsu govori odabranim jezikom glasom Anet.
12Probni poziv
Gumb „Nazovi me na probu“ na detaljima agenta u portalu pokreće stvaran poziv agenta na broj koji unesete - brza provjera kako agent zvuči i kako reagira na vaš sistemski prompt, bez potrebe da ručno zovete njegov broj.
Naplaćuje se kao običan odlazni poziv s agentom, uključujući agentski dodatak (vidi poglavlje Cijene niže) - bez popusta i posebne tarife.
Agent na vlastitom glasovnom pogonu volai probni poziv može obaviti i bez vlastitog telefonskog broja - koristi se zajednička linija volai, pa pozvana osoba na zaslonu vidi broj volai, a ne agentov. Agent na ElevenLabsu bez vlastitog broja ne može pokrenuti probni poziv dok mu ne dodijelite broj.
Najviše 3 pokušaja probnog poziva dnevno po računu, za sve agente zajedno - broji se svaki pokušaj koji je doista biran, čak i ako se nitko nije javio; pokušaj koji je propao prije biranja (nedovoljno stanje, zauzeta linija) ne ulazi u ograničenje. Obični pozivi preko POST /v1/calls nemaju ovo strože ograničenje.
13Glasovi
Odabir pružatelja pri otvaranju ima tri stanja: useForOutboundTasks: true u POST /v1/agents ili create_agent bira vlastiti glasovni pogon volai, false počinje na standardnoj platformi (ElevenLabs) čak i ako istodobno postavite preusmjeravanje, a izostavljeno polje koristi trenutačnu zadanu postavku instalacije, koja ovisi o uključenosti pogona i dopuštenim jezicima. Sam cs ili sk ne jamči pogon; kod isključenog zadanog pogona agent nastaje na ElevenLabsu. Kada izričito false nadjača zadani pogon jezika, odgovor na otvaranje nosi upozorenje elevenlabs_by_explicit_choice; agenta samo za dolazne pozive zato otvarajte bez polja. Kada agentu na ElevenLabsu uključite transferTo, volai ga nakon spremanja pokušava prebaciti na pogon. Pokušaj može biti pauziran, nedostupan ili propasti, zato uvijek provjerite rezultat: kod REST-a naknadnim GET /v1/agents/{id}, kod MCP-a u vraćenom agentu. Koju platformu agent koristi, kaže polje provider; dok ostaje na ElevenLabsu, preusmjeravanje ne radi. Pri uspjehu se glas može promijeniti. Isti pokušaj pokreće promjena language kod agenta na ElevenLabsu s jezika u kojem novi agenti nastaju na ElevenLabsu (danas en, de, pl) na jezik u kojem nastaju na pogonu (cs, sk); agent tada dobiva zadani glas pogona za novi jezik (Milena, Katarina). Promjena između cs i sk ništa ne premješta. Inače između platformi prebacuje volai (podrška). Agent na ElevenLabsu uzima samo katty ili sirovi ElevenLabs voice id; ostali glasovi kataloga rade samo na pogonu.
voiceId kod create_agent/update_agent (i istoimeno polje u POST/PATCH /v1/agents) bira glas agenta. Nefiltrirani ispis GET /v1/voices (MCP list_voices bez argumenta provider) glas ElevenLabsa katty ne prikazuje - REST ga vraća tek s ?provider=elevenlabs, MCP s argumentom provider: "elevenlabs". Glasovi Cartesia (Milena, Jan i glasovi drugih jezika) namijenjeni su agentima na vlastitom pogonu volai, Katty agentima na ElevenLabsu (o tome na kojoj platformi agent radi, vidi napomenu iznad). Stariji glas anet ostaje samo agentima koji ga već imaju - ElevenLabs ga od 12. 9. 2026 novim agentima ne dodjeljuje i volai takav zahtjev odbija uz objašnjenje. Pri otvaranju s izričitim useForOutboundTasks: true poznati glas koji pogon ne podržava, uključujući katty, zamjenjuje se zadanim glasom pogona za odabrani jezik; ako pogon odabere tek zadana postavka pri izostavljenom polju, isti nekompatibilni glas se odbija. Sirovi ElevenLabs ID pogon uvijek odbija. Bez voiceId agent dobiva zadani glas svog pružatelja - kod pogona Milenu, kod ElevenLabsa glas predloška (Katty).
Katalog nudi za svaki jezik barem jedan ženski i jedan muški glas (kod češkog danas četiri): cs: Milena, Jan, Tereza, Marek; sk: Katarina, Peter; en: Skylar, Daniel; de: Alina, Lukas; pl: Ewa, Kacper; nl: Ariel, Alexander; pt: Christine, Filipe; sl: Sarah, Daniel; ro: Mikidutza, Oliver; da: Isabella, Søren; et: Alice, Chris; lv: Matilda, George; bg: Yoana, Peter K; fi: Soili, Jussi; el: Crhysa, Iordanis; fr: Natasha, Max; it: Rossana, Marco; hu: Zsófia, Gábor; lt: Sarah, Daniel; sv: Sanna, Filip; hr: Ivana, Davor. Portal nudi samo glasove odabranog jezika agenta - mijenjaju se zajedno (vidi poglavlje Jezici iznad).
Svi glasovi u tablici pripadaju vlastitom glasovnom pogonu volai. Agentu na ElevenLabsu API ih odbija greškom 400 - on iz kataloga uzima samo katty (u nefiltriranom ispisu skriven) i sirovi ElevenLabs voice id.
| id | Opis | Primjer |
|---|---|---|
| milena | Milena - The default volai voice - calm and natural, a good fit for most agents. | |
| jan | Jan - The male counterpart to Milena - matter-of-fact, easy-to-follow delivery. | |
| tereza | Tereza - The second female voice - professional, well-structured delivery. | |
| marek | Marek - The second male voice - calm, resonant delivery for longer calls. | |
| katarina | Katarina - Slovak female voice - calm, natural delivery. | |
| peter | Peter - Slovak male voice - matter-of-fact, easy-to-follow delivery. | |
| skylar | Skylar - English female voice - calm, friendly delivery. | |
| daniel | Daniel - English male voice - matter-of-fact, confident delivery. | |
| alina | Alina - German female voice - calm, warm delivery. | |
| lukas | Lukas - German male voice - matter-of-fact, easy-to-follow delivery. | |
| ewa | Ewa - Polish female voice - calm, natural delivery. | |
| kacper | Kacper - Polish male voice - matter-of-fact, confident delivery. | |
| ariel | Ariel - Dutch female voice - natural conversational delivery. | |
| alexander | Alexander - Dutch male voice - warm, natural delivery. | |
| christine | Christine - Portuguese female voice - relaxed conversational delivery. | |
| filipe | Filipe - Portuguese male voice - natural, expressive delivery. | |
| mikidutza | Mikidutza - Romanian female voice - clear, friendly delivery. | |
| oliver | Oliver - Romanian male voice - matter-of-fact, clear delivery. | |
| isabella | Isabella - Danish female voice - warm, calm delivery. | |
| soren | Søren - Danish male voice - clear, confident delivery. | |
| yoana | Yoana - Bulgarian female voice - fresh, engaging delivery. | |
| peterk | Peter K - Bulgarian male voice - warm, smooth delivery. | |
| soili | Soili - Finnish female voice - neutral, light delivery. | |
| jussi | Jussi - Finnish male voice - strong, lively delivery. | |
| crhysa | Crhysa - Greek female voice - professional, lively delivery. | |
| iordanis | Iordanis - Greek male voice - natural conversational delivery. | |
| natasha | Natasha - French female voice - soft, conversational delivery. | |
| max | Max - French male voice - charismatic, friendly delivery. | |
| rossana | Rossana - Italian female voice - warm conversational delivery. | |
| marco | Marco - Italian male voice - charismatic, friendly delivery. | |
| zsofia | Zsófia - Hungarian female voice - soft, inviting delivery. | |
| gabor | Gábor - Hungarian male voice - warm, natural, confident delivery. | |
| sanna | Sanna - Swedish female voice - direct, natural delivery. | |
| filip | Filip - Swedish male voice - energetic, expressive delivery. | |
| ivana-hr | Ivana - Croatian female voice - lively, friendly delivery. | |
| davor | Davor - Croatian male voice - natural conversational delivery. | |
| sarah-sl | Sarah - Slovenian female voice - calm, confident delivery (multilingual voice, the model drives the pronunciation). | |
| daniel-sl | Daniel - Slovenian male voice - steady, broadcaster-style delivery (multilingual voice, the model drives the pronunciation). | |
| alice-et | Alice - Estonian female voice - clear, engaging delivery (multilingual voice, the model drives the pronunciation). | |
| chris-et | Chris - Estonian male voice - down-to-earth, charming delivery (multilingual voice, the model drives the pronunciation). | |
| matilda-lv | Matilda - Latvian female voice - knowledgeable, professional delivery (multilingual voice, the model drives the pronunciation). | |
| george-lv | George - Latvian male voice - warm, captivating delivery (multilingual voice, the model drives the pronunciation). | |
| sarah-lt | Sarah - Lithuanian female voice - calm, confident delivery (multilingual voice, the model drives the pronunciation). | |
| daniel-lt | Daniel - Lithuanian male voice - steady, broadcaster-style delivery (multilingual voice, the model drives the pronunciation). |
voiceId prihvaća i sirovi ElevenLabs ID, ali samo za agenta na standardnoj platformi (provider: "elevenlabs"). Za agenta na pogonu upotrijebite id glasa iz kataloga. Nepoznata vrijednost ili vrijednost nekompatibilna s pružateljem vraća grešku koja navodi valjane mogućnosti.
14Statistike
Detalji agenta u portalu prikazuju broj primljenih poziva, njihovo prosječno i najdulje trajanje te broj u posljednjih 30 dana - za to ne postoji zaseban API, brojke možete izračunati i sami nad izlazom GET /v1/calls.
15Cijene
Glasovni agent naplaćuje se povrh cijene poziva, po sekundi - bez zaokruživanja na pune minute. Tarife su bez PDV-a, kao i cijeli cjenik.
| Smjer | Poziv | Agent | Ukupno |
|---|---|---|---|
| Odlazni | 0,92 kr/min (≈ 0,04 EUR) | 2,50 kr/min (≈ 0,10 EUR) | 3,42 kr/min (≈ 0,14 EUR) |
| Dolazni | 0,50 kr/min (≈ 0,02 EUR) | 2,50 kr/min (≈ 0,10 EUR) | 3,00 kr/min (≈ 0,13 EUR) |
Detaljan cjenik s primjerima nalazi se na stranici Cjenik.
Radije svoj ElevenLabs, Vapi ili drugu platformu? Bez agentskog dodatka to ide preko vlastitog agenta - vidi Vlastiti agent.
16Transkripti i webhook
Nakon završetka poziva transkript i sažetak preuzimate preko GET /v1/calls/{id} (polja transcript i summary) - ili vam ih volai sam šalje na vaš URL u obliku događaja call.completed, čim su gotovi. Format transkripta, provjera potpisa i ponašanje pri grešci nalaze se na stranici Webhookovi.
Ne želite čekati webhook niti anketirati API? U portalu svaki agent na svojim detaljima ima i pregled posljednjih poziva s transkriptom za izravno čitanje.
17Glasovni pogon volai
Dio agenata danas radi na vlastitom glasovnom pogonu volai umjesto na ElevenLabsu. Prebacivanje mijenja usmjeravanje poziva i s njim se prenosi cijela konfiguracija agenta - upute, prva rečenica, polja za bilježenje, cilj poziva, znanje, alati i preusmjeravanje na osobu. Što se prebacivanjem mijenja, a što ne:
- Glasovi agent koji je imao odabrani glas ElevenLabsa (Katty ili stariji Anet) nakon prebacivanja dobiva zadani glas pogona za svoj jezik - kod češkog Milenu. Pogon glas ElevenLabsa ne nudi kao svoj glavni glas, ElevenLabs kod njega ostaje samo kao zamjena za ispad Cartesie. U postavkama agenta zatim možete odabrati bilo koji drugi glas iz kataloga za jezik agenta, kod češkog primjerice Jana. Glas koji agent već ima iz kataloga pogona prebacivanjem se ne mijenja.
- Odziv ostaje isti kao kod ElevenLabsa - oko 1 sekunde od trenutka kada završite govoriti.
- Snimke bez promjene - i dalje se čuvaju 90 dana i jednako se mogu isključiti na detaljima agenta.
- Obavijest o snimanju bez promjene - ako kod agenta imate uključenu rečenicu o snimanju (`recordingNotice`), volai i ovdje prvoj rečenici agenta dodaje kratku rečenicu da se poziv snima (vidi odjeljak Snimke iznad). Bez te opcije, ili uz isključeno snimanje, rečenica se ne dodaje uopće.
- Priopćenje da govori AI bez promjene - prvu rečenicu šaljemo pružatelju onako kako ste je napisali. Ne namećemo je: kada priopćenja da pozivatelj razgovara s digitalnim asistentom nema, samo vas na to upozorimo (europski AI Act, čl. 50), spremanje to ne zaustavlja. Odgovornost za priopćenje ostaje na vama kod oba pružatelja jednako.
- Alati i preusmjeravanje poziva prelaze s agentom - uspješno prebacivanje šalje pogonu i njegove alate i postavljeno preusmjeravanje na osobu, ne morate ih unositi ponovno. Na vlastitom glasovnom pogonu volai preusmjeravanje radi mostom (kao što opisuje poglavlje Preusmjeravanje na osobu iznad) - most je provjeren u redovnom radu i portal kod agenta na pogonu prikazuje potpuni obrazac preusmjeravanja. Kod agenta na standardnoj platformi (ElevenLabs) uključivanje preusmjeravanja odmah po spremanju pokreće pokušaj prebacivanja na vlastiti pogon; provjerite rezultat u polju `provider`, jer kod pauze, nedostupnosti pogona ili greške može ostati na ElevenLabsu, a preusmjeravanje tamo ne radi. Uspješnim prebacivanjem mu se glas može promijeniti na zadani glas pogona. Skupna migracija brojeva po valovima zato agente s postavljenim preusmjeravanjem izostavlja.
- Govorna pošta kod odlaznih poziva prepoznaje samo vlastiti glasovni pogon volai - unutar nekoliko sekundi nakon javljanja prepozna telefonsku tajnicu umjesto osobe i prema postavci je samo označi, prekine vezu ili pričeka signal i ostavi poruku. Postavlja se na detaljima agenta (samo agent na pogonu), u API-ju i MCP-u poljem `voicemail`. Ispis poziva tada kod odlaznog poziva s govornom poštom prikazuje „Javila se govorna pošta“ umjesto uobičajenog ishoda. Standardna platforma (ElevenLabs) nema prepoznavanje.
- Podsjetnik u tišini reproducira samo vlastiti glasovni pogon volai - kada pozivatelj dugo šuti, agent jednom pita je li još tu. Postavka (uključeno/isključeno, broj sekundi 3 do 25) sprema se kod oba pružatelja - kod agenta na standardnoj platformi (ElevenLabs) polje je na detaljima agenta zasivljeno, a vrijednost će se čuti tek nakon prebacivanja na pogon. Vlastiti tekst poticaja (`silencePromptText`, do 80 znakova, umjesto zadanog "Jeste li tu?") sprema se jednako.
- Zaštita prve rečenice zna samo vlastiti glasovni pogon volai i samo kod odlaznih poziva: dok prva rečenica svira (zadani broj sekundi, 0 do 20), kratka reakcija osobe koja je podigla slušalicu ("Halo?", "Da?") ne prekida je. Replika pozvane osobe bez prekidača (stop, ne, trenutak, dosta, pričekajte) u zaštićenom prozoru se odbacuje: rečenicu ne prekida, nije u transkriptu i agent na nju ne reagira, dok se s prekidačem rečenica uvijek prekida. Polje `firstMessageProtectSecs` bez nametnute zadane vrijednosti sprema se kod oba pružatelja - kod agenta na standardnoj platformi (ElevenLabs) zasivljeno je na detaljima agenta i čut će se tek nakon prebacivanja na pogon. U transkriptu poziva replika agenta koju je pozivatelj prekinuo tada nosi oznaku `interrupted`.
- Smijeh agentice samo vlastiti glasovni pogon volai zna reagirati smijehom kada se u pozivu nasmijete ili našalite vi ili pozivatelj - i to samo kod češkog glasa Cartesia (Milena, Jan i drugi iz kataloga). Standardna platforma (ElevenLabs) smijeh uopće ne zna, čak i ako polje postavite. U postavkama agenta birate Automatski (pogon sam isključuje smijeh kod osjetljivih tema, primjerice dugova, zdravstva, ureda ili pogrebnih usluga), Uključeno (nadjačava ovo prepoznavanje) ili Isključeno. Promjena vrijedi od sljedećeg poziva.
18Kalendar i termini
Agent na vlastitom glasovnom pogonu volai može u samom pozivu doznati slobodan termin u vašem Google ili Apple kalendaru i sastanak odmah upisati - kaže pozivatelju je li vrijeme slobodno, ponudi najbliže slobodne termine i nakon potvrde imena upiše sastanak. Uključuje se u uređivaču agenta na kartici Kalendar: odaberete vezu (Podaci i integracije), konkretan kalendar i pravila dostupnosti.
- Pravila dostupnosti prozori prema danu u tjednu (kada agent uopće nudi termine), trajanje sastanka, razmak između termina, minimalni predstanak prije dogovorenog vremena i horizont koliko unaprijed agent traži. Zadane vrijednosti uređivač ispunjava sam, ali se mogu prilagoditi za svakog agenta zasebno.
- Ugrađeni alati kalendar koristi dva ugrađena alata, check_availability i book_appointment - za razliku od vlastitih alata iz poglavlja Alati iznad ne otvaraju se ručno, uključuju se sami zajedno s kalendarom i ne ubrajaju se u ograničenje alata po računu.
- Samo vlastiti pogon volai radi isključivo kod agenta na vlastitom glasovnom pogonu volai. Kada kalendar uključite kod agenta na standardnoj platformi (ElevenLabs), postavka se sprema i agent se odmah po spremanju pokušava prebaciti na pogon volai - jednako kao kod preusmjeravanja na osobu.
- Što agent kaže, a što ne agent nikada ne čita što je u kalendaru upisano - samo je li dano vrijeme slobodno. Telefon pozivatelja upisuje se u događaj samo kada ga agent zna (skriveni broj znači događaj bez telefona).
- I izvan poziva isto traženje slobodnih termina i upis sastanka ide i izvan poziva preko REST-a (POST /v1/integrations/{id}/availability, POST /v1/integrations/{id}/events) i MCP-a (find_free_slots, create_calendar_event) - pojedinosti u odjeljku Kalendari u referenci REST API-ja i u referenci MCP-a.
Povezano
MCP server
Connect Claude Code, Codex CLI, Codex desktop, Cursor and other AI editors.
REST API
Complete reference for every endpoint: numbers, calls, SMS, mobile numbers for SMS, agents and their drafts, tools, recordings, webhooks, do-not-call list, relay, account, tasks, credit, documents, calendars and integrations.
Webhooks
Events, structured data in the body, signature verification, retries on failure.
Bring your own agent
Connect a third-party platform (ElevenLabs, Asterisk...) - no agent surcharge.