> ## Documentation Index
> Fetch the complete documentation index at: https://help.cloudtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools voor VoiceAgent

> Stel Tools in zodat uw VoiceAgent realtime acties kan uitvoeren via API

<Note>
  In dit artikel leert u hoe **VoiceAgent Tools** realtime acties tijdens live gesprekken mogelijk maken doordat uw VoiceAgent rechtstreeks kan communiceren met externe systemen via API.

  Door Tools te gebruiken, maakt u van uw VoiceAgent een volwaardige probleemoplosser, wat de automatisering verbetert en zorgt voor snellere, slimmere klantervaringen.
</Note>

**Gebruikersniveau:** Admin

***

<h2 id="h_4216241551">
  Wat zijn Tools?
</h2>

Met Tools kan uw VoiceAgent tijdens een gesprek specifieke acties uitvoeren door API-verzoeken te sturen naar systemen van derden. U kunt precies configureren wat elke tool doet en wanneer deze moet worden geactiveerd op basis van het gesprek.

**Bijvoorbeeld**:

* Een klant vraagt: “Waar is mijn bestelling?” → De VoiceAgent gebruikt een tool om de laatste trackinggegevens op te halen.

* Een patiënt zegt: “Kan ik mijn afspraak verzetten naar vrijdag?” → De VoiceAgent roept uw boekings-API aan om beschikbaarheid te controleren en de afspraak te verzetten.

**Andere voorbeeldgebruikssituaties:**

* **Gegevens ophalen:**

  * Details van een supportticket opzoeken

  * Realtime prijs- of beschikbaarheidsinformatie raadplegen

* **Acties uitvoeren:**

  * Een CRM-contact bijwerken

  * Een terugbetaling activeren

***

<h2 id="h_c800e5f3ba">
  Een tool maken
</h2>

Ga om te beginnen naar **Dashboard > VoiceAgents > Toolbeheer** en klik vervolgens op de ➕-knop rechtsboven of selecteer **Een tool maken** om het configuratiescherm te openen waarin u kunt bepalen hoe uw nieuwe tool werkt.

<Frame>
  <img src="https://mintcdn.com/cloudtalk/g8s2E4Yk8cWS5656/images/help-center/articles/11275049/89b356edddea-screenshot-2025-05-07-at-11-20-17.png?fit=max&auto=format&n=g8s2E4Yk8cWS5656&q=85&s=484f51baeac2354c6fdf2fa12e8e794d" alt="" width="400" data-path="images/help-center/articles/11275049/89b356edddea-screenshot-2025-05-07-at-11-20-17.png" />
</Frame>

Hieronder ziet u hoe u elk onderdeel configureert:

<h4 id="h_425b566d96">
  Referentie toolvelden
</h4>

| **Veld** | **Beschrijving** |
| - | - |
| **Toolnaam** | Een duidelijke, beschrijvende naam die de VoiceAgent helpt te bepalen wanneer deze tool moet worden gebruikt. Gebruik namen zoals `book_meeting`, `update_contact` of `trigger_refund`. Alleen de volgende tekens zijn toegestaan: `a-z`, `A-Z`, `0-9`, `_`, `-` |
| **Toolbeschrijving** | Beschrijf in natuurlijke taal wat de tool doet en wanneer deze moet worden gebruikt. Dit helpt de AI te begrijpen in welke situaties de tool moet worden geactiveerd. |
| **Bericht in afwachting van antwoord** | Een kort bericht dat de VoiceAgent afspeelt terwijl deze wacht op het API-antwoord. Dit helpt stiltes tijdens de uitvoering te overbruggen. Voorbeeld: `Let me check that for you. One moment please.` |
| **Methode en eindpunt** | De HTTP-methode en het API-eindpunt die de tool zal aanroepen. Bijvoorbeeld: `GET https://api.example.com/orders` |
| **Headers** | Definieer de headers die de API vereist. Dit zijn meestal constanten zoals `Authorization`, `Content-Type` of versioneringsheaders. |
| **Pad-parameters** | Wordt gebruikt om dynamische waarden in te vullen binnen de eindpunt-URL (bijvoorbeeld `#{{customer_id}}` in [`https://api.acme.com/#{{customer_id}}/orders`](https://api.acme.com//orders)). |
| **Body-parameters** | Alleen beschikbaar voor de methoden `POST`, `PUT` en `PATCH`. Definieer de velden die in de request body moeten worden verzonden. |

<h2 id="h_4f39ac973b">
  Parameters begrijpen
</h2>

Bij het definiëren van een tool helpen parameters de VoiceAgent om de juiste waarden door te geven aan uw API. Er zijn drie hoofdtypen parameters die u kunt gebruiken in zowel pad- als body-definities:

<h4 id="h_b5a4e2b47e">
  Parametertypen
</h4>

| **Type** | **Beschrijving** |
| - | - |
| **Constante** | Een vaste waarde die voor elke API-aanroep hetzelfde blijft. Handig wanneer u precies weet welke waarde u elke keer wilt verzenden. |
| **Parameter** | Een dynamische waarde die wordt verzonden vanuit uw system prompt. Hier verwijst u naar een variabelenaam die moet overeenkomen met de naam die wordt meegestuurd in uw triggerende API-verzoek. |
| **LLM-prompt** | Een instructie in natuurlijke taal aan de AI over hoe een waarde uit het gesprek moet worden gehaald. Het meest geschikt wanneer de invoer afhangt van wat de beller zegt. |

Elke parameter heeft ook een **Gegevenstype** dat bepaalt hoe de waarde wordt opgemaakt in het API-verzoek. Beschikbare typen:

* **String, Integer, Number, Boolean** werken als eenvoudige scalaire waarden.

- **Lijst** verzendt de waarde als een JSON-array (bijvoorbeeld `"recipients": ["a@b.com", "c@d.com"]`). Wanneer u Lijst selecteert, kiest u ook een elementtype (Lijst van String, Lijst van Integer, enzovoort). Als de agent slechts één waarde haalt, wordt deze automatisch in een array met één element geplaatst in plaats van dat het mislukt.

* **Object** verzendt de waarde als een JSON-object. Objectparameters zijn alleen beschrijvend: de agent krijgt te horen dat de parameter een object is en ziet uw beschrijving, maar kent de specifieke veldnamen niet en kan daardoor de interne structuur niet afdwingen. Dit werkt goed voor eenvoudige pass-through-payloads.

<h3 id="h_52e9885b1b">
  Pad-parameters
</h3>

Dit zijn waarden die rechtstreeks in de URL worden geplaatst. U definieert ze met accolades in de eindpunt-URL, zoals `#{{customer_id}}`.

Zo werkt dit in de praktijk:

**Voorbeeldeindpunt:**\
[`https://api.acme.com/#{{customer_id}}/orders`](https://api.acme.com//orders)

In dit geval wordt `customer_id` een pad-parameter.

**Als gedefinieerd als Parameter:**

| Parameter | Waardebron |
| - | - |
| `customer_id` | `customer_identifier`-variabele uit de system prompt |

**Voorbeeld van triggerend verzoek**:

```
{
    "call_number": "++44123123123",
    "voice_agent_id": "6819f0e147851f618cd6aed6",
    "call_properties": {
        "system_prompt": {
            "variables": {
                "customer_identifier": "abc123",
            }
        }
    }
}
```

Dit resulteert in een aanroep naar:\
[`https://api.acme.com/abc123/orders`](https://api.acme.com/abc123/orders)

**Om te extraheren via LLM-prompt:**\
Gebruik een duidelijke instructie zoals:\
*“*Extraheer de klant-ID die de beller noemt, als deze wordt gegeven. Vraag ernaar als de beller dit niet uit zichzelf doet.*”*

<Frame>
  <img src="https://mintcdn.com/cloudtalk/g8s2E4Yk8cWS5656/images/help-center/articles/11275049/815cc3074282-image.png?fit=max&auto=format&n=g8s2E4Yk8cWS5656&q=85&s=a76817755f1e24e31cf664aec8ebcfec" alt="" width="650" height="644" data-path="images/help-center/articles/11275049/815cc3074282-image.png" />
</Frame>

<h3 id="h_453492ae81">
  Body-parameters
</h3>

Voor de methoden `POST`, `PUT` en `PATCH` moet u mogelijk een request body verzenden. Deze werken op dezelfde manier als pad-parameters en kunnen ook constanten, system prompt-variabelen of LLM-prompts gebruiken.

**Geneste objecten** kunnen worden gedefinieerd met puntnotatie.

**Voorbeelddefinitie:**

| **Parameter** | **Type** | **Waarde** |
| - | - | - |
| `customer_id` | Parameter | `customer_identifier` |
| `attendee.email` | LLM-prompt | *“Extraheer het e-mailadres van de klant uit het gesprek.”* |
| `recipients` | LLM-prompt | *"Extraheer alle e-mailadressen die de beller noemt."* |

**Triggerend verzoek**:

```
{
    "call_number": "++44123123123",
    "voice_agent_id": "6819f0e147851f618cd6aed6",
    "call_properties": {
        "system_prompt": {
            "variables": {
                "customer_identifier": "abc123",
            }
        }
    }
}
```

**Dit verzoek resulteert in de volgende body:**

```json theme={"system"}
{
  "customer_id": "abc123",
  "attendee": {
    "email": "john@acme.com"
  },
  "recipients": ["a@b.com", "c@d.com"]
}
```

<Frame>
  <img src="https://mintcdn.com/cloudtalk/0LuB-WYxwheF-8cl/images/help-center/articles/11275049/5b9ade3e0dcb-image-1.png?fit=max&auto=format&n=0LuB-WYxwheF-8cl&q=85&s=e35de45d644f8dfa1eb99f165c09c437" alt="" width="853" height="367" data-path="images/help-center/articles/11275049/5b9ade3e0dcb-image-1.png" />
</Frame>

***

<h2 id="h_0809ce1434">
  Tools toewijzen aan VoiceAgents
</h2>

Met Tools kunnen VoiceAgents tijdens een gesprek specifieke acties uitvoeren, zoals het activeren van externe workflows, het verzenden van gegevens naar andere systemen of het beëindigen van het gesprek. Eén VoiceAgent kan meerdere Tools gebruiken en dezelfde Tool kan worden gebruikt door meerdere VoiceAgents.

Tools worden geactiveerd als **acties binnen een VoiceAgent-scenario**. Dit betekent dat de VoiceAgent een Tool alleen gebruikt wanneer de situatie die in het scenario is gedefinieerd zich tijdens het gesprek voordoet.

Een tool binnen een scenario gebruiken:

1. Ga naar het gedeelte **Scenario's & Guardrails** van de VoiceAgent-configuratie.

2. Maak een nieuw **Scenario** aan of bewerk een bestaand scenario.

3. Definieer de situatie waarin de Tool moet worden gebruikt.

4. Selecteer in het veld **Actie** de optie **Tool-aanroep**.

5. Kies in de vervolgkeuzelijst **Tools** de Tool die u door de VoiceAgent wilt laten gebruiken.

6. Sla de configuratie op.

   <Frame>
     <img src="https://mintcdn.com/cloudtalk/0LuB-WYxwheF-8cl/images/help-center/articles/11275049/194bac00bc65-image.png?fit=max&auto=format&n=0LuB-WYxwheF-8cl&q=85&s=b4b12e4f82fb42298f289c4fb49b63d7" alt="" width="1178" height="642" data-path="images/help-center/articles/11275049/194bac00bc65-image.png" />
   </Frame>

Zodra dit is geconfigureerd, gebruikt de VoiceAgent automatisch de geselecteerde Tool wanneer tijdens een gesprek aan de scenariovoorwaarden wordt voldaan.

***

<h2 id="h_b446948f0c">
  Tips voor het effectief gebruiken van Tools
</h2>

* **Gebruik duidelijke en beschrijvende toolnamen**\
  Geef elke tool een naam die duidelijk weergeeft wat deze doet. Vermijd afkortingen of interne codes.

  * Goed: `trigger_refund`, `get_order_status`, `book_appointment`

  * Niet zo goed: `rfnd_tool_v1`, `statusQ`, `app_sched_new`

* **Schrijf een beschrijving in natuurlijke taal**\
  Leg in het veld Toolbeschrijving uit wanneer en waarom de VoiceAgent de tool moet gebruiken. Voeg voor complexe tools een korte beschrijving toe voor elk argument dat de agent moet verzamelen.

***

*Hulp nodig of een vraag?* Neem gewoon contact met ons op via ons [Supportportal](https://support.cloudtalk.io/hc/en-us/requests/new?ticket_form_id=26305535257884) — we staan voor u klaar.


## Related topics

- [Scenario's & Guardrails voor VoiceAgents](/nl/articles/14073408-voiceagent-scenarios-guardrails.md)
- [VoiceAgent-tools: Cal.com](/nl/articles/14073361-voiceagent-tools-cal-com.md)
- [VoiceAgents voor inkomende oproepen](/nl/articles/11399385-voiceagents-for-inbound-calls.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.