Zum Inhalt springen

Anleitungen

Sprachagent

Ein Agent ist nur so gut wie sein Systemprompt. Diese Seite zeigt Ihnen, wie Sie einen schreiben, liefert drei fertige Beispiele zum Kopieren und nennt die Limits, mit denen Sie planen müssen.

Die Nummer des Assistenten

Ein Agent nimmt Anrufe an und startet Anrufe von der Nummer, die Sie ihm in seinem Detail zuweisen (in der API das Feld numberE164). Eine Sprachnummer empfängt und tätigt Anrufe, aber keine SMS. Wenn Ihr Assistent eine Nummer haben soll, die man anrufen und der man schreiben kann und von der aus er telefoniert und SMS sendet, bestellen Sie eine Nummer für Anrufe und SMS: eine Prager Festnetznummer, die nach der Registrierung beim Betreiber (in der Regel innerhalb von 1 Werktag, spätestens nach 48 Stunden) von einem Agenten auf der eigenen Sprach-Engine von volai beantwortet wird. Anrufe von dieser Nummer gehen nur an tschechische Nummern (+420), und ihre SMS haben keine Zustellberichte. Details finden Sie in der API-Referenz unter Nummer für Anrufe und SMS.

1Aufbau von systemPrompt

Ein guter Prompt besteht aus vier Teilen. Fehlt einer davon, steckt der Agent irgendwann fest und weiß nicht weiter - er verstummt oder erfindet etwas.

  • Wer ich bin - ein oder zwei Sätze: Firmenname, Rolle, Tonfall. Diese Identität muss der Agent gleich in seiner ersten Zeile herstellen.
  • Was ich kann - die konkreten Aufgaben, die der Agent tatsächlich erledigt (Bestellungen, Termine, Auskünfte) - nicht ein vages "Ich helfe bei allem".
  • Was ich NIEMALS tue - die Grenzen: was der Agent niemals erfinden, versprechen oder preisgeben darf. Dieser Teil wird am häufigsten ausgelassen, und genau er unterscheidet einen Agenten, der Preise erfindet, von einem, der ehrlich sagt "Das weiß ich nicht, rufen Sie bitte ...".
  • Wie ich das Gespräch beende - wann und wie das Gespräch abgeschlossen wird (Zusammenfassung, Verabschiedung) und was zu tun ist, wenn der Anrufer etwas außerhalb des Aufgabenbereichs möchte.

Längere Anweisungen verlangsamen die Antwort um etwa eine Zehntelsekunde pro zweitausend Zeichen - der Agenten-Editor weist ab 3000 Zeichen darauf hin. Die harte Grenze liegt bei 6000 Zeichen.

Drei vollständige Beispiele - kopieren Sie sie und passen Sie sie an Ihren Fall an:

Café-Rezeption

text
Sie sind die Sprachassistentin des Cafés Nula Cafe in Vinohrady. Sie
sprechen ruhig, freundlich und kurz - so, wie es eine erfahrene Mitarbeiterin
tun würde, nicht wie ein Roboter.

WAS SIE KÖNNEN
- Bestellungen zur Abholung entgegennehmen (Kaffee, Tee, Croissants, belegte Brötchen).
- Anrufern die aktuellen Öffnungszeiten nennen: Montag bis Freitag 8-18 Uhr,
  am Wochenende 9-15 Uhr.
- Am Ende der Bestellung diese vollständig wiederholen und die Abholzeit
  bestätigen (frühestens in 15 Minuten).

WAS SIE NIEMALS TUN
- Erfinden Sie niemals Preise oder Artikel, die nicht auf der Karte stehen -
  sagen Sie, dass das Personal den genauen Preis vor Ort bestätigt.
- Versprechen Sie niemals eine Lieferung, das Café liefert nicht aus.
- Geben Sie sich niemals als Mensch aus, wenn Anrufer direkt fragen - sagen
  Sie, dass Sie die Sprachassistentin des Cafés sind.

WIE SIE DAS GESPRÄCH BEENDEN
Fassen Sie Bestellung und Abholzeit zusammen, wünschen Sie einen schönen
Tag und beenden Sie das Gespräch. Wenn der Anrufer etwas möchte, das Sie
nicht erledigen können (Beschwerden, Catering), bitten Sie ihn, während der
Öffnungszeiten erneut anzurufen und direkt mit dem Inhaber zu sprechen.

Zufriedenheitsumfrage

text
Sie rufen im Namen des Onlineshops Botanika an, um nach einer
kürzlichen Bestellung eine kurze Zufriedenheitsumfrage durchzuführen. Sie
sind höflich, kommen schnell zur Sache und ziehen das Gespräch nicht in
die Länge.

WAS SIE KÖNNEN
- Fragen, ob der Kunde eine Minute für drei kurze Fragen hat.
- Frage 1: Wie zufrieden ist der Kunde mit der Bestellung, auf einer Skala
  von 1 bis 5?
- Frage 2: Ist das Paket pünktlich angekommen?
- Frage 3: Gibt es etwas, das wir verbessern könnten?
- Die Antworten merken und am Ende des Gesprächs kurz zusammenfassen.

WAS SIE NIEMALS TUN
- Drängen Sie niemals einen Kunden, der ablehnt oder keine Zeit hat -
  beenden Sie das Gespräch sofort höflich.
- Bearbeiten Sie niemals Beschwerden oder Rücksendungen - dafür ist die
  Kundenbetreuung zuständig, deren Nummer Sie auf Wunsch vorlesen können.
- Bieten Sie niemals Rabatte oder Gutscheine an, dazu sind Sie nicht befugt.

WIE SIE DAS GESPRÄCH BEENDEN
Bedanken Sie sich für Zeit und Feedback und wünschen Sie einen schönen Tag.
Sagt der Kunde irgendwann, dass er nicht weitermachen möchte, beenden Sie
das Gespräch sofort höflich und ohne weitere Fragen.

Empfang / Pförtner

text
Sie sind die Sprachempfangsstelle von Nordwex, einem Bürogebäude in
Pankrác. Diese Nummer rufen Paketboten, Besucher und Lieferanten an.

WAS SIE KÖNNEN
- Herausfinden, wer anruft und weshalb (ein Paketbote mit einer Sendung,
  ein Besucher zu einem Termin, ein Lieferant).
- Bei einem Besucher Name und Ansprechpartner erfragen und ihn bitten, sich
  an der Rezeption im Erdgeschoss anzumelden und zu warten, bis jemand
  ihn abholt.
- Einem Paketboten sagen, dass er das Paket an der Rezeption abgeben und
  Firmenname und Empfänger darauf vermerken soll.
- Eine kurze Nachricht aufnehmen, wenn die gesuchte Person gerade nicht
  erreichbar ist.

WAS SIE NIEMALS TUN
- Geben Sie niemals private Mobilnummern von Mitarbeitern heraus - bieten
  Sie an, zur Rezeption weiterzuverbinden oder eine Nachricht aufzunehmen.
- Lassen Sie niemals jemanden "allein nach oben" gehen - alle Besucher
  gehen über die Rezeption.
- Verraten Sie niemals, wer sich gerade im Gebäude befindet oder wann - sagen
  Sie, dass man dies an der Rezeption erfragen muss.

WIE SIE DAS GESPRÄCH BEENDEN
Wiederholen Sie, was vereinbart wurde (Nachricht, Warten an der Rezeption,
Weiterverbinden), wünschen Sie einen schönen Tag und beenden Sie das Gespräch.

2Branchenvorlagen

Sie möchten keinen Prompt von Grund auf schreiben? Auf der Website finden Sie fertige Vorlagen für sechs Branchen (Zahnarztpraxis, Autowerkstatt, Restaurant, Onlineshop, Maklerbüro, Handwerksbetriebe) - ein vollständiger Systemprompt, ein Beispieldialog und ein Beispiel, was eine solche Rezeption kosten würde. Kopieren und anpassen, genau wie die Beispiele oben.

Branchenvorlagen ansehen

3firstMessage

firstMessage ist der erste Satz, den der Kunde hört - bei einem eingehenden Anruf direkt nach dem Abheben, bei einem ausgehenden direkt nachdem der Angerufene sich meldet.

  • Kurz und gesprochen - so, wie ein Mensch es sagen würde, nicht wie er eine E-Mail schreibt.
  • Sagen Sie sofort, wer anruft bzw. sich meldet - der Kunde muss innerhalb von drei Sekunden wissen, mit wem er spricht.
  • Enden Sie mit einer offenen Frage ("Wie kann ich helfen?", "Haben Sie einen Moment?") - nicht mit einem langen Monolog.
  • Lesen Sie den Text laut vor - was geschrieben gut aussieht, kann gesprochen holprig klingen.
  • Stellen Sie sich bei ausgehenden Anrufen gleich zu Beginn vor und nennen Sie den Anlass - Menschen sind bei unbekannten Nummern misstrauisch.

4Tools

Ein Tool ist die Adresse Ihrer API, die der Agent mitten im Gespräch aufruft und deren Antwort er sofort im Gespräch verwendet. Ohne Tool kann der Agent nur reden; mit einem kann er eine Bestellung prüfen, einen freien Termin finden oder eine Buchung erfassen.

Tools werden im Portal unter /agent/nastroje angelegt (oder über POST /v1/tools) und dann auf der Detailseite des Agenten per Kontrollkästchen aktiviert (in der API das Feld toolIds). Ein Tool gehört zum Konto, nicht zu einem Agenten - dasselbe Tool können mehrere Agenten nutzen. Dafür geben Sie vier Dinge an:

  • Name - ein lesbarer Name ("Bestellung prüfen"). Der Name, den das Modell sieht, wird automatisch daraus abgeleitet (overit_objednavku) und unter dem Feld angezeigt.
  • Wann der Agent es nutzen soll - das Einzige, woran das Modell überhaupt festmacht, ob es das Tool aufruft. Formulieren Sie es als Anweisung: "Verwenden, wenn der Anrufer fragt, wo seine Bestellung ist."
  • Adresse und Methode - nur https, öffentlich erreichbar. GET sendet Parameter im Query-String, POST im JSON-Body. Dazu Header, typischerweise Authorization.
  • Parameter - bei jedem legen Sie fest, woher sein Wert stammt: Das Modell entnimmt ihn dem Gespräch, die Nummer des Anrufers oder des Angerufenen wird automatisch eingesetzt, oder es ist ein fester Wert.

So sieht die Anfrage aus, die während des Gesprächs bei Ihrem Endpunkt ankommt:

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

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

Und das ist die Antwort, mit der der Agent arbeiten kann - eine kurze JSON-Nutzlast, die er in einen einzigen Satz verwandeln kann:

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

Testen Sie das Tool vor dem Speichern

Das Formular hat eine Schaltfläche Ausprobieren: Sie sendet mit Beispielwerten eine echte Anfrage an die angegebene Adresse und zeigt Status, Antwortzeit und den Anfang der Antwort. Dabei wird nichts gespeichert. Das lohnt sich - ein Endpunkt, der langsam antwortet, wird vom Anrufer im Gespräch als Stille wahrgenommen.

Limits: höchstens 10 Tools pro Konto, 10 Parameter und 5 Header pro Tool, Antwort-Timeout 5 bis 30 Sekunden (Standard 20) - genau so lange wartet der Agent und sagt in der Zwischenzeit eine Überbrückungsphrase, damit der Anrufer keine Stille hört. Header-Werte zeigen wir Ihnen nur maskiert (Bear***) an - der vollständige Wert lässt sich aus dem Konto nicht wieder auslesen.

Bestätigungssperre für ein Tool, das etwas versendet

Bei einem Tool mit Nebenwirkung (es sendet eine SMS, legt eine Anfrage an) schalten Sie die Bestätigungssperre mit dem Feld requireConfirmation: true ein (POST und PATCH /v1/tools, in MCP create_tool und update_tool). Die Sprach-Engine von volai führt das Tool dann nur aus, wenn die letzte Antwort des Anrufers eindeutig Ja sagt. Bei einer unklaren Antwort ('Hallo?', 'Ja?', 'Ja, aber später') läuft das Tool nicht, der Agent wird angewiesen, noch einmal zu fragen, und ein Versuch, das Gespräch in derselben Runde zu beenden, wird zurückgehalten. Standardmäßig ist sie ausgeschaltet.

Sie gilt nur für einen Agenten auf der eigenen Engine von volai in Tschechisch oder Slowakisch: Die Engine kennt Zustimmungswörter nur in diesen beiden Sprachen (bei en, de und pl würde sie sogar ein eindeutiges 'Ja' blockieren), deshalb wird das Feld bei einem Agenten in einer anderen Sprache ignoriert, und ElevenLabs nutzt es nicht. Ein Tool gehört zum Konto und wird von mehreren Agenten gemeinsam genutzt, daher wird das Speichern nie wegen der Sprache abgelehnt. Die Sperre liest nur die letzte Antwort des Anrufers und kennt die Frage des Agenten nicht: Sie fängt unklare Zustimmung ab, nicht jedes 'Ja', das auf eine andere Frage gesagt wurde. Eine Änderung an einem Tool erreicht einen bereits auf der Engine laufenden Agenten erst, wenn dieser Agent das nächste Mal gespeichert oder veröffentlicht wird - das Bearbeiten eines Tools überschreibt Agenten nie von selbst. Bei einer laufenden Kampagne kommt es auf den Weg an: Wird der getestete Entwurf unverändert erneut veröffentlicht, bleibt die Testmarkierung erhalten, die Aufgabe läuft also weiter, nun mit einer Sperre, die der Test nicht abgedeckt hat; ein direktes Speichern des Agenten (PATCH /v1/agents/{id}) löscht die Testmarkierung und stoppt die Aufgabe mit agent_version_changed. Planen Sie das Einschalten der Sperre außerhalb einer laufenden Kampagne ein und testen Sie die Kampagne danach erneut.

Im Portal schalten Sie die Sperre im Tool-Editor mit Eindeutige Zustimmung des Anrufers verlangen ein (/agent/nastroje). Es gelten dieselben Regeln wie oben beschrieben; bei einem Agenten, der bereits auf der Engine läuft, erreicht ihn die Änderung über die Schaltfläche Veröffentlichen auf seiner Detailseite.

5Weiterverbinden an einen Menschen

Der Agent kann das Gespräch an Ihre Nummer weiterleiten, wenn der Anrufer eine Person verlangt oder auf etwas stößt, das der Agent nicht lösen kann. Aktiviert wird dies auf der Detailseite des Agenten (in der API das Feld transferTo); die Bedingung formulieren Sie als Anweisung an das Modell in transferCondition. Ohne Angabe verwenden wir einen Standardsatz.

Auf der eigenen Sprach-Engine von volai

Auf der eigenen Sprach-Engine von volai wird das Weiterverbinden als Brücke umgesetzt: Der Agent sagt, dass er verbindet, der Anrufer hört das Freizeichen, und die Person an Ihrer Nummer sieht die Nummer des Agenten. Sobald Sie abheben, verstummt der Agent, und das Gespräch läuft zwischen Ihnen beiden über volai weiter. Legt einer von Ihnen auf, endet das Gespräch für beide. Nehmen Sie nicht innerhalb von 25 Sekunden ab, entschuldigt sich der Agent beim Anrufer, bietet an, eine Nachricht aufzunehmen, und führt das Gespräch fort.

Zwei Dinge, die Sie vorab wissen sollten

Wir übergeben dem Menschen keine Zusammenfassung des Gesprächs. Der Anrufer hört, dass er weiterverbunden wird, aber die Person am anderen Ende nimmt den Anrufer direkt entgegen - es gibt kein "begleitetes Weiterverbinden", bei dem der Agent den Menschen zuerst einweist; das Telefonnetz unterstützt das nicht. Berücksichtigen Sie das in Ihren Anweisungen: Der Agent soll dem Anrufer sagen, dass er sein Anliegen eventuell wiederholen muss.

Ein Weiterverbinden ist ein gewöhnlicher ausgehender Anruf und wird auch so abgerechnet: 0.92 CZK/min vom Abheben bis zum Auflegen, ohne Agentenzuschlag (der Agent ist auf diesem Abschnitt nicht mehr dabei). In der Anrufhistorie erkennen Sie ihn an der Art transfer, und die Detailseite des ursprünglichen Anrufs enthält eine Karte Weiterleitung mit einem Link zu diesem Abschnitt. Der eingehende Abschnitt läuft weiter und wird separat abgerechnet.

Die Standardplattform (ElevenLabs)

Auf der Standardplattform (ElevenLabs) funktioniert das Weiterverbinden nicht - der SIP-Betreiber schließt es nie ab. Nachdem Sie das Weiterverbinden aktiviert haben, versucht volai direkt nach dem Speichern, den Agenten auf die eigene Sprach-Engine zu verschieben. Der Versuch kann pausiert sein, die Engine kann nicht verfügbar sein oder der Wechsel kann scheitern; prüfen Sie im zurückgegebenen Feld provider, ob der Agent tatsächlich auf der Engine läuft. Solange er auf ElevenLabs bleibt, funktioniert das Weiterverbinden nicht. Ein erfolgreicher Wechsel kann die Stimme des Agenten ändern; die Standardstimme der Engine ist Milena.

Sie können nicht an Ihre eigene volai-Nummer weiterverbinden - der Anruf würde sich im Kreis drehen, bis das Guthaben aufgebraucht ist. Aus demselben Grund sind Mehrwertnummern (90x) gesperrt.

Ein Agent mit einer Nummer für Anrufe und SMS verbindet nur an tschechische Nummern (+420) weiter: Anrufe von dieser Nummer gehen nur an tschechische Nummern, daher wird eine Weiterleitungsnummer außerhalb von +420 für einen solchen Agenten nicht gespeichert, und die API gibt destination_not_allowed zurück.

6Aus Anrufen erfasste Daten

Statt das vollständige Transkript zu lesen, können Sie genau angeben, was Sie aus einem Anruf haben möchten - einen Namen, eine Stückzahl, ob es dringend ist. Der Agent füllt es nach dem Anruf aus, und Sie erhalten es als JSON zurück.

Jedes Feld hat einen Schlüssel, einen Typ und eine Beschreibung. Bis zu zehn Felder pro Agent:

  • Schlüssel (key) - Kleinbuchstaben, Ziffern und Unterstriche, bis zu 40 Zeichen - muss mit einem Kleinbuchstaben beginnen. Unter diesem Namen finden Sie den Wert im Ergebnis.
  • Typ (type) - string, number oder boolean.
  • Beschreibung (description) - genau das, was das Modell herausziehen soll, 5 bis 500 Zeichen. Geben Sie auch an, was es tun soll, wenn der Anruf es nicht erwähnt.
  • Optionen (enumValues) - eine optionale Liste, nur für Textfelder. Das Modell wählt dann ausschließlich aus den angebotenen Werten, sodass sich das Ergebnis direkt filtern lässt. Höchstens 20 Optionen mit je bis zu 60 Zeichen.
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": "Der Name des Anrufers, so wie er ihn genannt hat. Leer lassen, wenn er nicht genannt wurde."},
      {"key": "coffee_count", "type": "number", "description": "Wie viele Kaffees der Anrufer bestellt hat."},
      {"key": "urgency", "type": "string", "description": "Wie dringend das Anliegen war.", "enumValues": ["low", "normal", "high"]}
    ]
  }'

Das Ergebnis erscheint an drei Stellen: auf der Detailseite des Anrufs im Portal als Karte "Erfasste Daten", im Feld data des Anrufs (sowohl GET /v1/calls als auch GET /v1/calls/{id}) und im Body des Webhooks call.completed.

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

Ein Wert null bedeutet "im Anruf nicht erwähnt" - dasselbe gilt, wenn das Modell einen leeren String zurückgibt. Hat ein Agent keine Felder konfiguriert, fehlt der Schlüssel data in der Antwort ganz.

7Ziel des Agenten und Auswertung

Ein Ziel ist ein Satz, der beschreibt, was der Anruf erreichen soll - "einen Besichtigungstermin vereinbaren", "herausfinden, ob der Kunde am Angebot interessiert ist". Sie tragen es im Portal in das Feld "Ziel des Agenten" ein (beim Anlegen des Agenten oder jederzeit später beim Bearbeiten) oder über die REST-API und MCP im Feld goal bei POST/PATCH /v1/agents und create_agent/update_agent (bis zu 300 Zeichen).

Das Ziel wird dem Agenten als Kriterium für die Bewertung des Anrufs mitgegeben: Nach dem Ende des Anrufs liest ein Modell das Transkript dazu und entscheidet, ob das Ziel erreicht, nicht erreicht oder aus dem Anruf nicht feststellbar war. Das Ergebnis sehen Sie beim Anruf im Portal - auf der Detailseite des Anrufs und in der Anrufliste - sowie in der E-Mail nach dem Anruf neben der Zusammenfassung.

Es ist eine Schätzung eines Modells, keine Tatsache

Die Auswertung liest nur das Transkript des Anrufs, nicht, was danach geschah (ob der Kunde tatsächlich erschienen ist). Eine ehrliche Einschränkung: Das Ziel des Agenten (goal) lässt sich über die REST-API und MCP setzen und lesen, das Auswertungs-ERGEBNIS eines konkreten Anrufs bleibt aber im Portal und in der E-Mail nach dem Anruf - GET /v1/calls und get_call liefern es nicht. Die Auswertung läuft außerdem nur für Agenten auf der neuen Sprach-Engine von volai - auf welcher Plattform ein Agent läuft, zeigt das Feld provider (GET /v1/agents, list_agents und die Detailseite des Agenten im Portal); den Wechsel übernimmt volai. Ältere Agenten, die auf der ursprünglichen Plattform bleiben, erhalten sie erst nach der Umstellung auf diese Engine.

Was der Agent weiß (Hintergrundmaterial)

Neben den Anweisungen können Sie dem Agenten Hintergrundmaterial mitgeben - Öffnungszeiten, eine Preisliste, FAQ. Tragen Sie es im Portal in das Feld "Was der Agent weiß" ein (Bereich Erweitert) oder in das Feld knowledge bei POST/PATCH /v1/agents. Der Text wird ans Ende des Prompts angehängt, darf 20000 Zeichen umfassen, und ein PATCH mit leerem Wert löscht ihn. Anders als ein Tool ändert sich dieses Material während eines Anrufs nie - alles, was sich ändert (Bestellstatus, freie Termine), gehört in ein Tool, nicht hierher.

8E-Mail nach dem Anruf

Nachdem ein Anruf mit dem Agenten endet, sendet volai Ihnen eine E-Mail mit der Zusammenfassung und einem Link zum Anrufdetail im Portal - dieselbe Zusammenfassung, die Sie in der API im Feld summary sehen. Sie wird für Agenten auf der eigenen Sprach-Engine von volai (provider: "engine") versendet; ein Agent auf ElevenLabs (provider: "elevenlabs") erhält sie noch nicht.

Der Schalter "E-Mail nach jedem Anruf" befindet sich auf der Seite Einstellungen - wenn Sie ihn ausschalten, wird die E-Mail für das ganze Konto auf einmal gestoppt. Für einen einzelnen Agenten stoppen Sie sie mit dem Kontrollkästchen "Nach jedem Anruf per E-Mail benachrichtigen" auf dessen Detailseite (in der API das Feld notifyEmail: false). Sie erhalten höchstens eine E-Mail pro Anruf, und ein Anruf, über den es nichts zu berichten gibt (keine Zusammenfassung, keine erfassten Daten und kein Beendigungsgrund), löst keine aus.

9Aufzeichnungen

Anrufe mit dem Agenten werden aufgezeichnet, und Sie können sie direkt auf der Detailseite des Anrufs im Portal abspielen - ein Klick im Transkript springt zur passenden Stelle der Aufzeichnung. Zum Herunterladen oder Abspielen an anderer Stelle nutzen Sie GET /v1/calls/{id}/recording (mit demselben API-Schlüssel) - das Format ergibt sich aus dem Header content-type der Antwort: audio/mpeg (MP3) bei einem Agenten auf ElevenLabs, derzeit audio/ogg bei einem Agenten auf der Engine von volai. Das Feld hasRecording zeigt, ob ein Anruf eine Aufzeichnung hat.

  • Wir bewahren sie 90 Tage auf nach dem Anruf und löschen sie dann. Transkript und Zusammenfassung werden getrennt aufbewahrt und nicht zusammen mit der Aufzeichnung gelöscht. Nach neunzig Tagen gibt der Endpunkt recording_expired zurück.
  • Sie können sie pro Agent ausschalten mit einem Schalter auf dessen Detailseite oder dem Feld recordCalls: false in der API. Für Anrufe, die ab diesem Zeitpunkt beginnen, wird keine Aufzeichnung erstellt; ein Anruf, der bereits klingelt oder läuft, folgt der Einstellung vom Moment seines Beginns (ein ausgehender Anruf der Einstellung vom Moment des Wählens) und wird daher noch aufgezeichnet.
  • Aufgezeichnet werden nur Anrufe, die der integrierte Agent bearbeitet. Eine direkte Brücke zwischen zwei Nummern, ein Relay-Anruf und ein SIP-Anruf werden nie aufgezeichnet.

Den Anrufer zu informieren liegt in Ihrer Verantwortung

Die Aufzeichnung eines Anrufs ist eine Verarbeitung personenbezogener Daten. Der Agent weist den Anrufer nicht von sich aus darauf hin - wenn er es tun soll, schalten Sie beim Agenten "Anrufer über die Aufzeichnung informieren" ein (in der API recordingNotice: true), und volai hängt an die erste Nachricht des Agenten einen kurzen Satz an, dass das Gespräch aufgezeichnet wird. Sie können den Hinweis genauso gut selbst in den Einleitungssatz schreiben. Dass der Hinweis in Ihrem Fall den gesetzlichen Anforderungen genügt, müssen Sie als Verantwortlicher für die Datenverarbeitung sicherstellen.

Jeder API-Fehler enthält cause (wer ihn beheben muss) und action (was zu tun ist) - siehe Fehlerformat in der REST-API-Referenz.

10Limits

  • Ein Anruf dauert höchstens 10 Minuten (600 Sekunden), danach beendet der Agent ihn selbst.
  • Schweigt der Anrufer 20 Sekunden lang, wertet der Agent das als Ende des Gesprächs und legt auf.
  • Der Agent antwortet etwa 1 Sekunde, nachdem Sie ausgesprochen haben - im realen Betrieb schwankt das je nach Auslastung leicht.

11Sprachen

Der Agent kann fünf Sprachen sprechen - Tschechisch (Standard), Slowakisch, Englisch, Deutsch und Polnisch - die Sprache stellen Sie auf der Detailseite des Agenten ein (das Feld language in POST/PATCH /v1/agents, create_agent/update_agent). Eine eigene Stimme für jede Sprache (Cartesia) gibt es nur bei einem Agenten auf der eigenen Engine von volai (siehe Kapitel Stimmen unten) - ein Agent, der auf ElevenLabs bleibt, spricht die gewählte Sprache mit der Stimme Anet.

12Testanruf

Die Schaltfläche "Rufen Sie mich zum Test an" auf der Detailseite des Agenten im Portal lässt den Agenten einen echten Anruf an die von Ihnen eingegebene Nummer tätigen - eine schnelle Prüfung, wie er klingt und wie er auf Ihren Systemprompt reagiert, ohne seine Nummer selbst wählen zu müssen.

Wird wie ein gewöhnlicher ausgehender Anruf mit dem Agenten abgerechnet, einschließlich Agentenzuschlag (siehe Kapitel Preise unten) - kein Rabatt, kein Sondertarif.

Ein Agent auf der eigenen Sprach-Engine von volai kann auch ohne eigene Telefonnummer einen Testanruf tätigen - er geht über die gemeinsame volai-Leitung hinaus, sodass der Angerufene auf seinem Display die volai-Nummer sieht, nicht die des Agenten. Ein Agent auf ElevenLabs ohne eigene Nummer kann keinen Testanruf starten, bis Sie ihm eine zuweisen.

Höchstens 3 Testanrufversuche pro Konto und Tag, über alle Agenten hinweg - jeder Versuch, der tatsächlich zustande kam, zählt, auch wenn niemand abgehoben hat; ein Versuch, der scheiterte, bevor er zustande kommen konnte (unzureichendes Guthaben, besetzte Leitung), wird nicht auf das Limit angerechnet. Für gewöhnliche Anrufe über POST /v1/calls gilt kein solches strengeres Limit.

13Stimmen

Die Wahl des Anbieters beim Anlegen hat drei Zustände: useForOutboundTasks: true in POST /v1/agents oder create_agent wählt die eigene Sprach-Engine von volai, false startet auf ElevenLabs auch bei Weiterverbinden, und das Weglassen verwendet den Standard der Bereitstellung, der von der Verfügbarkeit der Engine, ihrer Aktivierung und den konfigurierten Sprachen abhängt. Die Wahl von cs oder sk allein garantiert die Engine nicht; ist der Engine-Standard deaktiviert, startet das Anlegen auf ElevenLabs. Überschreibt ein ausdrückliches false den Engine-Standard der Sprache, enthält die Antwort beim Anlegen die Warnung elevenlabs_by_explicit_choice; legen Sie daher einen Agenten, der nur für eingehende Anrufe gedacht ist, ohne dieses Feld an. Aktivieren Sie transferTo bei einem ElevenLabs-Agenten, versucht volai nach dem Speichern, ihn auf die Engine zu verschieben. Der Versuch kann pausiert, nicht verfügbar sein oder scheitern; prüfen Sie das Ergebnis daher mit einem anschließenden GET /v1/agents/{id} bei REST bzw. im zurückgegebenen Agenten bei MCP. Das Feld provider zeigt, auf welcher Plattform ein Agent läuft; das Weiterverbinden funktioniert nicht, solange er auf ElevenLabs bleibt. Ein erfolgreicher Wechsel kann seine Stimme ändern. Derselbe Versuch folgt auf eine Änderung von language bei einem ElevenLabs-Agenten von einer Sprache, in der neue Agenten auf ElevenLabs starten (heute en, de, pl), zu einer, in der sie auf der Engine starten (cs, sk); der Agent erhält dann die Standard-Engine-Stimme der neuen Sprache (Milena, Katarina). Ein Wechsel zwischen cs und sk verschiebt nichts. Das Verschieben zwischen Plattformen übernimmt ansonsten der volai-Support. ElevenLabs akzeptiert aus dem Katalog nur katty oder eine rohe ElevenLabs-Stimm-ID; andere Katalogstimmen erfordern die Engine.

voiceId bei create_agent/update_agent (und das gleichnamige Feld in POST/PATCH /v1/agents) wählt die Stimme des Agenten. Die ungefilterte Liste GET /v1/voices (MCP list_voices ohne Argument provider) zeigt die ElevenLabs-Stimme katty nicht - REST liefert sie nur mit ?provider=elevenlabs, MCP mit dem Argument provider: "elevenlabs". Cartesia-Stimmen (Milena, Jan und die Stimmen für andere Sprachen) sind für Agenten auf der eigenen Engine von volai, Katty für Agenten auf ElevenLabs (auf welcher Plattform ein Agent läuft, steht in der Anmerkung oben). Die ältere Stimme anet bleibt nur bei Agenten, die sie bereits haben - seit dem 12. 9. 2026 weist ElevenLabs sie neuen Agenten nicht mehr zu, und volai lehnt eine solche Anfrage mit einer Erklärung ab. Beim Anlegen mit ausdrücklichem useForOutboundTasks: true wird eine erkannte Katalogstimme, die auf der Engine nicht verfügbar ist, einschließlich katty, durch den Engine-Standard der gewählten Sprache ersetzt; wählt ein weggelassenes Feld die Engine über den Standard der Bereitstellung, wird dieselbe inkompatible Stimme abgelehnt. Eine rohe ElevenLabs-ID wird für die Engine immer abgelehnt. Ohne voiceId erhält der Agent die Standardstimme seines Anbieters - Milena auf der Engine, die Stimme der Vorlage (Katty) auf ElevenLabs.

Der Katalog bietet pro Sprache mindestens eine weibliche und eine männliche Stimme (für Tschechisch heute vier): 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. Das Portal bietet nur Stimmen in der gewählten Sprache des Agenten an - beide wechseln gemeinsam (siehe Kapitel Sprachen oben).

Jede Stimme in der Tabelle gehört zur eigenen Sprach-Engine von volai. Für einen Agenten auf ElevenLabs lehnt die API sie mit einem 400 ab - dieser Agent akzeptiert nur katty (die die ungefilterte Liste nicht zeigt) und eine rohe ElevenLabs-Stimm-ID.

idBeschreibungVorschau
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 akzeptiert auch eine rohe ElevenLabs-ID, aber nur für einen Agenten auf der Standardplattform (provider: "elevenlabs"). Verwenden Sie für einen Agenten auf der Engine eine Katalog-Stimm-ID. Ein unbekannter oder mit dem Anbieter unverträglicher Wert liefert einen Fehler mit den gültigen Optionen.

14Statistiken

Die Detailansicht des Agenten im Portal zeigt die Zahl der beantworteten Anrufe, ihre durchschnittliche und längste Dauer und wie viele es in den letzten 30 Tagen waren - dafür gibt es keine eigene API, dieselben Zahlen können Sie selbst aus GET /v1/calls berechnen.

15Preise

Der Sprachagent wird zusätzlich zum Anrufpreis sekundengenau abgerechnet - ohne Aufrunden auf ganze Minuten. Die Tarife verstehen sich ohne MwSt., wie die gesamte Preisliste.

RichtungAnrufAgentGesamt
Ausgehend0.92 CZK/min (~EUR 0.04)2.50 CZK/min (~EUR 0.10)3.42 CZK/min (~EUR 0.14)
Eingehend0.50 CZK/min (~EUR 0.02)2.50 CZK/min (~EUR 0.10)3.00 CZK/min (~EUR 0.13)

Die vollständigen Preise mit Beispielen finden Sie auf der Seite Preise.

Sie bevorzugen Ihr eigenes ElevenLabs, Vapi oder eine andere Plattform? Mit Ihrem eigenen Agenten sparen Sie sich den Agentenzuschlag - siehe Eigenen Agenten mitbringen.

16Transkripte und Webhook

Sobald ein Anruf endet, rufen Sie Transkript und Zusammenfassung über GET /v1/calls/{id} (Felder transcript und summary) ab - oder volai sendet sie als Ereignis an Ihre URL call.completed, sobald sie fertig sind. Transkriptformat, Signaturprüfung und Fehlerbehandlung finden Sie auf der Seite Webhooks.

Sie möchten nicht auf einen Webhook warten oder die API abfragen? Auf der Detailseite jedes Agenten im Portal sehen Sie außerdem eine Liste der letzten Anrufe, bei der das Transkript gleich zum Lesen bereitsteht.

17Sprach-Engine von volai

Manche Agenten laufen heute auf der eigenen Sprach-Engine von volai statt auf ElevenLabs. Der Wechsel ändert das Anrufrouting, und die gesamte Konfiguration des Agenten zieht mit um - Anweisungen, Einleitungssatz, Datenfelder, Anrufziel, Wissen, Tools und Weiterverbinden. Was sich ändert und was nicht:

  • Stimmen ein Agent, bei dem eine ElevenLabs-Stimme gewählt war (Katty oder die ältere Anet), erhält nach dem Wechsel die Standardstimme der Engine für seine Sprache - Milena für Tschechisch. Die Engine bietet keine ElevenLabs-Stimme als Hauptstimme an, ElevenLabs bleibt nur als Ersatz bei einem Ausfall von Cartesia. In den Einstellungen des Agenten können Sie dann jede andere Katalogstimme für die Sprache des Agenten wählen, darunter Jan für Tschechisch. Eine Stimme, die der Agent bereits aus dem Katalog der Engine hat, bleibt unberührt.
  • Antwortzeit bleibt wie bei ElevenLabs - etwa 1 Sekunde, nachdem Sie ausgesprochen haben.
  • Aufzeichnungen unverändert - sie werden weiterhin 90 Tage aufbewahrt und lassen sich auf der Detailseite des Agenten auf dieselbe Weise ausschalten.
  • Aufzeichnungshinweis unverändert - ist der Aufzeichnungshinweis für den Agenten eingeschaltet (`recordingNotice`), hängt volai auch hier an die erste Nachricht des Agenten einen kurzen Satz an, dass das Gespräch aufgezeichnet wird (siehe Abschnitt Aufzeichnungen oben). Ohne diese Option oder bei ausgeschalteter Aufzeichnung wird der Satz gar nicht angehängt.
  • KI-Kennzeichnung unverändert - der Einleitungssatz geht genau so an den Anbieter, wie Sie ihn geschrieben haben. Wir erzwingen sie nicht: Sagt der Satz nicht, dass der Anrufer mit einem digitalen Assistenten spricht, warnen wir Sie nur (EU-KI-Verordnung, Artikel 50), das Speichern funktioniert trotzdem. Die Kennzeichnung bleibt bei beiden Anbietern Ihre Verantwortung.
  • Tools und Weiterverbinden sie ziehen mit dem Agenten um - ein erfolgreicher Wechsel übergibt der Engine seine Tools und das eingerichtete Weiterverbinden an einen Menschen, sodass Sie sie nicht erneut einrichten müssen. Auf der eigenen Sprach-Engine von volai funktioniert das Weiterverbinden als Brücke (wie im Abschnitt Weiterverbinden an einen Menschen oben) - die Brücke ist im Alltagsbetrieb erprobt, und das Portal zeigt für einen Agenten auf der Engine das vollständige Weiterleitungsformular. Das Aktivieren des Weiterverbindens bei einem Agenten auf der Standardplattform (ElevenLabs) löst nach dem Speichern sofort einen Wechselversuch aus; prüfen Sie das Ergebnis in `provider`, denn ein pausierter Versuch, eine nicht verfügbare Engine oder ein Fehler können ihn auf ElevenLabs belassen, wo das Weiterverbinden nicht funktioniert. Ein erfolgreicher Wechsel kann seine Stimme auf den Engine-Standard ändern. Die massenhafte Nummernmigration in Wellen überspringt daher Agenten mit eingerichtetem Weiterverbinden.
  • Erkennung von Mailboxen bei ausgehenden Anrufen kann nur die eigene Sprach-Engine von volai - innerhalb weniger Sekunden nach dem Abheben erkennt sie eine Mailbox statt einer Person und markiert sie je nach Einstellung nur, legt auf oder wartet auf den Signalton und spricht eine Nachricht. Einstellbar im Agentendetail (nur Engine-Agenten), über die API und MCP im Feld `voicemail`. Die Anrufliste zeigt dann bei einem ausgehenden Anruf mit Mailbox "Mailbox hat geantwortet" statt des üblichen Ergebnisses. Die Standardplattform (ElevenLabs) hat keine solche Erkennung.
  • Erinnerung bei Stille spielt nur die eigene Sprach-Engine von volai ab - schweigt der Anrufer eine Weile, fragt der Agent einmal nach, ob er noch da ist. Die Einstellung (an/aus, 3 bis 25 Sekunden) wird für beide Anbieter gespeichert - bei einem Agenten auf der Standardplattform (ElevenLabs) ist das Feld im Agentendetail ausgegraut, und der Wert wird wirksam, sobald der Agent auf die Engine wechselt. Ihr eigener Erinnerungssatz (`silencePromptText`, bis zu 80 Zeichen, anstelle der Standarderinnerung für die Sprache des Agenten, die auf Deutsch "Sind Sie noch da?" lautet) wird auf dieselbe Weise gespeichert.
  • Schutz des ersten Satzes kann nur die eigene Sprach-Engine von volai, und nur bei ausgehenden Anrufen: Während der erste Satz läuft (die von Ihnen eingestellte Zahl von Sekunden, 0 bis 20), unterbricht ihn eine kurze Reaktion der Person, die abgehoben hat ("Hallo?", "Ja?"), nicht: Eine Antwort ohne unterbrechendes Wort (zum Beispiel stopp, nein, warten) wird im geschützten Fenster verworfen, unterbricht den Satz also nicht, steht nicht im Transkript, und der Agent reagiert nicht darauf, ein unterbrechendes Wort unterbricht ihn dagegen immer. Die unterbrechenden Wörter richten sich nach der Sprache des Agenten: Einen deutschen Agenten unterbrechen stopp, nein, warten oder moment. Das Feld `firstMessageProtectSecs` wird für beide Anbieter ohne erzwungenen Standard gespeichert - bei einem Agenten auf der Standardplattform (ElevenLabs) ist es im Agentendetail ausgegraut und wird wirksam, sobald der Agent auf die Engine wechselt. Im Transkript des Anrufs trägt ein Beitrag des Agenten, den der Anrufer unterbrochen hat, die Markierung `interrupted`.
  • Lachen des Agenten kann nur die eigene Sprach-Engine von volai zurücklachen, wenn Sie oder der Anrufer im Gespräch lachen oder scherzen - und nur mit einer tschechischen Cartesia-Stimme (Milena, Jan und der Rest des Katalogs). Die Standardplattform (ElevenLabs) kann es gar nicht, auch nicht bei gesetztem Feld. In den Einstellungen des Agenten wählen Sie Automatisch (die Engine schaltet das Lachen bei sensiblen Themen wie Inkasso, Gesundheitswesen, Behörden oder Bestattungsdiensten selbst ab), Ein (überschreibt diese Erkennung) oder Aus. Die Änderung gilt ab dem nächsten Anruf.

18Kalender und Termine

Ein Agent auf der eigenen Sprach-Engine von volai kann direkt im Gespräch einen freien Termin in Ihrem Google- oder Apple-Kalender prüfen und den Termin sofort buchen - er sagt dem Anrufer, ob eine Zeit frei ist, bietet die nächsten freien Termine an und bucht den Termin, sobald er einen Namen bestätigt hat. Aktivieren Sie das im Agenten-Editor auf dem Tab Kalender: Wählen Sie die Verbindung (Daten und Integrationen), den konkreten Kalender und die Verfügbarkeitsregeln.

  • Verfügbarkeitsregeln Zeitfenster pro Wochentag (wann der Agent überhaupt Termine anbietet), Termindauer, Pufferzeit zwischen Terminen, Mindestvorlauf vor dem gebuchten Zeitpunkt und der Horizont - wie weit im Voraus der Agent sucht. Der Editor trägt Standardwerte ein, aber jeder Agent kann eigene Werte haben.
  • Integrierte Tools der Kalender nutzt zwei integrierte Tools, check_availability und book_appointment - anders als die eigenen Tools aus dem Kapitel Tools oben werden sie nicht von Hand angelegt, sie schalten sich zusammen mit dem Kalender ein und zählen nicht zum Tool-Limit des Kontos.
  • Nur die eigene Engine von volai funktioniert nur für einen Agenten auf der eigenen Sprach-Engine von volai. Schalten Sie den Kalender für einen Agenten auf der Standardplattform (ElevenLabs) ein, wird die Einstellung gespeichert, und der Agent versucht direkt nach dem Speichern, auf die Engine von volai zu wechseln - genau wie beim Weiterverbinden an einen Menschen.
  • Was der Agent sagt und was nicht der Agent liest niemals vor, was im Kalender steht - nur, ob ein bestimmter Zeitpunkt frei ist. Die Telefonnummer des Anrufers wird dem Termin nur hinzugefügt, wenn der Agent sie kennt (bei unterdrückter Nummer hat der Termin keine Telefonnummer).
  • Auch außerhalb eines Anrufs dieselbe Suche nach freien Terminen und dieselbe Terminbuchung funktionieren auch außerhalb eines Anrufs über REST (POST /v1/integrations/{id}/availability, POST /v1/integrations/{id}/events) und MCP (find_free_slots, create_calendar_event) - Details finden Sie im Abschnitt Kalender der REST-API-Referenz und in der MCP-Referenz.