> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Events van client naar server

**Events van client naar server** zijn berichten die je applicatie proactief naar de server stuurt om tijdens gesprekken aanvullende context te bieden. Met deze events kun je het gesprek verrijken met relevante informatie zonder de gespreksstroom te onderbreken.

> **Note**
>
> Raadpleeg de documentatie over [client- events](/docs/nl/eleven-agents/customization/events/client-events) voor informatie over events die de server naar de client stuurt.

## Overzicht

Je applicatie kan op elk moment tijdens het gesprek contextuele informatie naar de server sturen om de kwaliteit en relevantie van het gesprek te verbeteren. Dit hoeft niet als reactie te zijn op een client-event dat van de server is ontvangen. Dit is vooral handig om de UI-status, gebruikersacties of andere omgevingsgegevens te delen die mogelijk niet rechtstreeks via spraak worden gecommuniceerd.

> **Info**
>
> Hoewel onze SDK's hulpmethoden bieden voor het verzenden van deze events, is inzicht in het onderliggende
> protocol waardevol voor aangepaste implementaties en geavanceerde use cases.

## Eventtypen

### Contextuele updates

Met contextuele updates kan je applicatie achtergrondinformatie naar het gesprek sturen zonder het te onderbreken.

**Belangrijkste kenmerken:**

* Updates worden als achtergrondinformatie in het gesprek opgenomen.
* Onderbreken de huidige gespreksstroom niet.
* Handig voor het verzenden van UI-status, gebruikersacties of omgevingsgegevens.

```javascript
// Contextual update event structure
{
  "type": "contextual_update",
  "text": "User appears to be looking at pricing page"
}
```

```javascript
// Example sending contextual updates
function sendContextUpdate(information) {
  websocket.send(
    JSON.stringify({
      type: "contextual_update",
      text: information,
    })
  );
}

// Usage examples
sendContextUpdate("Customer status: Premium tier");
sendContextUpdate("User navigated to Help section");
sendContextUpdate("Shopping cart contains 3 items");
```

### Gebruikersberichten

Met gebruikersberichten kun je tekst rechtstreeks naar het gesprek sturen alsof de gebruiker die heeft uitgesproken. Dit is handig voor tekstgebaseerde interacties of wanneer je specifieke tekst in de gespreksstroom wilt invoegen.

**Belangrijkste kenmerken:**

* Tekst wordt verwerkt als gebruikersinvoer voor het gesprek.
* Activeert dezelfde reactiestroom als gesproken gebruikersinvoer.
* Handig voor tekstgebaseerde interfaces of programmatische gebruikersinvoer.

```javascript
// User message event structure
{
  "type": "user_message",
  "text": "I would like to upgrade my account"
}
```

```javascript
// Example sending user messages
function sendUserMessage(text) {
  websocket.send(
    JSON.stringify({
      type: "user_message",
      text: text,
    })
  );
}

// Usage examples
sendUserMessage("I need help with billing");
sendUserMessage("What are your pricing options?");
sendUserMessage("Cancel my subscription");
```

### Gebruikersactiviteit

Events voor gebruikersactiviteit dienen als signalen om onderbrekingen door de agent te voorkomen.

**Belangrijkste kenmerken:**

* Reset de timer voor de beurttime-out.
* Heeft geen invloed op de inhoud of stroom van het gesprek.
* Handig om langlopende gesprekken tijdens stiltes te behouden.

```javascript
// User activity event structure
{
  "type": "user_activity"
}
```

```javascript
// Example sending user activity
function sendUserActivity() {
  websocket.send(
    JSON.stringify({
      type: "user_activity",
    })
  );
}

// Usage example - send activity ping every 30 seconds
setInterval(sendUserActivity, 30000);
```

## Best practices

1. **Contextuele updates**

   * Stuur relevante maar beknopte contextuele informatie.
   * Voorkom dat je de LLM met te veel updates overlaadt.
   * Richt je op informatie die de gespreksstroom beïnvloedt of belangrijke context vormt uit activiteiten in een UI die niet toegankelijk is voor de spraakagent.

2. **Gebruikersberichten**

   * Gebruik dit voor tekstgebaseerde gebruikersinvoer wanneer audio niet beschikbaar of geschikt is.
   * Zorg dat de tekstinhoud duidelijk en goed opgemaakt is.
   * Houd rekening met de gesprekscontext wanneer je programmatische berichten invoegt.

3. **Gebruikersactiviteit**

   * Stuur activiteitspings tijdens perioden van gebruikersinteractie om de sessie te behouden.
   * Gebruik redelijke intervallen (bijv. 30-60 seconden) om onnodig netwerkverkeer te voorkomen.
   * Implementeer activiteitsdetectie op basis van daadwerkelijke gebruikersinteractie (muisbewegingen, typen enz.).

4. **Overwegingen voor timing**

   * Stuur updates op geschikte momenten.
   * Overweeg meerdere contextuele updates in één update te groeperen (in plaats van elke kleine wijziging afzonderlijk te sturen).
   * Vind een balans tussen de sessie actief houden en overmatig berichten sturen voorkomen.

> **Info**
>
> Bekijk onze [SDK- documentatie](/docs/nl/eleven-agents/libraries/python) voor gedetailleerde implementatievoorbeelden.