---
title: "Instrumente integrate"
description: "Instruiți agenții ThunderPhone să încheie apeluri, să transfere apelanți, să navigheze prin tastaturi telefonice, să aștepte în așteptare, să caute informații, să redea sunete, să trimită e-mailuri și să calculeze totaluri."
---

Instrumentele integrate permit unui agent vocal să efectueze acțiuni obișnuite în apeluri fără a conecta propriul API. Majoritatea sunt disponibile automat; e-mailul, sunetele, calculatorul și căutarea în baza de cunoștințe apar numai după ce configurați setarea sau sursa asociată. Indicați agentului vocal când să folosească fiecare acțiune în promptul său.

| Instrument | Utilizați-l pentru | Cum îl activați | Apeluri acceptate |
| --- | --- | --- | --- |
| `end_call` | Încheierea unei conversații finalizate | Disponibil întotdeauna | Telefon, Talk în browser, widget, simulare și Realtime |
| `transfer_call` | Direcționarea unui apelant telefonic | Configurați direcționarea în prompt | Apeluri telefonice obișnuite; Realtime inline cu `call_events` poate utiliza transferul fără consultare. Realtime pentru agenți salvați îl omite. |
| `send_keypad_input` | Apăsarea tastelor într-un meniu telefonic | Disponibil întotdeauna pentru apelurile telefonice obișnuite | Apeluri telefonice; Realtime inline de ieșire cu `call_events`. Realtime pentru agenți salvați îl omite. |
| `no_response` | Continuarea ascultării în timp ce un meniu automat vorbește sau un apelant gândește cu voce tare; un apelant care îi cere agentului vocal să aștepte primește doar „Sigur.” | Disponibil întotdeauna | Toate tipurile de apeluri |
| `wait_on_hold` | Așteptarea în tăcere a revenirii unei persoane | Inclus în apelurile de ieșire | Apeluri telefonice de ieșire și sesiuni Realtime inline de ieșire |
| `search_knowledge_base` | Răspunsuri din surse atașate | Atașați cunoștințe agentului vocal | Apeluri ale agenților salvați cu cunoștințe atașate |
| `play_sound` | Redarea unui sunet de notificare configurat | **Avansat → Sunet instrument** | Apeluri ale agenților salvați |
| `send_email` | Trimiterea unui e-mail către un destinatar fix | **Avansat → Trimitere e-mail** | Apeluri ale agenților salvați |
| `calculate` | Calcularea exactă a totalurilor, taxelor și restului | **Avansat → Calculator** | Apeluri ale agenților salvați |

## `end_call`

Încheie apelul curent atunci când promptul îi indică modelului să facă acest lucru. Este disponibil implicit și nu are nicio setare de agent.

Scrieți în prompt condiția și orice formulă de rămas-bun necesară:

```text
When the caller confirms they need nothing else, say goodbye and end the call.
```

Un apel încheiat de model are `end_reason: "ai_hangup"`, inclusiv unul care se încheie după avertizarea privind limita de durată a apelului. Apelul se încheie cu `max_duration` numai dacă limita de durată este atinsă prima și cu `balance_exhausted` atunci când soldul preplătit se epuizează.

## `transfer_call`

Transferă un apelant telefonic către un număr fix furnizat de model. Transferul la rece este imediat. Un transfer asistat cu verificare apelează în privat destinația înainte de a conecta părțile. Transferul asistat necesită un număr VoIP importat verificat, care poate efectua apeluri de ieșire.

Introduceți în prompt numărul de destinație și condiția exactă de direcționare:

```text
If the caller asks for billing, transfer them to +15551234567.
```

Un transfer la rece reușit are `end_reason: "ai_transfer"`; o predare asistată finalizată are `end_reason: "ai_warm_transfer"`. O încercare asistată eșuată returnează controlul agentului, astfel că încheierea ulterioară a apelului îi determină motivul de încheiere. În sesiunile non-telefonice, o solicitare de transfer încheie sesiunea.

Consultați [Transferuri de apeluri](/ro/guides/call-transfers) pentru configurarea în tabloul de bord și prin API, direcționare, verificare, gestionarea eșecurilor, limite și testare.

## `send_keypad_input`

Trimite cifre DTMF (tastatură telefonică) `0`–`9`, `*` și `#` către o linie telefonică. Modelul îl utilizează pentru a naviga într-un IVR, meniul automatizat care le solicită apelanților să apese taste. Este disponibil implicit și nu are nicio setare de agent.

Indicați modelului prin ce meniuri poate naviga și de unde provin valorile solicitate. Nu îi cereți să ghicească opțiunile de meniu:

```text
Follow the phone menu for account status. Press a key only after the menu
states what that key does. Enter the account number supplied by the caller.
```

Platforma elimină caracterele neacceptate și trimite cifrele valide în ordine. Dacă nu rămân cifre valide sau apelul nu poate trimite date de la tastatură, eroarea este returnată agentului pentru ca acesta să poată remedia situația.

## `no_response`

Menține agentul tăcut cât timp un sistem automat încă vorbește sau îi cere să continue să asculte, precum și atunci când un apelant gândește cu voce tare („ăă, să văd”) sau se întoarce să vorbească cu altcineva. Când un apelant îi cere agentului să aștepte cât timp face ceva („o secundă”, „să verific”, „puteți aștepta o clipă?”) și nu îi oferă nimic altceva la care să răspundă, agentul spune doar „Sigur.” (nu „Luați-vă tot timpul necesar”) și așteaptă ca apelantul să vorbească din nou. Verificările periodice de tăcere ale agentului continuă să ruleze și sunt întotdeauna rostite dacă linia rămâne tăcută. Nu se aplică salutului unei persoane reale, unei întrebări sau unei cozi reale de așteptare. Este disponibilă implicit și nu are nicio setare pentru agent.

Dacă instrucțiunea dvs. îi spune agentului ce să spună când un apelant cere un moment, instrucțiunea are prioritate.

De obicei, descrierea integrată este suficientă. Pentru apeluri cu mult IVR, consolidați limita în prompt:

```text
Stay silent while a phone menu is still speaking. Answer a live person as soon
as they address you.
```

Această acțiune nu încheie apelul.

## `wait_on_hold`

Pune un agent pentru apeluri efectuate într-o stare de așteptare silențioasă până când revine o persoană.
Modelul îl utilizează numai după ce cealaltă parte spune explicit că agentul este
pus în așteptare. Este disponibil automat pentru apelurile efectuate și nu are
nicio setare în tabloul de bord.

```text
If a person explicitly puts you on hold, wait silently. When they return,
continue from the question you were discussing.
```

Nu solicitați agentului să îl utilizeze pentru mesajul IVR „vă rugăm să așteptați”. În mod implicit, așteptarea durează
până la 15 minute. Pentru apelurile efectuate obișnuite, `POST /v1/call`
acceptă un `max_hold_seconds` întreg pozitiv; Realtime inline restricționează
`max_hold_seconds` la 10–900 de secunde. Dacă persoana
revine, agentul reia conversația fără a modifica motivul de încheiere al apelului. Dacă limita
expiră, platforma încheie apelul cu `end_reason: "ai_hangup"`.

## `search_knowledge_base`

Caută în documentele atașate agentului și returnează pasaje relevante. Atașați
o bază de cunoștințe sau documente de cunoștințe individuale pentru a o activa, apoi indicați
modelului care răspunsuri trebuie să provină din aceste surse:

```text
Search the knowledge base before answering policy questions. If the first
search is inconclusive, try once more with different key terms.
```

Dacă o căutare eșuează, rezultatul este returnat agentului. Consultați [Baza de
cunoștințe](/ro/guides/knowledge-base) pentru configurarea din tabloul de bord și prin API.

## `play_sound`

Redă sunetul de notificare configurat pentru agent după orice discurs din aceeași
intervenție. În tabloul de bord, setați **Avansat → Sunet instrument** la **Clopoțel**, **Clinchet**
sau **Bip**, apoi implementați agentul. **Niciunul** elimină instrumentul.

Cu [API-ul Agents](/api-reference/agents), configurați `play_sound_asset` ca
`"chime"`, `"ding"` sau `"beep"`, apoi implementați. Setați-l la `""` pentru a dezactiva
instrumentul.

```text
After confirming that an appointment was saved, say "You're all set" and play
the notification sound.
```

O eroare de redare este returnată agentului și nu încheie apelul.

## `send_email`

Trimite un e-mail cu text simplu către unicul destinatar configurat de proprietarul agentului.
Modelul furnizează subiectul și corpul mesajului. Nu vede niciodată un parametru de destinatar
și nu poate alege sau modifica adresa.

În tabloul de bord, activați **Avansat → Trimite e-mail**, salvați o adresă de destinatar,
apoi implementați agentul. Cu [API-ul Agents](/api-reference/agents), configurați atât
`send_email_enabled: true`, cât și un `send_email_recipient` nevid, apoi implementați.
Definiți în prompt declanșatorul și conținutul obligatoriu:

```text
When the caller asks to leave a message, collect their name, callback number,
and message. Read the details back for confirmation, then email them.
```

Un apel poate încerca cel mult trei e-mailuri. Fiecare subiect este limitat la 300 de
caractere, iar fiecare corp al mesajului la 20.000 de caractere. Configurația lipsă, conținutul
nevalid, limita per apel și erorile de livrare sunt returnate agentului.
O livrare eșuată consumă totuși una dintre cele trei încercări.

Testați cu un destinatar controlat înainte de a implementa la scară largă. Talk în browser și
simulările trimit e-mailuri reale; nu există un mod de simulare.

## `calculate`

Evaluează exact o expresie aritmetică și returnează rezultatul, astfel încât agentul să nu calculeze prețuri în minte. Este dezactivat implicit. În tabloul de bord, activați **Avansat → Calculator**, apoi implementați agentul. Cu [API-ul Agents](/api-reference/agents), configurați `calculator_enabled: true`, apoi implementați.

Modelul scrie expresia, cum ar fi `2*23.5 + 16.5 + 4`, și transmite rezultatul apelantului. Expresiile pot utiliza numere, `+`, `-`, `*`, `/` și paranteze. Un apel poate include până la 10 expresii separate prin `;`, precum un subtotal și totalul cu taxa de livrare, cu maximum 500 de caractere în total. Rezultatele sunt rotunjite la 10 zecimale. Calculul folosește aritmetică zecimală exactă, astfel încât `0.1 + 0.2` returnează `0.3`. Împărțirea la zero și orice altă problemă din expresie sunt transmise agentului ca eroare, pentru a fi corectate. Rulează pe ThunderPhone și răspunde instantaneu, fără replică de umplere sau sunet de tastare.

Activați-l pentru agenții care comunică totaluri de comandă, taxe sau rest. Nu este necesară nicio modificare a promptului.

## Notă privind compatibilitatea

Setarea **Avansat → Informări care nu pot fi întrerupte** și câmpul vechi
`speak_uninterruptible_enabled` rămân pentru compatibilitate, însă activarea
lor nu are niciun efect. Lăsați setarea dezactivată; niciun prompt nu poate activa acest instrument.

Pentru o informare obligatorie la începutul apelului, utilizați **Anunț privind consimțământul**. Aceasta se redă
verbatim înaintea conversației obișnuite și nu poate fi întreruptă. Consultați [Legile privind consimțământul pentru înregistrarea apelurilor](/ro/guides/recording-consent-laws).

## Testați și monitorizați instrumentele integrate

Utilizați Talk în browser sau o simulare pentru a verifica prompturile, căutarea în baza de cunoștințe, sunetele
și e-mailul. Aceste medii nu pot reproduce comportamentul rețelei telefonice. Testați
navigarea prin tastatură și așteptarea într-un apel telefonic efectuat și testați un transfer asistat complet
într-un apel real folosind un număr VoIP importat eligibil. Compatibilitatea Realtime
este limitată, după cum se arată în tabelul de mai sus.

## Apeluri, prețuri și webhookuri

Acțiunile integrate nu au tarif per utilizare. Taxele obișnuite pentru apeluri și
furnizori se aplică în continuare; consultați [Prețuri](/ro/guides/pricing). Apelurile și rezultatele acestora pot apărea
în transcrierea finalizată, dar nu emit `telephony.tool` sau `web.tool`.
Aceste evenimente sunt pentru [funcții definite de utilizator](/ro/tools/overview). Doar o
închidere sau un transfer finalizat modifică `end_reason` al apelului; alte erori sunt returnate
agentului. Consultați [Webhookuri de finalizare a apelului](/ro/webhooks/call-complete) pentru înregistrarea apelului.
