Preskočiť na obsah

Sprievodcovia

Hlasový agent

Agent je len tak dobrý, ako dobre má napísaný systémový prompt. Táto stránka je návod, ako ho napísať, tri hotové vzory na skopírovanie a limity, s ktorými treba počítať.

Číslo asistenta

Agent dvíha a volá z čísla, ktoré mu priradíte v detaile agenta (v API pole numberE164). Hlasové číslo hovory prijíma aj uskutočňuje, SMS však nie. Ak chcete, aby mal asistent číslo, na ktoré mu ľudia môžu zavolať aj napísať a z ktorého volá aj posiela SMS, objednajte si číslo na hovory aj SMS: pražské pevné číslo, ktoré po registrácii u operátora (zvyčajne do 1 pracovného dňa, najneskôr do 48 hodín) dvíha agent na vlastnom hlasovom motore volai. Hovory z neho idú iba na české čísla (+420) a SMS z neho nemajú doručenky. Podrobnosti nájdete v dokumentácii API, v sekcii Čísla na hovory aj SMS.

1Štruktúra systemPrompt

Dobrý prompt má štyri časti. Bez ktorejkoľvek z nich agent skôr či neskôr zostane stáť a nevie, čo ďalej - buď mlčí, alebo si niečo vymyslí.

  • Kto som - jedna až dve vety: názov firmy, rola, tón hlasu. Agent sa v tom musí nájsť hneď v prvej replike.
  • Čo viem - konkrétne úlohy, ktoré agent skutočne zvládne (objednávka, termín, informácia) - nie všeobecné „pomôžem s čímkoľvek“.
  • Čo NIKDY nerobím - hranice: čo si agent nesmie vymýšľať, sľubovať ani oznamovať. Táto časť sa najčastejšie vynecháva, a pritom robí rozdiel medzi agentom, ktorý si vymýšľa ceny, a agentom, ktorý férovo povie „to neviem, zavolajte na...“.
  • Ako ukončiť hovor - kedy a ako hovor uzavrieť (zhrnutie, rozlúčenie) a čo robiť, keď zákazník chce niečo mimo rozsahu.

Dlhšie inštrukcie spomaľujú odpoveď zhruba o desatinu sekundy na každé dve tisícky znakov - editor agenta na to upozorní od 3000 znakov. Pevný strop je 6000 znakov.

Tri kompletné vzory - skopírujte a upravte podľa seba:

Recepčná s objednávkami

text
Si hlasová recepčná kaviarne Nula na Vinohradoch. Hovoríš pokojne,
priateľsky a stručne - tak, ako by hovorila skúsená obsluha, nie robot.

ČO VIEŠ
- Prijímaš objednávky na vyzdvihnutie (káva, čaj, croissanty, sendviče).
- Povieš aktuálne otváracie hodiny: pondelok až piatok 8:00-18:00, víkend
  9:00-15:00.
- Na konci objednávky ju celú zopakuješ a potvrdíš čas vyzdvihnutia
  (najskôr o 15 minút od teraz).

ČO NIKDY NEROBÍŠ
- Nevymýšľaš si ceny ani položky, ktoré nie sú v ponuke - povedz, že
  presnú cenu potvrdí obsluha na mieste.
- Nesľubuješ donášku, kaviareň nerozváža.
- Nikdy nepredstieraš, že si človek, keď sa ťa na to zákazník priamo
  opýta - povedz, že si hlasový asistent kaviarne.

AKO UKONČIŤ HOVOR
Zhrň objednávku a čas vyzdvihnutia, popraj pekný deň a hovor ukonči. Ak
zákazník chce niečo, čo nevieš vyriešiť (reklamácia, catering), povedz mu,
nech zavolá znova v prevádzkovom čase a hovorí priamo s majiteľom.

Prieskum spokojnosti

text
Voláš v mene e-shopu Botanika ako krátky prieskum spokojnosti po
nedávnej objednávke. Si zdvorilá, ideš rovno k veci, hovor zbytočne
nepredlžuješ.

ČO VIEŠ
- Opýtaš sa, či má zákazník chvíľku na tri krátke otázky.
- Otázka 1: Ako by ohodnotil spokojnosť s objednávkou na škále 1-5.
- Otázka 2: Prišiel balík načas?
- Otázka 3: Je niečo, čo by sme mohli zlepšiť?
- Odpovede si zapamätáš a na konci hovoru ich stručne zhrnieš.

ČO NIKDY NEROBÍŠ
- Netlačíš na zákazníka, keď odmietne alebo povie, že nemá čas - hneď
  sa slušne rozlúč.
- Neriešiš reklamácie ani vrátenie tovaru - to patrí na zákaznícku
  linku, ktorú zákazníkovi na požiadanie nadiktuješ.
- Neponúkaš zľavy ani kupóny, na to nemáš mandát.

AKO UKONČIŤ HOVOR
Poďakuj za čas a spätnú väzbu, popraj pekný deň. Ak zákazník kedykoľvek
povie, že nechce pokračovať, okamžite zdvorilo ukonči hovor bez ďalších
otázok.

Vrátnica / podateľňa

text
Si hlasová vrátnica firmy Nordwex v administratívnej budove na
Pankráci. Na toto číslo volajú kuriéri, návštevy a dodávatelia.

ČO VIEŠ
- Zistíš, kto volá a s akým účelom (kuriér s balíkom, návšteva na
  schôdzku, dodávateľ).
- Pri návšteve zistíš meno a s kým má schôdzku, povieš, nech sa ohlási
  na recepcii v prízemí a počká, kým po neho niekto príde.
- Kuriérovi povieš, nech balík nechá na recepcii a napíše tam názov
  firmy a adresáta.
- Vezmeš krátky odkaz, keď volaný nie je momentálne dostupný.

ČO NIKDY NEROBÍŠ
- Nezdieľaš čísla na súkromné mobily zamestnancov - ponúkneš
  prepojenie na recepciu alebo odkaz.
- Nikoho nepúšťaš "hore samotného" - všetky návštevy idú cez
  recepciu.
- Neposkytuješ informácie o tom, kto je v budove prítomný a kedy -
  povedz, že si to musí overiť na recepcii.

AKO UKONČIŤ HOVOR
Zopakuj, čo sa dohodlo (odkaz, čakanie na recepcii, prepojenie), popraj
pekný deň a hovor ukonči.

2Šablóny podľa odboru

Nechcete písať prompt od nuly? Na webe sú hotové šablóny pre šesť odborov (zubná ambulancia, autoservis, reštaurácia, e-shop, realitná kancelária, remeselníci) - hotový systémový prompt, ukážkový dialóg aj príklad, koľko by taká recepčná stála. Skopírujte a upravte podľa seba, rovnako ako vzory vyššie.

Prehľad šablón podľa odboru

3firstMessage

firstMessage je prvá veta, ktorú zákazník započuje - pri prichádzajúcom hovore hneď po zodvihnutí, pri odchádzajúcom hneď po tom, čo volaný zdvihne telefón.

  • Krátka, hovorená slovenčina - ako by to povedal človek, nie ako by to napísal do e-mailu.
  • Povedzte hneď, kto alebo čo volá/dvíha - zákazník musí do troch sekúnd vedieť, s kým hovorí.
  • Končite otvorenou otázkou („ako vám môžem pomôcť“, „máte chvíľku“) - nie dlhým monológom.
  • Prečítajte si to nahlas - čo vyzerá dobre napísané, môže znieť kostrbato povedané.
  • Pri odchádzajúcich hovoroch sa hneď na začiatku predstavte aj s dôvodom volania - na neznáme čísla ľudia nerady dvíhajú telefón.

4Nástroje

Nástroj je adresa vášho API, ktorú agent zavolá uprostred hovoru a odpoveď hneď použije v reči. Bez nástroja vie agent iba rozprávať; s nástrojom vie overiť objednávku, nájsť voľný termín alebo zapísať rezerváciu.

Nástroje sa zakladajú v portáli na /agent/nastroje (alebo cez POST /v1/tools) a potom sa agentovi zapnú zaškrtávacím políčkom v jeho detaile (v API pole toolIds). Nástroj patrí účtu, nie agentovi - ten istý nástroj tak môže používať viac agentov. Zadávate pri ňom štyri veci:

  • Názov - čitateľný („Overiť objednávku“). Meno pre model sa z neho odvodí samo (overit_objednavku) a zobrazí sa pod poľom.
  • Kedy to má agent použiť - jediné, podľa čoho sa model rozhodne, že nástroj vôbec zavolá. Píšte to ako pokyn: „Použi, keď sa volajúci pýta, kde je jeho objednávka.“
  • Adresu a metódu - iba https, verejne dostupnú. GET pošle parametre v query, POST v JSON tele. K tomu hlavičky, typicky Authorization.
  • Parametre - pri každom poviete, odkiaľ sa berie hodnota: vytiahne ju model z hovoru, doplní sa číslo volajúceho alebo volané číslo, alebo je to pevná hodnota.

Takto potom vyzerá požiadavka, ktorá príde vášmu endpointu počas hovoru:

http
POST https://api.tvojaaplikacia.sk/objednavky
Content-Type: application/json
Authorization: Bearer tvoj_kluc

{
  "cislo_objednavky": "A-42",
  "telefon": "+421900123456"
}

A takto odpoveď, s ktorou vie agent pracovať - krátky JSON, z ktorého sa dá povedať jedna veta:

json
{
  "stav": "expedovane",
  "dorucenie": "zajtra dopoludnia"
}

Skôr než nástroj uložíte, vyskúšajte ho

Formulár má tlačidlo Vyskúšať: pošle na zadanú adresu skutočnú požiadavku s ukážkovými hodnotami a ukáže stav, dobu odozvy a začiatok odpovede. Nič sa pritom neukladá. Oplatí sa to - endpoint, ktorý odpovedá pomaly, počuje volajúci ako ticho v hovore.

Limity: najviac 10 nástrojov na účet, 10 parametrov a 5 hlavičiek na nástroj, časový limit odpovede 5 až 30 sekúnd (predvolene 20) - presne toľko agent na odpoveď čaká, medzitým povie premosťovaciu vetu, aby volajúci nepočul ticho. Hodnoty hlavičiek vám späť ukážeme len maskované (Bear***) - plné znenie sa z účtu prečítať nedá.

Brána súhlasu pri nástroji, ktorý niečo odošle

Pri nástroji s vedľajším účinkom (odošle SMS, založí požiadavku) zapnite poľom requireConfirmation: true bránu súhlasu (POST a PATCH /v1/tools, v MCP create_tool a update_tool). Vlastný hlasový motor volai potom nástroj vykoná, iba keď posledná replika volajúceho jasne hovorí áno. Pri nejasnej odpovedi („Haló“, „Áno?“, „Áno, ale neskôr“) sa nástroj nevykoná, agent dostane pokyn opýtať sa znova a ukončenie hovoru v tom istom kole sa odloží. Predvolene je vypnuté.

Platí len pre agenta na vlastnom motore v češtine alebo slovenčine: motor pozná slová súhlasu iba v týchto dvoch jazykoch (pri en, de a pl by blokoval aj jasné „Yes“), takže sa pole pri agentovi v inom jazyku ignoruje a ElevenLabs ho nepoužije. Nástroj patrí účtu a zdieľa ho viac agentov, preto sa jeho uloženie kvôli jazyku neodmietne. Brána číta iba poslednú repliku a otázku agenta nepozná: nejasný súhlas zachytí, nie každé „Áno“ povedané na inú otázku. Zmena nástroja sa k agentovi, ktorý už na motore beží, dostane až pri jeho ďalšom uložení alebo publikovaní - úprava nástroja agentov sama neprepisuje. Pri bežiacej kampani záleží na spôsobe: opätovné publikovanie otestovaného konceptu bez zmien značku „otestované“ zachová, úloha pobeží ďalej, ale už s bránou, ktorú test nepokryl; priame uloženie agenta (PATCH /v1/agents/{id}) značku zruší a úloha sa zastaví kódom agent_version_changed. Zapnutie brány preto naplánujte mimo behu kampane a kampaň po ňom znova otestujte.

V portáli bránu zapnete prepínačom Vyžadovať jasný súhlas volajúceho v editore nástroja (/agent/nastroje). Platí preň to isté, čo je popísané vyššie; agentovi, ktorý už na motore beží, sa zmena dostane tlačidlom Publikovať v jeho detaile.

5Prepojenie na človeka

Agent vie hovor odovzdať na vaše číslo, keď si volajúci pýta človeka alebo narazí na vec, ktorú agent nevie vyriešiť. Zapína sa v detaile agenta (v API pole transferTo), podmienku napíšete ako pokyn modelu do transferCondition. Bez nej dosadíme predvolenú vetu.

Na vlastnom hlasovom motore volai

Na vlastnom hlasovom motore volai ide prepojenie mostom: agent povie, že vás spája, volajúci počuje vyzváňanie a človek na vašom čísle vidí číslo agenta. Po zodvihnutí agent stíchne a hovor pokračuje medzi vami dvoma cez volai. Ak zloží ktokoľvek z vás, hovor sa skončí pre oboch. Ak nezdvihnete do 25 sekúnd, agent sa volajúcemu ospravedlní, ponúkne odkaz a pokračuje.

Dve veci, ktoré treba vedieť vopred

Zhrnutie hovoru človeku neodovzdáme. Volajúci započuje, že ho prepájame, ale operátor na druhej strane zdvihne rovno volajúceho - žiadny „warm transfer“, kde by agent najprv zhrnul, o čo ide, cez telefónnu sieť nevieme. Počítajte s tým v inštrukciách: nech agent volajúcemu povie, že bude musieť vec zopakovať.

Prepojenie je bežný odchádzajúci hovor a tak sa aj účtuje: 0,92 kr/min od zodvihnutia do zloženia, bez agentskej prirážky (agent už na tejto nohe nie je). V histórii hovorov ju poznáte podľa druhu transfer a v detaile pôvodného hovoru nájdete kartu Prepojenie s odkazom na túto nohu. Prichádzajúca noha beží ďalej a účtuje sa osobitne.

Štandardná platforma (ElevenLabs)

Na štandardnej platforme (ElevenLabs) prepojenie nefunguje - operátor SIP prepojenie nedokončí. Po zapnutí prepojenia sa volai hneď po uložení pokúsi agenta previesť na vlastný hlasový motor. Pokus môže byť pozastavený, motor nedostupný alebo prepnutie môže zlyhať; podľa vráteného poľa provider preto overte, že agent naozaj beží na motore. Kým zostáva na ElevenLabs, prepojenie nefunguje. Úspešným prepnutím sa môže zmeniť hlas agenta, predvolený hlas motora je Milena.

Prepojiť na vlastné číslo volai nejde - hovor by sa vracal sám na seba, kým by nedošiel kredit. Prémiové linky (90x) sú z rovnakého dôvodu zakázané.

Agent, ktorý používa číslo na hovory aj SMS, prepojí iba na české čísla (+420): hovory z tohto čísla idú iba na české čísla, takže číslo na prepojenie mimo +420 sa pri takomto agentovi neuloží a API vráti destination_not_allowed.

6Čo si zapísať z hovoru

Namiesto čítania celého prepisu si môžete určiť, čo presne z hovoru chcete - meno, počet kusov, či vec naliehala. Agent to po hovore vyplní a vy to dostanete ako JSON.

Každé pole má kľúč, typ a popis. Najviac desať polí na agenta:

  • Kľúč (key) - malé písmená bez diakritiky, číslice a podčiarkovník, do 40 znakov - musí začínať malým písmenom. Pod týmto menom hodnotu nájdete vo výsledku.
  • Typ (type) - string, number alebo boolean.
  • Popis (description) - čo presne má model vytiahnuť, 5 až 500 znakov. Napíšte aj to, čo má urobiť, keď to v hovore nezaznie.
  • Možnosti (enumValues) - nepovinný zoznam hodnôt, iba pri textovom poli. Model potom vyberá iba z ponúknutých hodnôt, takže sa výsledok dá rovno filtrovať. Najviac 20 možností, každá do 60 znakov.
bash
curl -X PATCH "$VOLAI_URL/v1/agents/ag_kx91fa2b" \
  -H "Authorization: Bearer vk_TVOJ_KLUC" \
  -H "Content-Type: application/json" \
  -d '{
    "dataFields": [
      {"key": "meno", "type": "string", "description": "Meno volajúceho, ktoré sám povedal. Ak nezaznelo, nechaj prázdne."},
      {"key": "pocet_kav", "type": "number", "description": "Koľko káv si volajúci objednal."},
      {"key": "naliehavost", "type": "string", "description": "Ako veľmi vec naliehala.", "enumValues": ["nizka", "bezna", "vysoka"]}
    ]
  }'

Výsledok sa objaví na troch miestach: v detaile hovoru v portáli ako karta „Zapísané údaje“, v poli data pri hovore (GET /v1/calls aj GET /v1/calls/{id}) a v tele webhooku call.completed.

json
{
  "call": {
    "id": "c_8f2ac1d4",
    "status": "completed",
    "hasRecording": true,
    "data": {
      "meno": "Jana Nováková",
      "pocet_kav": 2,
      "naliehavost": "bezna"
    }
  }
}

Hodnota null znamená „v hovore to nezaznelo“ - rovnako, keď model odpovie prázdnym textom. Ak pri agentovi nemáte žiadne polia, kľúč data v odpovedi vôbec nie je.

7Cieľ agenta a hodnotenie

Cieľ je jedna veta, čo má hovor splniť - „dohodnúť termín obhliadky“, „zistiť, či má zákazník záujem o ponuku“. Vyplníte ho v portáli do poľa „Cieľ agenta“ (pri zakladaní agenta aj kedykoľvek neskôr v jeho úprave), alebo cez REST API a MCP poľom goal v POST/PATCH /v1/agents a create_agent/update_agent (najviac 300 znakov).

Cieľ ide k agentovi ako kritérium na vyhodnotenie hovoru: po skončení hovoru nad ním model prečíta prepis a rozhodne, či bol cieľ splnený, nesplnený, alebo sa to z hovoru nedá zistiť. Výsledok uvidíte pri hovore v portáli - v detaile aj v zozname hovorov - a tiež v e-maile po hovore, vedľa zhrnutia.

Je to odhad modelu, nie fakt

Hodnotenie číta iba prepis hovoru, nie to, čo sa stalo potom (či zákazník na schôdzku skutočne prišiel). Úprimná výhrada: cieľ agenta (goal) ide cez REST API aj MCP nastaviť a prečítať, ale VÝSLEDOK vyhodnotenia konkrétneho hovoru zostáva iba v portáli a e-maile po hovore - GET /v1/calls a get_call ho nevracajú. Hodnotenie navyše beží iba pri agentoch na novom hlasovom motore volai - na ktorej platforme agent beží, povie pole provider (GET /v1/agents, list_agents a detail agenta v portáli); prepnutie zariaďuje volai. Starší agenti, ktorí zostávajú na pôvodnej platforme, sa hodnotenia dočkajú až po prevedení na tento motor.

Čo agent vie (podklady)

Okrem inštrukcií môžete agentovi dať podklady - otváracie hodiny, cenník, časté otázky. Vyplníte ich v portáli do poľa „Čo agent vie“ (sekcia Pokročilé), cez API poľom knowledge v POST/PATCH /v1/agents. Text sa pripojí na koniec promptu, zmestí sa do 20000 znakov a PATCH s prázdnou hodnotou ho zmaže. Na rozdiel od nástroja sa podklady počas hovoru nemenia - čo sa mení (stav objednávky, voľné termíny), patrí do nástroja, nie sem.

8E-mail po hovore

Po skončení hovoru s agentom vám volai pošle e-mail so zhrnutím a odkazom na detail hovoru v portáli - rovnaké zhrnutie, aké vidíte aj v API v poli summary. Chodí pri agentoch bežiacich na vlastnom hlasovom motore volai (pole provider: "engine"); agent na ElevenLabs (provider: "elevenlabs") ho zatiaľ nedostane.

Prepínač „E-mail po každom hovore“ nájdete na stránke Nastavenia - vypnutím ho zastavíte pre celý účet naraz. Jednotlivému agentovi ho vypnete osobitne zaškrtávacím políčkom „Poslať mi e-mail po každom hovore“ v jeho detaile (v API pole notifyEmail: false). Za hovor príde najviac jeden e-mail a hovor, z ktorého nie je čo hlásiť (žiadne zhrnutie, žiadne zapísané údaje ani dôvod ukončenia), e-mail nespustí.

9Nahrávky

Hovory agenta sa nahrávajú a v portáli si ich pustíte rovno v detaile hovoru - klikaním v prepise sa v nahrávke presúvate na správne miesto. Stiahnuť alebo prehrať ju inde ide cez GET /v1/calls/{id}/recording (ten istý API kľúč) - formát určuje hlavička content-type odpovede: pri agentovi na ElevenLabs audio/mpeg (MP3), pri agentovi na motore volai dnes audio/ogg. Či hovor nahrávku má, povie pole hasRecording.

  • Držíme ich 90 dní od hovoru, potom sa mažú. Prepis a zhrnutie si ponechávame ďalej, tie sa s nahrávkou nemažú. Po deväťdesiatich dňoch vráti endpoint recording_expired.
  • Vypnúť sa dajú pri každom agentovi osobitne - prepínačom v jeho detaile, v API poľom recordCalls: false. Nahrávka nevzniká pri hovoroch začatých od tej chvíle; hovor, ktorý už vyzváňa alebo prebieha, sa riadi nastavením z okamihu, keď začal (odchádzajúci z okamihu vytočenia), takže sa ešte nahrá.
  • Nahrávajú sa iba hovory zabudovaného agenta. Priame spojenie dvoch čísel (bridge), relay ani hovor cez SIP sa nenahráva.

Za informovanie volajúceho zodpovedáte vy

Nahrávanie hovoru je spracúvanie osobných údajov. Volajúcemu to agent sám nepovie - ak chcete, zapnite pri agentovi voľbu „Povedať volajúcemu, že sa hovor nahráva“ (v API recordingNotice: true) a volai k prvej vete agenta pripojí krátku vetu, že sa hovor nahráva. Rovnako dobre to môžete napísať priamo do prvej vety. Za to, že oznámenie zodpovedá zákonu pre vašu situáciu, zodpovedáte vy ako prevádzkovateľ osobných údajov.

Každá chyba API nesie cause (kto ju opraví) a action (čo urobiť) - pozri Formát chýb v referencii REST API.

10Limity

  • Hovor trvá maximálne 10 minút (600 sekúnd), potom ho agent sám ukončí.
  • Keď volajúci 20 sekúnd mlčí, agent to berie ako koniec hovoru a zloží.
  • Odozva agenta je zhruba 1 sekunda od chvíle, čo dohovoríte - v reálnej prevádzke mierne kolíše podľa záťaže.

11Jazyky

Agent vie hovoriť piatimi jazykmi - čeština (predvolená), slovenčina, angličtina, nemčina a poľština - jazyk nastavíte v detaile agenta (pole language v POST/PATCH /v1/agents, create_agent/update_agent) - hlas pre každý jazyk osobitne (Cartesia) má iba vlastný hlasový motor volai (pozri kapitolu Hlasy nižšie), agent na ElevenLabs hovorí zvoleným jazykom hlasom Anet.

12Skúšobný hovor

Tlačidlo „Zavolať mi na skúšku“ v detaile agenta v portáli spustí od agenta skutočný hovor na číslo, ktoré zadáte - rýchle overenie, ako agent znie a ako reaguje na váš systémový prompt, bez nutnosti volať ručne na jeho číslo.

Účtuje sa ako bežný odchádzajúci hovor s agentom, vrátane agentskej prirážky (pozri kapitolu Ceny nižšie) - žiadna zľava ani osobitná sadzba.

Agent na vlastnom hlasovom motore volai zvládne skúšobný hovor aj bez vlastného telefónneho čísla - použije sa zdieľaná linka volai, takže volaný na displeji uvidí číslo volai, nie agentovo. Agent na ElevenLabs bez vlastného čísla nemôže skúšobný hovor spustiť, kým mu číslo nepriradíte.

Najviac 3 pokusy o skúšobný hovor denne na účet, naprieč všetkými agentmi - počíta sa každý pokus, ktorý sa naozaj vytočil, aj keď ho nikto nezdvihol; pokus, ktorý zlyhal ešte pred vytočením (nedostatočný kredit, obsadená linka), sa do limitu nepočíta. Bežné hovory cez POST /v1/calls tento prísnejší limit nemajú.

13Hlasy

Voľba poskytovateľa pri založení má tri stavy: useForOutboundTasks: true v POST /v1/agents alebo create_agent vyberie vlastný hlasový motor volai, false začne na štandardnej platforme (ElevenLabs), aj keď zároveň nastavíte prepojenie, a vynechané pole použije aktuálne predvolené nastavenie nasadenia, ktoré závisí od zapnutia motora a povolených jazykov. Samotné cs alebo sk motor nezaručuje; pri vypnutom predvolenom motore agent vzniká na ElevenLabs. Keď výslovné false prebije predvolený motor jazyka, nesie odpoveď na založenie varovanie elevenlabs_by_explicit_choice; agenta iba na prichádzajúce hovory preto zakladajte bez poľa. Keď agentovi na ElevenLabs zapnete transferTo, volai sa ho po uložení pokúsi previesť na motor. Pokus môže byť pozastavený, nedostupný alebo zlyhať, preto vždy overte výsledok: pri REST následným GET /v1/agents/{id}, pri MCP vo vrátenom agentovi. Ktorú platformu agent používa, hovorí pole provider; kým zostáva na ElevenLabs, prepojenie nefunguje. Pri úspechu sa môže zmeniť hlas. Rovnaký pokus spustí zmena language pri agentovi na ElevenLabs z jazyka, v ktorom noví agenti vznikajú na ElevenLabs (dnes en, de, pl), na jazyk, v ktorom vznikajú na motore (cs, sk); agent potom dostane predvolený hlas motora pre nový jazyk (Milena, Katarina). Zmena medzi cs a sk nič nepresúva. Inak medzi platformami prepína volai (podpora). Agent na ElevenLabs berie iba katty alebo surové ElevenLabs voice id; ostatné hlasy katalógu fungujú iba na motore.

voiceId pri create_agent/update_agent (a rovnomenné pole v POST/PATCH /v1/agents) vyberá hlas agenta. Nefiltrovaný výpis GET /v1/voices (MCP list_voices bez argumentu provider) hlas ElevenLabs katty neukáže - REST ho vráti až s ?provider=elevenlabs, MCP s argumentom provider: "elevenlabs". Hlasy Cartesia (Milena, Jan a hlasy ďalších jazykov) sú pre agentov na vlastnom motore volai, Katty pre agentov na ElevenLabs (o tom, na ktorej platforme agent beží, je poznámka vyššie). Starší hlas anet zostáva iba agentom, ktorí ho už majú - ElevenLabs ho od 12. 9. 2026 novým agentom nepridelí a volai takú požiadavku odmietne s vysvetlením. Pri založení s explicitným useForOutboundTasks: true sa známy hlas nepodporovaný motorom, vrátane katty, nahradí predvoleným hlasom motora pre zvolený jazyk; ak motor zvolí až predvolené nastavenie pri vynechanom poli, rovnaký nekompatibilný hlas sa odmietne. Surové ElevenLabs ID motor odmietne vždy. Bez voiceId agent dostane predvolený hlas svojho poskytovateľa - pri motore Milenu, pri ElevenLabs hlas šablóny (Katty).

Katalóg ponúka pre každý jazyk aspoň jeden ženský a jeden mužský hlas (pri češtine dnes štyri): 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. Portál ponúka iba hlasy zvoleného jazyka agenta - prepínajú sa spolu (pozri kapitolu Jazyky vyššie).

Všetky hlasy v tabuľke patria vlastnému hlasovému motoru volai. Agentovi na ElevenLabs ich API odmietne chybou 400 - ten berie z katalógu iba katty (v nefiltrovanom výpise skrytý) a surové ElevenLabs voice id.

idPopisUkážka
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 prijíma aj surové ElevenLabs ID, ale iba pre agenta na štandardnej platforme (provider: "elevenlabs"). Pre agenta na motore použite id hlasu z katalógu. Neznáma alebo s poskytovateľom nekompatibilná hodnota vráti chybu, ktorá vymenuje platné možnosti.

14Štatistiky

Detail agenta v portáli ukazuje počet zdvihnutých hovorov, ich priemernú a najdlhšiu dĺžku a počet za posledných 30 dní - žiadne vlastné API na toto nie je, čísla si spočítate aj sami nad výstupom GET /v1/calls.

15Ceny

Hlasový agent sa účtuje navyše k cene hovoru, po sekundách - žiadne zaokrúhľovanie na celé minúty. Sadzby sú bez DPH, ako celý cenník.

SmerHovorAgentSpolu
Odchádzajúci0,92 kr/min (≈ 0,04 EUR)2,50 kr/min (≈ 0,10 EUR)3,42 kr/min (≈ 0,14 EUR)
Prichádzajúci0,50 kr/min (≈ 0,02 EUR)2,50 kr/min (≈ 0,10 EUR)3,00 kr/min (≈ 0,13 EUR)

Podrobný cenník aj s príkladmi je na stránke Cenník.

Radšej vaše ElevenLabs, Vapi alebo inú platformu? Bez agentskej prirážky to ide cez vlastného agenta - pozri Vlastný agent.

16Transkripty a webhook

Po skončení hovoru si prepis a zhrnutie vyzdvihnete cez GET /v1/calls/{id} (polia transcript a summary) - alebo vám ich volai sám pošle na vašu URL formou udalosti call.completed, hneď ako ich má hotové. Formát prepisu, overenie podpisu a správanie pri chybe sú na stránke Webhooky.

Nechcete čakať na webhook ani pollovať API? V portáli má každý agent v detaile aj prehľad posledných hovorov s prepisom priamo na prečítanie.

17Hlasový motor volai

Časť agentov dnes beží na vlastnom hlasovom motore volai namiesto na ElevenLabs. Prepnutie mení smerovanie hovoru a prenáša sa s ním celá konfigurácia agenta - inštrukcie, prvá veta, zbierané polia, cieľ hovoru, znalosti, nástroje aj prepojenie na človeka. Čo sa prepnutím mení a čo nie:

  • Hlasy agent, ktorý mal vybraný hlas ElevenLabs (Katty, alebo starší Anet), dostane po prepnutí predvolený hlas motora pre svoj jazyk - pri češtine Milenu. Motor hlas ElevenLabs ako svoj hlavný hlas neponúka, ElevenLabs u neho zostáva iba záskokom pre výpadok Cartesie. V nastavení agenta si potom vyberiete ktorýkoľvek iný hlas z katalógu pre jazyk agenta, pri češtine napríklad Jana. Hlas, ktorý agent už má z katalógu motora, sa prepnutím nemení.
  • Odozva zostáva rovnaká ako pri ElevenLabs - okolo 1 sekundy od chvíle, čo dohovoríte.
  • Nahrávky bez zmeny - stále sa držia 90 dní a dajú sa rovnako vypnúť v detaile agenta.
  • Upozornenie na nahrávanie bez zmeny - ak máte pri agentovi zapnutú vetu o nahrávaní (`recordingNotice`), volai aj tu pripojí k prvej vete agenta krátku vetu, že sa hovor nahráva (pozri sekciu Nahrávky vyššie). Bez tejto voľby, alebo s vypnutým nahrávaním, sa veta nepripája vôbec.
  • Oznámenie, že hovorí AI bez zmeny - prvú vetu posielame poskytovateľovi tak, ako ste ju napísali. Nevynucujeme ju: keď oznámenie, že volajúci hovorí s digitálnou asistentkou, chýba, iba vás na to upozorníme (európsky AI Act, čl. 50), uloženie to nezastaví. Zodpovednosť za oznámenie zostáva na vás pri oboch poskytovateľoch rovnako.
  • Nástroje a prepojenie hovoru prechádzajú s agentom - úspešné prepnutie posiela motoru aj jeho nástroje a nastavené prepojenie na človeka, nemusíte ich zadávať znova. Na vlastnom hlasovom motore volai prepojenie funguje mostom (rovnako ako popisuje kapitola Prepojenie na človeka vyššie) - most je overený v bežnej prevádzke a portál pri agentovi na motore ukazuje plný formulár prepojenia. Pri agentovi na štandardnej platforme (ElevenLabs) spustí zapnutie prepojenia hneď po uložení pokus o prevod na vlastný motor; overte výsledok v poli `provider`, pretože pri pozastavení, nedostupnosti motora alebo chybe môže zostať na ElevenLabs a prepojenie tam nefunguje. Úspešným prevodom sa mu môže zmeniť hlas na predvolený hlas motora. Hromadná migrácia čísel po vlnách preto agentov s nastaveným prepojením vynecháva.
  • Hlasová schránka pri odchádzajúcich hovoroch vie rozpoznať iba vlastný hlasový motor volai - do pár sekúnd po zodvihnutí pozná záznamník namiesto človeka a podľa nastavenia ho iba označí, zloží, alebo počká na tón a prečíta odkaz. Nastavuje sa v detaile agenta (iba agent na motore), API aj MCP poľom `voicemail`. Výpis hovorov potom pri odchádzajúcom hovore so schránkou ukáže "Zdvihla schránka" namiesto obvyklého výsledku. Štandardná platforma (ElevenLabs) detekciu nemá.
  • Pripomienka v tichu prehrá iba vlastný hlasový motor volai - keď volajúci dlho mlčí, agent sa raz opýta, či tam ešte je. Nastavenie (zapnuté/vypnuté, počet sekúnd 3 až 25) sa ukladá pri oboch poskytovateľoch - pri agentovi na štandardnej platforme (ElevenLabs) je pole v detaile agenta sivé a hodnota zaznie až po prepnutí na motor. Vlastné znenie výzvy (`silencePromptText`, do 80 znakov, namiesto predvoleného "Ste tam?") sa ukladá rovnako.
  • Ochrana prvej vety vie iba vlastný hlasový motor volai a iba pri odchádzajúcich hovoroch: kým prvá veta hrá (zadaný počet sekúnd, 0 až 20), krátka reakcia toho, kto hovor zdvihol ("Haló?", "Áno?"), ju neprerušia. Replika volaného bez prerušovača (stop, nie, moment, dosť, počkajte) sa v chránenom okne zahodí: vetu nepreruší, v prepise nie je a agent na ňu nereaguje, zatiaľ čo s prerušovačom sa veta preruší vždy. Pole `firstMessageProtectSecs` sa bez vnútenej predvolenej hodnoty ukladá pri oboch poskytovateľoch - pri agentovi na štandardnej platforme (ElevenLabs) je v detaile agenta sivé a zaznie až po prepnutí na motor. V prepise hovoru potom replika agenta, ktorú volajúci prerušil, nesie príznak `interrupted`.
  • Smiech agentky iba vlastný hlasový motor volai vie zareagovať smiechom, keď sa v hovore zasmejete alebo zažartujete vy alebo volajúci - a iba pri českom hlase Cartesia (Milena, Jan a ďalšie z katalógu). Štandardná platforma (ElevenLabs) smiech nevie vôbec, aj keď pole nastavíte. V nastavení agenta zvolíte Automaticky (motor smiech sám vypne pri citlivých témach, napríklad dlhoch, zdravotníctve, úradoch alebo pohrebníctve), Zapnuté (prebije túto detekciu) alebo Vypnuté. Zmena platí od ďalšieho hovoru.

18Kalendár a termíny

Agent na vlastnom hlasovom motore volai vie priamo v hovore zistiť voľný termín vo vašom Google alebo Apple kalendári a schôdzku rovno zapísať - povie volajúcemu, či je čas voľný, ponúkne najbližšie voľné termíny a po potvrdení mena zapíše schôdzku. Zapína sa v editore agenta na záložke Kalendár: vyberiete pripojenie (Dáta a integrácie), konkrétny kalendár a pravidlá dostupnosti.

  • Pravidlá dostupnosti okná podľa dňa v týždni (kedy agent vôbec ponúka termíny), dĺžka schôdzky, rezerva medzi termínmi, minimálny predstih pred dohodnutým časom a horizont, ako ďaleko dopredu agent hľadá. Predvolené hodnoty vyplní editor sám, dajú sa však upraviť pre každého agenta osobitne.
  • Vstavané nástroje kalendár používa dva vstavané nástroje, check_availability a book_appointment - na rozdiel od vlastných nástrojov z kapitoly Nástroje vyššie sa nezakladajú ručne, zapnú sa samy spolu s kalendárom a nepočítajú sa do limitu nástrojov na účet.
  • Iba vlastný motor volai funguje výlučne pri agentovi na vlastnom hlasovom motore volai. Keď kalendár zapnete pri agentovi na štandardnej platforme (ElevenLabs), nastavenie sa uloží a agent sa hneď po uložení pokúsi prepnúť na motor volai - rovnako ako pri prepojení na človeka.
  • Čo agent povie a nepovie agent nikdy neprečíta, čo je v kalendári zapísané - iba či je daný čas voľný. Telefón volajúceho sa do udalosti zapíše, iba keď ho agent pozná (skryté číslo znamená udalosť bez telefónu).
  • Aj mimo hovoru to isté hľadanie voľných termínov a zápis schôdzky ide aj mimo hovoru cez REST (POST /v1/integrations/{id}/availability, POST /v1/integrations/{id}/events) a MCP (find_free_slots, create_calendar_event) - podrobnosti v sekcii Kalendáre v REST API referencii a v MCP referencii.