Preskoči na vsebino

Vodniki

Glasovni agent

Agent je tako dober kot njegov sistemski poziv. Na tej strani izveste, kako ga napisati, dobite tri vzorce za kopiranje in omejitve, ki jih morate upoštevati pri načrtovanju.

Številka asistenta

Agent sprejema in opravlja klice s številke, ki mu jo dodelite v podrobnostih agenta (v API polje numberE164). Glasovna številka klice sprejema in opravlja, SMS pa ne. Če želite, da ima vaš asistent številko, na katero lahko ljudje kličejo in pišejo SMS ter s katere on kliče in pošilja SMS, naročite številko za klice in SMS: praško stacionarno številko, ki jo po registraciji pri operaterju (običajno v 1 delovnem dnevu, najkasneje v 48 urah) prevzame agent, ki teče na lastnem glasovnem pogonu volai. Klici z nje gredo samo na češke številke (+420), njena SMS pa nimata poročil o dostavi. Podrobnosti so v referenci API v razdelku Številka za klice in SMS.

1Zgradba systemPrompt

Dober poziv ima štiri dele. Če izpustite katerega koli, se bo agent prej ali slej zataknil in ne bo vedel, kaj naprej - ali utihne ali si kaj izmisli.

  • Kdo sem - en ali dva stavka: ime podjetja, vloga, ton govora. Agent mora to identiteto vzpostaviti že v prvi vrstici.
  • Kaj zmorem - konkretne naloge, ki jih agent res opravlja (naročila, termini, informacije) - ne nejasno „pomagam z vsem“.
  • Kaj NIKOLI ne storim - meje: česa agent nikoli ne sme izmisliti, obljubiti ali razkriti. Ta del se najpogosteje izpusti, a prav on loči agenta, ki si izmišlja cene, od tistega, ki pošteno reče „ne vem, pokličite ...“.
  • Kako zaključim klic - kdaj in kako zaključiti klic (povzetek, slovo) in kaj storiti, ko klicatelj želi nekaj, kar presega pristojnosti.

Daljša navodila upočasnijo odziv za približno desetinko sekunde na vsaki dve tisoč znakov - urejevalnik agenta na to opozori od 3000 znakov. Trda omejitev je 6000 znakov.

Trije popolni vzorci - skopirajte jih in prilagodite svojemu primeru:

Receptorka v kavarni

text
Ste glasovna receptorka kavarne Nula Cafe na Vinohradih. Govorite
mirno, prijazno in kratko - tako, kot bi govorila izkušena sodelavka,
ne kot robot.

KAJ ZMOREDE
- Sprejemati naročila za prevzem (kava, čaj, rogljički, sendviči).
- Klicateljem povedati trenutni delovni čas: od ponedeljka do petka
  8.00-18.00, ob koncih tedna 9.00-15.00.
- Ob koncu naročila ga v celoti ponoviti in potrditi uro prevzema
  (najprej čez 15 minut).

KAJ NIKOLI NE STORITE
- Nikoli si ne izmišljajte cen ali artiklov, ki jih ni na jedilniku -
  povejte, da bo točno ceno na kraju samem potrdilo osebje.
- Nikoli ne obljubljajte dostave, kavarna ne dostavlja.
- Nikoli se ne izdajajte za človeka, če vas klicatelj vpraša naravnost -
  povejte, da ste glasovna asistentka kavarne.

KAKO ZAKLJUČITI KLIC
Povzemite naročilo in uro prevzema, zaželite lep dan in končajte klic.
Če klicatelj želi nekaj, česar ne obvladate (pritožbe, catering), mu
recite, naj pokliče znova v delovnem času in se pogovori neposredno z
lastnikom.

Anketa o zadovoljstvu

text
V imenu spletne trgovine Botanika kličete zaradi kratke ankete o
zadovoljstvu po nedavnem naročilu. Ste vljudni, takoj preidete k bistvu
in klica ne vlečete v dolžino.

KAJ ZMOREDE
- Vprašati stranko, ali ima minuto časa za tri hitra vprašanja.
- 1. vprašanje: kako bi na lestvici od 1 do 5 ocenila zadovoljstvo
  z naročilom.
- 2. vprašanje: ali je paket prispel pravočasno.
- 3. vprašanje: ali bi lahko kaj izboljšali.
- Si zapomniti odgovore in jih ob koncu klica na kratko povzeti.

KAJ NIKOLI NE STORITE
- Nikoli ne silite stranke, ki zavrne ali reče, da nima časa - takoj
  vljudno končajte klic.
- Nikoli ne obravnavajte pritožb ali vračil - to sodi na linijo za
  podporo strankam, ki jo lahko na zahtevo preberete.
- Nikoli ne ponujajte popustov ali kuponov, za to nimate pooblastila.

KAKO ZAKLJUČITI KLIC
Zahvalite se za čas in povratne informacije ter zaželite lep dan. Če
stranka kadar koli reče, da ne želi nadaljevati, takoj vljudno končajte
klic, brez dodatnih vprašanj.

Recepcija / vratarnica

text
Ste glasovna vratarska služba poslovne stavbe Nordwex na Pankráci.
Na to številko kličejo kurirji, obiskovalci in dobavitelji.

KAJ ZMOREDE
- Ugotoviti, kdo kliče in zakaj (kurir s paketom, obiskovalec na
  sestanek, dobavitelj).
- Obiskovalca vprašati po imenu in po tem, s kom ima sestanek, nato mu
  povedati, naj se prijavi na recepciji v pritličju in počaka, da pride
  kdo ponj.
- Kurirju povedati, naj paket pusti na recepciji in nanj napiše ime
  podjetja in prejemnika.
- Sprejeti kratko sporočilo, kadar osebe, ki jo kliče, trenutno ni.

KAJ NIKOLI NE STORITE
- Nikoli ne razkrivajte zasebnih mobilnih številk zaposlenih - ponudite
  preusmeritev na recepcijo ali sprejem sporočila.
- Nikoli ne pustite nikogar „samega gor“ - vsi obiskovalci gredo prek
  recepcije.
- Nikoli ne razkrivajte, kdo je trenutno v stavbi in kdaj - recite, naj
  se pozanimajo na recepciji.

KAKO ZAKLJUČITI KLIC
Ponovite dogovorjeno (sporočilo, čakanje na recepciji, preusmeritev),
zaželite lep dan in končajte klic.

2Predloge po panogah

Ne želite pisati poziva iz nič? Na spletni strani so na voljo pripravljene predloge za šest panog (zobozdravstvena ordinacija, avtoservis, restavracija, spletna trgovina, nepremičninska agencija, obrtniki) - popoln sistemski poziv, vzorčni dialog in primer, koliko bi takšna receptorka stala. Skopirajte in prilagodite, tako kot zgornje vzorce.

Brskaj po predlogah po panogah

3firstMessage

firstMessage je prvi stavek, ki ga stranka sliši - takoj po dvigu pri dohodnem klicu oziroma takoj ko se poklicani oglasi pri odhodnem.

  • Kratek, govorjen jezik - tako, kot bi ga rekel človek, ne tako, kot bi ga napisal v e-pošti.
  • Takoj povejte, kdo kliče ali se oglaša - stranka mora v treh sekundah vedeti, s kom govori.
  • Zaključite z odprtim vprašanjem („kako vam lahko pomagam“, „imate minuto“) - ne z dolgim monologom.
  • Preberite ga na glas - besedilo, ki izgleda dobro zapisano, lahko izgovorjeno zveni okorno.
  • Pri odhodnih klicih se predstavite in navedite razlog klica že na začetku - ljudje so do neznanih številk previdni.

4Orodja

Orodje je naslov vašega API-ja, ki ga agent pokliče sredi klica in odgovor takoj uporabi v govoru. Brez orodja lahko agent samo govori; z njim lahko preveri naročilo, poišče prosti termin ali zabeleži rezervacijo.

Orodja se ustvarijo v portalu na /agent/nastroje (ali prek POST /v1/tools), nato pa se agentu vklopijo z potrditvenim poljem na njegovi podrobnostni strani (v API polje toolIds). Orodje pripada računu, ne agentu - isto orodje lahko uporablja več agentov. Zanj navedete štiri stvari:

  • Ime - berljivo ime („Preveri naročilo“). Ime, ki ga vidi model, se iz njega izpelje samodejno (overit_objednavku) in se prikaže pod poljem.
  • Kdaj naj ga agent uporabi - edino, na podlagi česar se model sploh odloči za klic orodja. Napišite ga kot navodilo: „Uporabi, ko klicatelj vpraša, kje je njegovo naročilo.“
  • Naslov in metoda - samo https, javno dosegljiv. GET pošlje parametre v poizvedbenem nizu, POST v telesu JSON. Poleg tega glave, običajno Authorization.
  • Parametri - pri vsakem določite, od kod prihaja njegova vrednost: model jo povzame iz klica, številka klicatelja ali poklicana številka se vstavi samodejno, ali pa je fiksna vrednost.

Tako izgleda zahteva, ki med klicem prispe na vaš končni naslov:

http
POST https://api.yourapp.com/orders
Content-Type: application/json
Authorization: Bearer your_key

{
  "order_number": "A-42",
  "phone": "+420777123456"
}

In to je odgovor, s katerim agent zna delati - kratek JSON, ki ga lahko spremeni v en sam stavek:

json
{
  "status": "shipped",
  "delivery": "tomorrow morning"
}

Preizkusite orodje, preden ga shranite

Obrazec ima gumb Preizkusi: na navedeni naslov pošlje pravo zahtevo z vzorčnimi vrednostmi in prikaže stanje, odzivni čas in začetek odgovora. Pri tem se nič ne shrani. Vredno je to narediti - končni naslov, ki odgovarja počasi, klicatelj med klicem sliši kot tišino.

Omejitve: največ 10 orodij na račun, 10 parametrov in 5 glav na orodje, časovna omejitev odgovora od 5 do 30 sekund (privzeto 20) - toliko časa agent natančno čaka in medtem izreče premostitveni stavek, da klicatelj ne sliši tišine. Vrednosti glav vam prikažemo samo prikrite (Bear***) - polne vrednosti iz računa ni mogoče znova prebrati.

Potrditvena zapora za orodje, ki nekaj pošilja

Pri orodju s stranskim učinkom (pošlje SMS, ustvari zahtevo) vklopite potrditveno zaporo s poljem requireConfirmation: true (POST in PATCH /v1/tools, v MCP create_tool in update_tool). Glasovni pogon volai nato orodje zažene samo, če zadnji odgovor klicatelja jasno pomeni da. Pri nejasnem odgovoru („Halo?“, „Da?“, „Da, ampak kasneje“) se orodje ne zažene, agent dobi navodilo, naj vpraša znova, poskus zaključka klica v istem krogu pa se zadrži. Privzeto je izklopljeno.

Velja samo za agenta na lastnem pogonu volai v češčini ali slovaščini: pogon pozna besede soglasja samo v teh dveh jezikih (za en, de in pl bi zaprl celo jasen „Yes“), zato se polje pri agentu v drugem jeziku prezre, ElevenLabs pa ga ne uporablja. Orodje pripada računu in ga deli več agentov, zato shranjevanja nikoli ne zavrnemo zaradi jezika. Zapora bere samo zadnji odgovor klicatelja in ne pozna agentovega vprašanja: ujame nejasno soglasje, ne vsakega „da“, izrečenega ob drugem vprašanju. Sprememba orodja doseže agenta, ki že teče na pogonu, šele ob njegovem naslednjem shranjevanju ali objavi - urejanje orodja agentov nikoli ne prepiše samo od sebe. Pri tekoči kampanji je pomembna pot: ponovna objava preizkušenega osnutka brez sprememb ohrani oznako preizkušenosti, zato naloga teče naprej, zdaj z zaporo, ki je preizkus ni pokril; neposredno shranjevanje agenta (PATCH /v1/agents/{id}) oznako preizkušenosti izbriše in nalogo ustavi z agent_version_changed. Vklop zapore načrtujte zunaj tekoče kampanje in kampanjo nato znova preizkusite.

V portalu zaporo vklopite s stikalom Zahtevaj jasno soglasje klicatelja v urejevalniku orodja (/agent/nastroje). Veljajo ista pravila, kot so opisana zgoraj; pri agentu, ki že teče na pogonu, sprememba prispe z gumbom Objavi na njegovi podrobnostni strani.

5Preusmeritev na osebo

Agent lahko klic preusmeri na vašo številko, ko klicatelj zahteva osebo ali naleti na nekaj, česar agent ne more rešiti. Vklopi se na podrobnostni strani agenta (v API polje transferTo); pogoj napišete kot navodilo modelu v transferCondition. Če ga ne navedete, uporabimo privzeti stavek.

Na lastnem glasovnem pogonu volai

Na lastnem glasovnem pogonu volai je preusmeritev izvedena z mostom: agent pove, da vas povezuje, klicatelj sliši zvonjenje, človek na vaši številki pa vidi številko agenta. Ko dvignete, agent utihne in klic se nadaljuje med vama prek volai. Če kdo od vaju odloži, se klic konča za oba. Če se v 25 sekundah ne oglasite, se agent klicatelju opraviči, ponudi sprejem sporočila in nadaljuje.

Dve stvari, ki jih je dobro vedeti vnaprej

Človeku ne posredujemo povzetka klica. Klicatelj sliši, da ga preusmerjajo, a oseba na drugi strani klicatelja prevzame neposredno - ni „tople preusmeritve“, pri kateri bi agent človeka najprej seznanil z zadevo; telefonsko omrežje tega ne podpira. Upoštevajte to v navodilih: agent naj klicatelju pove, da bo morda moral stvari ponoviti.

Preusmeritev je navaden odhodni klic in se obračuna kot tak: 0.92 CZK/min od dviga do odložitve, brez doplačila za agenta (agenta na tem kraku ni več). V zgodovini klicev ga prepoznate po vrsti transfer, podrobnosti prvotnega klica pa vsebujejo kartico Preusmeritev s povezavo na ta krak. Dohodni krak teče naprej in se obračuna posebej.

Standardna platforma (ElevenLabs)

Na standardni platformi (ElevenLabs) preusmeritev ne deluje - SIP operater je nikoli ne dokonča. Ko preusmeritev vklopite, volai takoj po shranjevanju poskusi agenta prestaviti na lastni glasovni pogon. Poskus je lahko zaustavljen, pogon morda ni na voljo ali pa preklop spodleti; z vrnjenim poljem provider preverite, ali je agent res na pogonu. Dokler ostane na ElevenLabs, preusmeritev ne deluje. Uspešen preklop lahko spremeni agentov glas; privzeti glas pogona je Milena.

Preusmeritev na lastno številko volai ni mogoča - klic bi se zankal vase, dokler ne bi pošel kredit. Iz istega razloga so prepovedane tudi linije s posebno tarifo (90x).

Agent, ki uporablja številko za klice in SMS, preusmerja samo na češke številke (+420): klici s te številke gredo samo na češke številke, zato se številka za preusmeritev zunaj +420 za takega agenta ne shrani in API vrne destination_not_allowed.

6Podatki iz klicev

Namesto branja celotnega prepisa lahko natančno določite, kaj želite iz klica - ime, število artiklov, ali je nujno. Agent to izpolni po klicu, vi pa dobite rezultat kot JSON.

Vsako polje ima ključ, tip in opis. Do deset polj na agenta:

  • Ključ (key) - male črke, števke in podčrtaji, do 40 znakov - začeti se mora z malo črko. Vrednost boste v rezultatu našli pod tem imenom.
  • Tip (type) - string, number ali boolean.
  • Opis (description) - natančno, kaj naj model izlušči, od 5 do 500 znakov. Navedite tudi, kaj naj stori, če klic tega ne omenja.
  • Možnosti (enumValues) - neobvezen seznam, samo za besedilna polja. Model nato izbira samo med ponujenimi vrednostmi, zato je rezultat mogoče neposredno filtrirati. Največ 20 možnosti, vsaka do 60 znakov.
bash
curl -X PATCH https://volai.eu/v1/agents/ag_kx91fa2b \
  -H "Authorization: Bearer vk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "dataFields": [
      {"key": "name", "type": "string", "description": "Ime klicatelja, kot ga je navedel. Če ni omenjeno, pustite prazno."},
      {"key": "coffee_count", "type": "number", "description": "Koliko kav je klicatelj naročil."},
      {"key": "urgency", "type": "string", "description": "Kako nujna je bila zahteva.", "enumValues": ["low", "normal", "high"]}
    ]
  }'

Rezultat se pokaže na treh mestih: na podrobnostni strani klica v portalu kot kartica „Zajeti podatki“, v polju data pri klicu (tako GET /v1/calls kot GET /v1/calls/{id}) in v telesu webhooka call.completed.

json
{
  "call": {
    "id": "c_8f2ac1d4",
    "status": "completed",
    "hasRecording": true,
    "data": {
      "name": "Jana Novak",
      "coffee_count": 2,
      "urgency": "normal"
    }
  }
}

Vrednost null pomeni „v klicu ni omenjeno“ - enako velja, če model vrne prazen niz. Če agent nima nastavljenih polj, ključa data v odgovoru sploh ni.

7Cilj agenta in vrednotenje

Cilj je en stavek, ki opisuje, kaj naj klic doseže - „dogovori ogled“, „ugotovi, ali ima stranka zanimanje za ponudbo“. Vpišete ga v polje „Cilj agenta“ v portalu (ob ustvarjanju agenta ali kadar koli pozneje pri urejanju) ali prek REST API in MCP v polje goal pri POST/PATCH /v1/agents ter create_agent/update_agent (do 300 znakov).

Cilj agent dobi kot merilo za vrednotenje klica: ko se klic konča, model prebere prepis in presodi, ali je bil cilj dosežen, ni bil dosežen ali iz klica ni mogoče ugotoviti. Rezultat vidite pri klicu v portalu - na podrobnostni strani klica in na seznamu klicev - ter tudi v e-pošti po klicu, ob povzetku.

To je ocena modela, ne dejstvo

Vrednotenje bere samo prepis klica, ne tega, kaj se je zgodilo potem (ali se je stranka res pojavila). Iskrena pripomba: cilj agenta (goal) je mogoče nastaviti in prebrati prek REST API in MCP, a REZULTAT vrednotenja posameznega klica ostaja samo v portalu in v e-pošti po klicu - GET /v1/calls in get_call ga ne vračata. Vrednotenje teče tudi samo za agente na novem glasovnem pogonu volai - na kateri platformi agent teče, pove polje provider (GET /v1/agents, list_agents in podrobnostna stran agenta v portalu); preklop opravi volai. Starejši agenti, ki ostajajo na prvotni platformi, ga bodo dobili šele po prenosu na ta pogon.

Kaj agent ve (podlage)

Poleg navodil lahko agentu date podlage - delovni čas, cenik, pogosta vprašanja. Vpišete jih v polje „Kaj agent ve“ v portalu (razdelek Napredno) ali v polje knowledge pri POST/PATCH /v1/agents. Besedilo se pripne na konec poziva, sme obsegati 20000 znakov, PATCH s prazno vrednostjo pa ga izbriše. Za razliko od orodja se te podlage med klicem nikoli ne spreminjajo - vse, kar se spreminja (stanje naročila, prosti termini), sodi v orodje, ne sem.

8E-pošta po klicu

Ko se klic z agentom konča, vam volai pošlje e-pošto s povzetkom in povezavo na podrobnosti klica v portalu - isti povzetek, ki ga v API vidite v polju summary. Pošlje se za agente na lastnem glasovnem pogonu volai (provider: "engine"); agent na ElevenLabs (provider: "elevenlabs") je še ne dobi.

Stikalo „E-pošta po vsakem klicu“ je na strani Nastavitve - z izklopom se pošiljanje ustavi za ves račun naenkrat. Za enega samega agenta ga ustavite s potrditvenim poljem „Pošlji mi e-pošto po vsakem klicu“ na podrobnostni strani tega agenta (v API polje notifyEmail: false). Za en klic dobite največ eno e-pošto, klic brez vsebine za poročanje (brez povzetka, brez zbranih podatkov in brez razloga zaključka) je ne sproži.

9Posnetki

Klici z agentom se snemajo in jih lahko predvajate neposredno na podrobnostni strani klica v portalu - klik v prepisu preskoči na ustrezno mesto v posnetku. Za prenos ali predvajanje drugje uporabite GET /v1/calls/{id}/recording (isti API ključ) - format sledi glavi odgovora content-type: audio/mpeg (MP3) za agenta na ElevenLabs, audio/ogg danes za agenta na pogonu volai. Polje hasRecording pove, ali ima klic posnetek.

  • Hranimo jih 90 dni po klicu, nato jih izbrišemo. Prepis in povzetek se hranita ločeno in se z izbrisom posnetka ne izbrišeta. Po devetdesetih dneh končna točka vrne recording_expired.
  • Izklopite ga lahko za posameznega agenta s stikalom na njegovi podrobnostni strani ali s poljem recordCalls: false v API. Za klice, začete od tistega trenutka naprej, se posnetek ne ustvari; klic, ki že zvoni ali teče, sledi nastavitvi iz trenutka, ko se je začel (odhodni klic iz trenutka izbiranja), zato se še vedno posname.
  • Snemajo se samo klici, ki jih obravnava vgrajeni agent. Neposredni most med dvema številkama, relay klic in SIP klic se nikoli ne snemajo.

Obveščanje klicatelja je vaša odgovornost

Snemanje klica je obdelava osebnih podatkov. Agent klicatelja sam od sebe ne obvesti - če želite, da to stori, pri agentu vklopite „Povej klicatelju, da se klic snema“ (v API recordingNotice: true) in volai prvemu agentovemu sporočilu doda kratko vrstico, da se klic snema. Enako lahko to napišete tudi sami v uvodno vrstico. Da razkritje ustreza zakonodaji v vašem primeru, je vaša odgovornost kot upravljavca podatkov.

Vsaka napaka API nosi cause (kdo jo odpravi) in action (kaj storiti) - glej Oblika napake v referenci REST API.

10Omejitve

  • Klic traja največ 10 minut (600 sekund), nato ga agent sam konča.
  • Če klicatelj 20 sekund molči, agent to obravnava kot konec klica in odloži.
  • Agent odgovori približno 1 sekundo po tem, ko nehate govoriti - v pravem prometu se to nekoliko spreminja glede na obremenitev.

11Jeziki

Agent lahko govori pet jezikov - češčino (privzeto), slovaščino, angleščino, nemščino in poljščino - jezik nastavite na podrobnostni strani agenta (polje language v POST/PATCH /v1/agents, create_agent/update_agent). Poseben glas za vsak jezik (Cartesia) je na voljo samo agentu, ki teče na lastnem pogonu volai (glej poglavje Glasovi spodaj) - agent, ki ostane na ElevenLabs, izbrani jezik govori z glasom Anet.

12Preizkusni klic

Gumb „Pokliči me za preizkus“ na podrobnostni strani agenta v portalu naredi, da agent opravi pravi klic na številko, ki jo vnesete - hiter preizkus, kako zveni in kako se odziva na vaš sistemski poziv, brez ročnega klicanja njegove številke.

Obračuna se kot navaden odhodni klic z agentom, vključno z doplačilom za agenta (glej poglavje Cenik spodaj) - brez popusta, brez posebne tarife.

Agent na lastnem glasovnem pogonu volai lahko opravi preizkusni klic tudi brez lastne telefonske številke - kliče prek skupne linije volai, zato poklicani na zaslonu vidi številko volai, ne agentove. Agent na ElevenLabs brez lastne številke ne more začeti preizkusnega klica, dokler mu je ne dodelite.

Največ 3 poskusi preizkusnega klica na račun na dan, skupaj za vse agente - šteje vsak poskus, ki se je res povezal, tudi če se nihče ni oglasil; poskus, ki je spodletel, preden se je lahko povezal (premalo kredita, zasedena linija), se v omejitev ne všteje. Navadni klici prek POST /v1/calls te strožje omejitve nimajo.

13Glasovi

Izbira ponudnika ob ustvarjanju ima tri stanja: useForOutboundTasks: true v POST /v1/agents ali create_agent izbere lastni glasovni pogon volai, false začne na ElevenLabs tudi pri preusmeritvi, izpustitev pa uporabi privzeto vrednost namestitve, ki je odvisna od razpoložljivosti pogona, njegove omogočenosti in nastavljenih jezikov. Sama izbira cs ali sk pogona ne zagotavlja; kadar je privzeti pogon onemogočen, se ustvarjanje začne na ElevenLabs. Kadar izrecni false preglasi privzeti pogon za jezik, odgovor ob ustvarjanju vsebuje opozorilo elevenlabs_by_explicit_choice, zato agenta, namenjenega samo dohodnim klicem, ustvarite brez tega polja. Ko pri agentu na ElevenLabs vklopite transferTo, ga volai po shranjevanju poskusi prestaviti na pogon. Poskus je lahko zaustavljen, ni na voljo ali spodleti, zato rezultat preverite z naknadnim GET /v1/agents/{id} pri REST oziroma v vrnjenem agentu pri MCP. Polje provider pove, na kateri platformi agent teče; preusmeritev ne deluje, dokler ostane na ElevenLabs. Uspešen preklop lahko spremeni njegov glas. Isti poskus sledi spremembi language pri agentu na ElevenLabs iz jezika, v katerem novi agenti začnejo na ElevenLabs (danes en, de, pl), v jezik, v katerem začnejo na pogonu (cs, sk); agent nato dobi privzeti glas pogona za novi jezik (Milena, Katarina). Sprememba med cs in sk ničesar ne prestavi. Prenos med platformama sicer opravi podpora volai. ElevenLabs iz kataloga sprejme samo katty ali surov ID glasu ElevenLabs; drugi glasovi iz kataloga zahtevajo pogon.

voiceId pri create_agent/update_agent (in istoimensko polje v POST/PATCH /v1/agents) izbere agentov glas. Nefiltriran seznam GET /v1/voices (MCP list_voices brez argumenta provider) glasu ElevenLabs katty ne prikaže - REST ga vrne samo z ?provider=elevenlabs, MCP z argumentom provider: "elevenlabs". Glasovi Cartesia (Milena, Jan in glasovi za druge jezike) so za agente na lastnem pogonu volai, Katty za agente na ElevenLabs (na kateri platformi agent teče, pove opomba zgoraj). Starejši glas anet ostaja samo pri agentih, ki ga že imajo - od 12. 9. 2026 ga ElevenLabs novim agentom ne dodeljuje več in volai takšno zahtevo zavrne s pojasnilom. Pri ustvarjanju z izrecnim useForOutboundTasks: true se prepoznan glas iz kataloga, ki na pogonu ni na voljo, vključno s katty, zamenja s privzetim glasom pogona za izbrani jezik; kadar pogon izbere izpuščeno polje prek privzete vrednosti namestitve, se isti nezdružljiv glas zavrne. Surov ID ElevenLabs se za pogon vedno zavrne. Brez voiceId agent dobi privzeti glas svojega ponudnika - Milena na pogonu, glas predloge (Katty) na ElevenLabs.

Katalog ponuja za vsak jezik vsaj en ženski in en moški glas (za češčino danes štiri): 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. Portal ponuja samo glasove v izbranem jeziku agenta - preklapljajo se skupaj (glej poglavje Jeziki zgoraj).

Vsak glas v tabeli pripada lastnemu glasovnemu pogonu volai. Za agenta na ElevenLabs jih API zavrne s 400 - ta agent sprejme samo katty (ki ga nefiltriran seznam ne prikaže) in surov ID glasu ElevenLabs.

idOpisPredogled
milenaMilena - The default volai voice - calm and natural, a good fit for most agents.
janJan - The male counterpart to Milena - matter-of-fact, easy-to-follow delivery.
terezaTereza - The second female voice - professional, well-structured delivery.
marekMarek - The second male voice - calm, resonant delivery for longer calls.
katarinaKatarina - Slovak female voice - calm, natural delivery.
peterPeter - Slovak male voice - matter-of-fact, easy-to-follow delivery.
skylarSkylar - English female voice - calm, friendly delivery.
danielDaniel - English male voice - matter-of-fact, confident delivery.
alinaAlina - German female voice - calm, warm delivery.
lukasLukas - German male voice - matter-of-fact, easy-to-follow delivery.
ewaEwa - Polish female voice - calm, natural delivery.
kacperKacper - Polish male voice - matter-of-fact, confident delivery.
arielAriel - Dutch female voice - natural conversational delivery.
alexanderAlexander - Dutch male voice - warm, natural delivery.
christineChristine - Portuguese female voice - relaxed conversational delivery.
filipeFilipe - Portuguese male voice - natural, expressive delivery.
mikidutzaMikidutza - Romanian female voice - clear, friendly delivery.
oliverOliver - Romanian male voice - matter-of-fact, clear delivery.
isabellaIsabella - Danish female voice - warm, calm delivery.
sorenSøren - Danish male voice - clear, confident delivery.
yoanaYoana - Bulgarian female voice - fresh, engaging delivery.
peterkPeter K - Bulgarian male voice - warm, smooth delivery.
soiliSoili - Finnish female voice - neutral, light delivery.
jussiJussi - Finnish male voice - strong, lively delivery.
crhysaCrhysa - Greek female voice - professional, lively delivery.
iordanisIordanis - Greek male voice - natural conversational delivery.
natashaNatasha - French female voice - soft, conversational delivery.
maxMax - French male voice - charismatic, friendly delivery.
rossanaRossana - Italian female voice - warm conversational delivery.
marcoMarco - Italian male voice - charismatic, friendly delivery.
zsofiaZsófia - Hungarian female voice - soft, inviting delivery.
gaborGábor - Hungarian male voice - warm, natural, confident delivery.
sannaSanna - Swedish female voice - direct, natural delivery.
filipFilip - Swedish male voice - energetic, expressive delivery.
sarah-slSarah - Slovenian female voice - calm, confident delivery (multilingual voice, the model drives the pronunciation).
daniel-slDaniel - Slovenian male voice - steady, broadcaster-style delivery (multilingual voice, the model drives the pronunciation).
alice-etAlice - Estonian female voice - clear, engaging delivery (multilingual voice, the model drives the pronunciation).
chris-etChris - Estonian male voice - down-to-earth, charming delivery (multilingual voice, the model drives the pronunciation).
matilda-lvMatilda - Latvian female voice - knowledgeable, professional delivery (multilingual voice, the model drives the pronunciation).
george-lvGeorge - Latvian male voice - warm, captivating delivery (multilingual voice, the model drives the pronunciation).
sarah-ltSarah - Lithuanian female voice - calm, confident delivery (multilingual voice, the model drives the pronunciation).
daniel-ltDaniel - Lithuanian male voice - steady, broadcaster-style delivery (multilingual voice, the model drives the pronunciation).

voiceId sprejme tudi surov ID ElevenLabs, a samo za agenta na standardni platformi (provider: "elevenlabs"). Za agenta na pogonu uporabite id glasu iz kataloga. Neznana vrednost ali vrednost, ki ni združljiva s ponudnikom, vrne napako s seznamom veljavnih možnosti.

14Statistika

Zaslon s podrobnostmi agenta v portalu prikazuje število sprejetih klicev, njihovo povprečno in najdaljšo dolžino ter koliko jih je bilo v zadnjih 30 dneh - za to ni posebnega API, enake številke lahko izračunate sami iz GET /v1/calls.

15Cenik

Glasovni agent se obračuna povrh cene klica, na sekundo - brez zaokroževanja na cele minute. Tarife so brez DDV, tako kot ves cenik.

SmerKlicAgentSkupaj
Odhodni0.92 CZK/min (~EUR 0.04)2.50 CZK/min (~EUR 0.10)3.42 CZK/min (~EUR 0.14)
Dohodni0.50 CZK/min (~EUR 0.02)2.50 CZK/min (~EUR 0.10)3.00 CZK/min (~EUR 0.13)

Celoten cenik s primeri je na strani Cenik.

Raje uporabljate lastni ElevenLabs, Vapi ali drugo platformo? Doplačilu za agenta se izognete z lastnim agentom - glej Pripeljite lastnega agenta.

16Prepisi in webhook

Ko se klic konča, prepis in povzetek pridobite prek GET /v1/calls/{id} (polja transcript in summary) - ali pa jih volai pošlje na vaš URL kot dogodek call.completed, ko so pripravljeni. Format prepisa, preverjanje podpisa in obravnava napak so na strani Webhooki.

Ne želite čakati na webhook ali spraševati API? V portalu podrobnostna stran vsakega agenta prikazuje tudi seznam zadnjih klicev s prepisom, ki ga lahko preberete kar tam.

17Glasovni pogon volai

Nekateri agenti danes tečejo na lastnem glasovnem pogonu volai namesto na ElevenLabs. Preklop spremeni usmerjanje klicev, z njim pa se prenese vsa konfiguracija agenta - navodila, uvodna vrstica, podatkovna polja, cilj klica, podlage, orodja in preusmeritev klica. Kaj se spremeni in kaj ne:

  • Glasovi agent, ki je imel izbran glas ElevenLabs (Katty ali starejši Anet), po preklopu dobi privzeti glas pogona za svoj jezik - Milena za češčino. Pogon glasu ElevenLabs ne ponuja kot glavnega, ElevenLabs ostaja samo kot rezerva ob izpadu Cartesie. V nastavitvah agenta nato lahko izberete katerikoli drug glas iz kataloga za jezik agenta, med njimi Jan za češčino. Glas, ki ga agent že ima iz kataloga pogona, ostane nedotaknjen.
  • Odzivni čas ostaja enak kot pri ElevenLabs - približno 1 sekunda po tem, ko nehate govoriti.
  • Posnetki nespremenjeno - še vedno se hranijo 90 dni in se na enak način izklopijo na podrobnostni strani agenta.
  • Opozorilo o snemanju nespremenjeno - ko je pri agentu vklopljeno opozorilo o snemanju (`recordingNotice`), volai prvemu agentovemu sporočilu tudi tu doda kratko vrstico, da se klic snema (glej razdelek Posnetki zgoraj). Brez te možnosti ali ob izklopljenem snemanju se vrstica ne doda sploh.
  • Razkritje umetne inteligence nespremenjeno - uvodna vrstica gre ponudniku natanko tako, kot ste jo napisali. Ne vsiljujemo je: če vrstica ne pove, da klicatelj govori z digitalnim asistentom, vas samo opozorimo (EU AI Act, člen 50), shranjevanje vseeno uspe. Razkritje ostaja vaša odgovornost pri obeh ponudnikih.
  • Orodja in preusmeritev klica prenesejo se z agentom - uspešen preklop pogonu pošlje njegova orodja in nastavljeno preusmeritev na osebo, zato vam ju ni treba znova nastavljati. Na lastnem glasovnem pogonu volai preusmeritev deluje z mostom (enako kot v razdelku Preusmeritev na osebo zgoraj) - most je preverjen v vsakodnevnem delovanju, portal pa za agenta na pogonu prikaže poln obrazec za preusmeritev. Vklop preusmeritve pri agentu na standardni platformi (ElevenLabs) takoj po shranjevanju sproži poskus preklopa; rezultat preverite v `provider`, ker lahko zaustavljen poskus, nedosegljiv pogon ali napaka agenta pustijo na ElevenLabs, kjer preusmeritev ne deluje. Uspešen preklop lahko glas spremeni v privzeti glas pogona. Množična selitev številk po valovih zato preskoči agente z nastavljeno preusmeritvijo.
  • Zaznavanje odzivnika pri odhodnih klicih zmore ga samo lastni glasovni pogon volai - v nekaj sekundah po dvigu prepozna odzivnik namesto osebe in glede na nastavitev klic samo označi, odloži ali počaka na pisk in prebere sporočilo. Nastavi se v podrobnostih agenta (samo za agente na pogonu), prek API in MCP v polju `voicemail`. Seznam klicev nato pri odhodnem klicu z odzivnikom namesto običajnega izida pokaže „Oglasil se je odzivnik“. Standardna platforma (ElevenLabs) takega zaznavanja nima.
  • Opomnik ob tišini predvaja ga samo lastni glasovni pogon volai - ko klicatelj nekaj časa molči, agent enkrat vpraša, ali je še tam. Nastavitev (vklop/izklop, 3 do 25 sekund) se shrani za oba ponudnika - pri agentu na standardni platformi (ElevenLabs) je polje v podrobnostih agenta zasivljeno in vrednost se sliši, ko agent preklopi na pogon. Na enak način se shrani tudi vaš lasten stavek opomnika (`silencePromptText`, do 80 znakov, namesto privzetega opomnika za jezik agenta, ki je v slovenščini „Ste še tam?“).
  • Zaščita prve vrstice zmore jo samo lastni glasovni pogon volai in samo pri odhodnih klicih: medtem ko se predvaja prva vrstica (število sekund, ki jih nastavite, 0 do 20), je ne prekine kratek odziv osebe, ki se je oglasila („Halo?“, „Da?“): odgovor brez prekinitvene besede (na primer stop, ne, počakajte) se v zaščitenem oknu zavrže, zato vrstice ne prekine, ni v prepisu in agent nanj ne reagira, prekinitvena beseda pa jo vedno prekine. Prekinitvene besede sledijo jeziku agenta: angleškega agenta prekinejo stop, no, wait ali hold. Polje `firstMessageProtectSecs` se shrani za oba ponudnika brez vsiljene privzete vrednosti - pri agentu na standardni platformi (ElevenLabs) je v podrobnostih agenta zasivljeno in se sliši, ko agent preklopi na pogon. V prepisu klica ima agentov govorni obrat, ki ga je klicatelj prekinil, zastavico `interrupted`.
  • Smeh agenta samo lastni glasovni pogon volai se lahko zasmeje nazaj, ko se vi ali klicatelj med klicem zasmejete ali šalite - in to samo s češkim glasom Cartesia (Milena, Jan in preostali del kataloga). Standardna platforma (ElevenLabs) tega ne zmore sploh, tudi če je polje nastavljeno. V nastavitvah agenta izberete Samodejno (pogon smeh pri občutljivih temah, kot so izterjava, zdravstvo, uradi ali pogrebne storitve, izklopi sam), Vklopljeno (to zaznavanje preglasi) ali Izklopljeno. Sprememba velja od naslednjega klica.

18Koledar in termini

Agent na lastnem glasovnem pogonu volai lahko med klicem preveri prosti termin v vašem koledarju Google ali Apple in termin takoj rezervira - klicatelju pove, ali je čas prost, ponudi najbližje proste termine in termin rezervira, ko potrdi ime. Vklopite ga v zavihku Koledar urejevalnika agenta: izberite povezavo (Podatki in integracije), konkreten koledar in pravila razpoložljivosti.

  • Pravila razpoložljivosti okna po dnevih v tednu (kdaj agent sploh ponuja termine), dolžina termina, razmik med termini, najkrajši čas vnaprej pred rezerviranim časom in obzorje - kako daleč naprej agent išče. Urejevalnik izpolni privzete vrednosti, a vsak agent ima lahko svoje.
  • Vgrajena orodja koledar uporablja dve vgrajeni orodji, check_availability in book_appointment - za razliko od lastnih orodij iz poglavja Orodja zgoraj se ne ustvarjata ročno, vklopita se skupaj s koledarjem in se ne štejeta v omejitev orodij računa.
  • Samo na lastnem pogonu volai deluje samo za agenta na lastnem glasovnem pogonu volai. Če koledar vklopite agentu na standardni platformi (ElevenLabs), se nastavitev shrani in agent se takoj po shranjevanju poskusi preklopiti na pogon volai - enako kot pri preusmeritvi na osebo.
  • Kaj agent pove in česa ne agent nikoli ne prebere, kar je zapisano v koledarju - samo to, ali je določen čas prost. Telefonska številka klicatelja se dogodku doda samo, kadar jo agent pozna (skrita številka pomeni, da dogodek nima telefonske številke).
  • Tudi zunaj klica isto iskanje prostih terminov in rezerviranje termina delujeta tudi zunaj klica, prek REST (POST /v1/integrations/{id}/availability, POST /v1/integrations/{id}/events) in MCP (find_free_slots, create_calendar_event) - podrobnosti so v razdelku Koledarji v referenci REST API in v referenci MCP.