> 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.

# Five9

> **Note**
>
> Lees voordat je deze handleiding volgt eventueel de [handleiding voor SIP-trunking ](/docs/nl/eleven-agents/phone-numbers/sip-trunking) om te begrijpen hoe ElevenLabs SIP-
> trunks en aangepaste SIP-headers ondersteunt.

## Overzicht

In deze handleiding wordt uitgelegd hoe je ElevenAgents integreert met het Five9 Virtual Contact Center (VCC) via Five9 AI Agent Connect. Five9 verbindt een actief gesprek door naar een telefoonnummer van ElevenLabs, de ElevenLabs-agent voert het gesprek en ElevenLabs stuurt routerings- of afhandelingsgegevens terug naar Five9, zodat de Five9-flow kan doorgaan.

## Zo werkt de Five9-integratie

Five9 AI Agent Connect gebruikt een externe doorverbinding via SIP, waarbij gesprekscontext in beide richtingen wordt uitgewisseld via aangepaste SIP-headers met `X-`:

1. **Inkomende doorverbinding**: De Five9 IVR External Transfer Module verbindt het gesprek door naar een telefoonnummer van ElevenLabs en stuurt gesprekscontext als SIP-headers met `X-` mee in de INVITE.
2. **Gesprek**: ElevenLabs beantwoordt het gesprek en routeert het naar de juiste agent, eventueel via een router agent, en voert vervolgens het gesprek met de beller.
3. **Retourpad**: Wanneer het gesprek eindigt, voegt ElevenLabs routerings- en afhandelingsgegevens toe aan de SIP BYE als `X-`-headers.
4. **Routering na AI**: Five9 zet de teruggestuurde headers om in gespreksvariabelen en vervolgt de gespreksflow, bijvoorbeeld door door te verbinden naar een live agent, het gesprek te beëindigen of een afhandeling vast te leggen.

## Vereisten

Controleer voordat je de Five9-integratie instelt of je het volgende hebt:

1. Een actief Five9 VCC-domein met AI Agent Connect ingeschakeld.
2. Beheerderstoegang tot de Five9-configuratie, of een Five9-implementatieteam dat de wijzigingen kan aanbrengen.
3. Een ElevenLabs-account en een [agent](/docs/nl/eleven-agents/quickstart) om de doorverbonden gesprekken af te handelen.
4. Een in ElevenLabs geïmporteerd [SIP-trunktelefoonnummer](/docs/nl/eleven-agents/phone-numbers/sip-trunking) om te gebruiken als Five9-doorverbindingsbestemming.

> **Note**
>
> AI Agent Connect is een betaalde add-on voor Five9 VCC en is niet standaard ingeschakeld. Neem contact op met je Five9
> Account Manager om dit voor je domein in te schakelen voordat je met deze integratie begint.

> **Note**
>
> Beide teams moeten het eens zijn over het telefoonnummer voor doorverbinding, de headernamen die in elke richting worden verstuurd,
> de routeringswaarden en het testplan voordat de configuratie begint.

## ElevenLabs instellen

#### Het telefoonnummer voor doorverbinding importeren

Volg de [handleiding voor SIP-trunking](/docs/nl/eleven-agents/phone-numbers/sip-trunking) om het telefoonnummer te importeren waar Five9 gesprekken naartoe doorverbindt. Voor aangepaste SIP-headers en BYE-headers is een SIP-trunktelefoonnummer vereist.

Importeer het nummer in E.164-indeling met een landcode `+1` (bijvoorbeeld `+18005550100`). Five9 verstuurt de doorverbinding in deze indeling en een afwijking zorgt ervoor dat de doorverbinding mislukt.

#### Een agent toewijzen

Als één agent alle gesprekken van Five9 afhandelt, wijs je deze rechtstreeks toe aan het telefoonnummer in het [dashboard Telefoonnummers](https://elevenlabs.io/app/agents/phone-numbers).

Als meerdere agents één nummer voor doorverbinding delen, wijs dan een router agent toe en volg [Meerdere agents via één nummer routeren](#routing-multiple-agents-through-one-number).

#### De teruggestuurde headers configureren

Koppel de dynamische variabelen die je agent tijdens het gesprek instelt aan de SIP BYE-headernamen die Five9 verwacht. Zie [BYE-headers configureren](#configuring-bye-headers).

#### Testgesprekken uitvoeren

Voer testgesprekken met Five9 uit en controleer of de inkomende headers als dynamische variabelen aankomen en de BYE-headers zoals verwacht worden teruggestuurd. Inkomende headerwaarden zijn zichtbaar in de gespreksgeschiedenis op het tabblad **Phone Call**.

## Meerdere agents via één nummer routeren

Als je gesprekken via één Five9-doorverbindingsnummer naar meerdere ElevenLabs-agents wilt routeren, wijs je een **router agent** toe aan het telefoonnummer en laat je Five9 de doelagent in een header sturen, zoals `X-AgentID`.

Inkomende `X-`-headers worden beschikbaar gesteld als [dynamische variabelen](/docs/nl/eleven-agents/customization/personalization/dynamic-variables), dus `X-AgentID` is voor de router agent beschikbaar als `{{sip_agentid}}`. Configureer de router agent met de tool [agentoverdracht](/docs/nl/eleven-agents/customization/tools/system-tools/agent-transfer) en voeg een overdrachtsregel toe voor elke verwachte `X-AgentID`-waarde, gekoppeld aan de agent die het gesprek moet afhandelen.

Zo hoef je niet voor elke agent een apart telefoonnummer in te richten.

## Headers die Five9 naar ElevenLabs stuurt

Five9 kan gespreksmetadata als SIP-headers met `X-` versturen in de INVITE. Headernamen worden genormaliseerd door het voorvoegsel `X-` te verwijderen, om te zetten naar kleine letters, koppeltekens te vervangen door underscores en het voorvoegsel `sip_` toe te voegen.

| Header            | Dynamische variabele    | Beschrijving                                                            |
| ----------------- | ----------------------- | ----------------------------------------------------------------------- |
| `X-CallANI`       | `{{sip_callani}}`       | Het telefoonnummer van de beller.                                       |
| `X-CallDNIS`      | `{{sip_calldnis}}`      | Het gekozen telefoonnummer.                                             |
| `X-CallID`        | `{{sip_callid}}`        | Unieke Five9-gespreks-ID.                                               |
| `X-CallSessionID` | `{{sip_callsessionid}}` | ID voor de huidige sessie.                                              |
| `X-CallCampaign`  | `{{sip_callcampaign}}`  | Naam van de Five9-campagne.                                             |
| `X-AgentID`       | `{{sip_agentid}}`       | Doelagent van ElevenLabs, gebruikt voor routering via een router agent. |

Gebruik deze variabelen in agentprompts, eerste berichten en tools om het gesprek te personaliseren.

> **Note**
>
> De gereserveerde headers `X-Call-ID` en `X-Caller-ID` worden gekoppeld aan de [systeemdynamische variabelen](/docs/nl/eleven-agents/customization/personalization/dynamic-variables#system-dynamic-variables) `system__call_sid` en
> `system__caller_id`.
> Five9 stuurt de headers zonder koppeltekens `X-CallID` en `X-CallANI`, die in plaats daarvan worden genormaliseerd naar `sip_callid` en
> `sip_callani`. Controleer tijdens testgesprekken welke variabelen zijn ingevuld voordat je ernaar verwijst
> in prompts.

## Headers die ElevenLabs naar Five9 terugstuurt

ElevenLabs stuurt routerings- en rapportagegegevens terug via de SIP BYE. De volgende headernamen zijn de aanbevolen conventie voor Five9 AI Agent Connect:

| Header             | Beschrijving                                                          |
| ------------------ | --------------------------------------------------------------------- |
| `X-RouteType`      | De actie die Five9 moet uitvoeren, bijvoorbeeld `SkillTransfer`.      |
| `X-RouteValue`     | Het doel voor de actie, bijvoorbeeld een Five9-skillnaam.             |
| `X-RouteReason`    | Context voor de routeringsbeslissing, zoals de intentie van de klant. |
| `X-ConversationId` | De gespreks-ID van ElevenLabs, voor logcorrelatie.                    |

Je kunt elke aanvullende `X-`-header terugsturen die je Five9-flow nodig heeft. Elke headerwaarde komt van een dynamische variabele van de agent, dus de agent moet deze variabelen tijdens het gesprek instellen.

## BYE-headers configureren

BYE-headers sturen de uiteindelijke waarden van de dynamische variabelen van de agent terug naar Five9. Koppel elke naam van een dynamische variabele aan een headernaam met `attributes_to_headers` in de `inbound_trunk_config` van het telefoonnummer. Zowel variabelen die je agent instelt als [systeemdynamische variabelen](/docs/nl/eleven-agents/customization/personalization/dynamic-variables#system-dynamic-variables) zoals `system__conversation_id` kunnen worden gekoppeld:

**`Python`**

```python title="Python"
import os
from dotenv import load_dotenv
from elevenlabs import ElevenLabs, InboundSipTrunkConfigRequestModel

load_dotenv()

elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))

elevenlabs.conversational_ai.phone_numbers.update(
    phone_number_id="phnum_8901k4t9z5defmb8vh3e9361y7nj",
    inbound_trunk_config=InboundSipTrunkConfigRequestModel(
        attributes_to_headers={
            "route_type": "X-RouteType",
            "route_value": "X-RouteValue",
            "route_reason": "X-RouteReason",
            "system__conversation_id": "X-ConversationId",
        }
    ),
)
```

**`JavaScript`**

```typescript title="JavaScript"
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.phoneNumbers.update("phnum_8901k4t9z5defmb8vh3e9361y7nj", {
  inboundTrunkConfig: {
    attributesToHeaders: {
      route_type: "X-RouteType",
      route_value: "X-RouteValue",
      route_reason: "X-RouteReason",
      system__conversation_id: "X-ConversationId",
    },
  },
});
```

**`cURL`**

```bash title="cURL"
curl -X PATCH "https://api.elevenlabs.io/v1/convai/phone-numbers/phnum_8901k4t9z5defmb8vh3e9361y7nj" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "inbound_trunk_config": {
      "attributes_to_headers": {
        "route_type": "X-RouteType",
        "route_value": "X-RouteValue",
        "route_reason": "X-RouteReason",
        "system__conversation_id": "X-ConversationId"
      }
    }
  }'
```

De headerwaarde is de waarde van de dynamische variabele aan het einde van het gesprek, inclusief waarden die tijdens het gesprek worden ingesteld via agenttools of webhookoverschrijvingen. Een gesprek waarin de agent `route_type` instelt op `SkillTransfer` en `route_value` op `billing_support`, produceert de volgende BYE-headers:

```
X-RouteType: SkillTransfer
X-RouteValue: billing_support
X-RouteReason: Customer needs help with an invoice
X-ConversationId: conv_7401k6a2b8cxyzmn9pq3r5s7t1uv
```

Five9 routeert de beller vervolgens naar de skill `billing_support`.

## Aanbevolen routeringswaarden

Houd waarden van `X-RouteType` eenvoudig en voorspelbaar, zodat de Five9-flow er rechtstreeks op kan vertakken.

| `X-RouteType`     | Voorbeeld van `X-RouteValue` | Beschrijving                                                      |
| ----------------- | ---------------------------- | ----------------------------------------------------------------- |
| `SkillTransfer`   | `billing_support`            | Verbind het gesprek door naar een specifieke Five9-skillwachtrij. |
| `PhoneTransfer`   | `+18005550199`               | Verbind het gesprek door naar een extern telefoonnummer.          |
| `Hangup`          | Leeg                         | Beëindig het gesprek na de AI-interactie.                         |
| `DispositionOnly` | `Resolved`                   | Beëindig het gesprek en leg een specifieke afhandeling vast.      |

## Five9 instellen

Je Five9-implementatieteam zal doorgaans:

1. AI Agent Connect inschakelen voor je Five9-domein.
2. De Five9 IVR-doorverbindingsflow configureren.
3. Het telefoonnummer van ElevenLabs toevoegen als doorverbindingsbestemming.
4. De External Transfer Module configureren.
5. De uitgaande `X-`-headers configureren die naar ElevenLabs worden gestuurd.
6. De inkomende `X-`-headers configureren die door ElevenLabs worden teruggestuurd.
7. De teruggestuurde headers koppelen aan Five9-gespreksvariabelen.
8. De routeringslogica na AI configureren die op die variabelen vertakt.
9. Gesprekken end-to-end testen.

## Problemen oplossen

#### Doorverbonden gesprekken maken geen verbinding

* Controleer of het telefoonnummer van ElevenLabs is geïmporteerd als SIP-trunknummer en een agent toegewezen heeft.
* Controleer of de doorverbindingsbestemming die is geconfigureerd in de Five9 External Transfer Module overeenkomt met het geïmporteerde nummer.
* Controleer of je firewall SIP-signaleringstraffic op het geconfigureerde transport en de poort toestaat en RTP-poorten niet blokkeert.

#### Inkomende headers zijn niet beschikbaar als dynamische variabelen

* Controleer of Five9 de headers met een voorvoegsel `X-` in de INVITE verstuurt.
* Controleer de genormaliseerde variabelenaam. `X-AgentID` wordt `{{sip_agentid}}`, niet `{{X-AgentID}}` of `{{agent_id}}`.
* Bekijk de gespreksgeschiedenis op het tabblad **Phone Call** om te zien welke headers zijn aangekomen.
* Aangepaste headers kunnen de systeemvariabelen `system__call_sid` en `system__caller_id` niet overschrijven.

#### BYE-headers ontbreken of zijn leeg

* Controleer of `attributes_to_headers` is ingesteld in `inbound_trunk_config` voor het telefoonnummer dat het gesprek ontvangt.
* Controleer of de sleutels namen van dynamische variabelen zijn en de waarden headernamen, niet andersom.
* Zorg ervoor dat de agent deze dynamische variabelen daadwerkelijk instelt tijdens het gesprek. Een niet-ingestelde variabele levert geen headerwaarde op.

#### Router agent verbindt door naar de verkeerde agent

* Controleer of Five9 bij elk doorverbonden gesprek `X-AgentID` verstuurt.
* Controleer of elke `X-AgentID`-waarde een overeenkomende overdrachtsregel heeft op de router agent.
* Controleer of de overdrachtsregels van de router agent verwijzen naar `{{sip_agentid}}`.

## Handige links

* [Handleiding voor SIP-trunking](/docs/nl/eleven-agents/phone-numbers/sip-trunking)
* [SIP-referentie](/docs/nl/eleven-agents/phone-numbers/sip-reference)
* [Tool voor agentoverdracht](/docs/nl/eleven-agents/customization/tools/system-tools/agent-transfer)
* [Dynamische variabelen](/docs/nl/eleven-agents/customization/personalization/dynamic-variables)
* [API-referentie voor telefoonnummer bijwerken](/docs/nl/api-reference/phone-numbers/update)