> 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**
>
> Zanim skorzystasz z tego przewodnika, przeczytaj [przewodnik po trunkingu SIP](/docs/pl/eleven-agents/phone-numbers/sip-trunking), aby dowiedzieć się, jak ElevenLabs obsługuje trunki
> SIP i niestandardowe nagłówki SIP.

## Omówienie

Ten przewodnik wyjaśnia, jak zintegrować ElevenAgents z Five9 Virtual Contact Center (VCC) za pomocą Five9 AI Agent Connect. Five9 przekazuje trwającą rozmowę na numer telefonu ElevenLabs, agent ElevenLabs obsługuje rozmowę, a ElevenLabs zwraca dane routingu lub dyspozycji do Five9, aby przepływ Five9 mógł być kontynuowany.

## Jak działa integracja z Five9

Five9 AI Agent Connect używa zewnętrznego przekierowania przez SIP, a kontekst połączenia jest wymieniany w obu kierunkach przez niestandardowe nagłówki SIP `X-`:

1. **Przekierowanie przychodzące**: moduł Five9 IVR External Transfer Module przekazuje połączenie na numer telefonu ElevenLabs, wysyłając kontekst połączenia jako nagłówki SIP `X-` w INVITE.
2. **Rozmowa**: ElevenLabs odbiera połączenie i kieruje je do właściwego agenta, opcjonalnie przez agenta routera, a następnie prowadzi rozmowę z dzwoniącym.
3. **Ścieżka powrotna**: gdy rozmowa się kończy, ElevenLabs dołącza dane routingu i dyspozycji do SIP BYE jako nagłówki `X-`.
4. **Routing po AI**: Five9 mapuje zwrócone nagłówki na zmienne połączenia i kontynuuje flow, np. przekierowując do konsultanta, kończąc połączenie lub zapisując dyspozycję.

## Wymagania

Przed konfiguracją integracji z Five9 upewnij się, że masz:

1. Aktywną domenę Five9 VCC z włączonym AI Agent Connect.
2. Dostęp administratora do konfiguracji Five9 albo zespół wdrożeniowy Five9, który wprowadzi zmiany.
3. Konto ElevenLabs i [agenta](/docs/pl/eleven-agents/quickstart) do obsługi przekazywanych połączeń.
4. [Numer telefonu trunku SIP](/docs/pl/eleven-agents/phone-numbers/sip-trunking) zaimportowany do ElevenLabs jako cel przekierowań Five9.

> **Note**
>
> AI Agent Connect to płatny dodatek do Five9 VCC i nie jest domyślnie włączony. Przed rozpoczęciem
> integracji skontaktuj się ze swoim opiekunem konta Five9, aby włączyć go dla swojej domeny.

> **Note**
>
> Oba zespoły powinny przed rozpoczęciem konfiguracji uzgodnić numer przekierowania, nazwy nagłówków
> wysyłanych w obu kierunkach, wartości routingu i plan testów.

## Konfiguracja ElevenLabs

#### Zaimportuj numer przekierowania

Postępuj zgodnie z [przewodnikiem po trunkingu SIP](/docs/pl/eleven-agents/phone-numbers/sip-trunking), aby zaimportować numer telefonu, na który Five9 będzie przekazywać połączenia. Niestandardowe nagłówki SIP i nagłówki BYE wymagają numeru telefonu trunku SIP.

Zaimportuj numer w formacie E.164 z kodem kraju `+1` (na przykład `+18005550100`). Five9 wysyła przekierowanie w tym formacie, a niezgodność spowoduje niepowodzenie przekierowania.

#### Przypisz agenta

Jeśli jeden agent obsługuje wszystkie połączenia z Five9, przypisz go bezpośrednio do numeru telefonu w [panelu Numerów telefonów](https://elevenlabs.io/app/agents/phone-numbers).

Jeśli kilku agentów korzysta z jednego numeru przekierowania, przypisz zamiast tego agenta routera i postępuj zgodnie z sekcją [Kierowanie do wielu agentów przez jeden numer](#routing-multiple-agents-through-one-number).

#### Skonfiguruj zwracane nagłówki

Zmapuj zmienne dynamiczne ustawiane przez agenta podczas rozmowy na nazwy nagłówków SIP BYE oczekiwane przez Five9. Zobacz [Konfiguracja nagłówków BYE](#configuring-bye-headers).

#### Wykonaj połączenia testowe

Wykonaj połączenia testowe z Five9 i potwierdź, że nagłówki przychodzące trafiają jako zmienne dynamiczne, a nagłówki BYE są zwracane zgodnie z oczekiwaniami. Wartości nagłówków przychodzących znajdziesz w historii rozmowy na karcie **Phone Call**.

## Kierowanie do wielu agentów przez jeden numer

Aby kierować połączenia do kilku agentów ElevenLabs przez jeden numer przekierowania Five9, przypisz do numeru telefonu **agenta routera** i ustaw, aby Five9 wysyłał docelowego agenta w nagłówku takim jak `X-AgentID`.

Przychodzące nagłówki `X-` są dostępne jako [zmienne dynamiczne](/docs/pl/eleven-agents/customization/personalization/dynamic-variables), więc `X-AgentID` jest dostępny dla agenta routera jako `{{sip_agentid}}`. Skonfiguruj agenta routera za pomocą narzędzia [przekierowania agenta](/docs/pl/eleven-agents/customization/tools/system-tools/agent-transfer) i dodaj regułę przekierowania dla każdej oczekiwanej wartości `X-AgentID`, mapując ją na agenta, który ma odebrać połączenie.

Dzięki temu nie musisz konfigurować osobnego numeru telefonu dla każdego agenta.

## Nagłówki wysyłane z Five9 do ElevenLabs

Five9 może wysyłać metadane połączenia jako nagłówki SIP `X-` w INVITE. Nazwy nagłówków są normalizowane przez usunięcie prefiksu `X-`, zmianę na małe litery, zastąpienie myślników podkreśleniami i dodanie prefiksu `sip_`.

| Nagłówek          | Zmienna dynamiczna      | Opis                                                                |
| ----------------- | ----------------------- | ------------------------------------------------------------------- |
| `X-CallANI`       | `{{sip_callani}}`       | Numer telefonu dzwoniącego.                                         |
| `X-CallDNIS`      | `{{sip_calldnis}}`      | Wybrany numer telefonu.                                             |
| `X-CallID`        | `{{sip_callid}}`        | Unikalny identyfikator połączenia Five9.                            |
| `X-CallSessionID` | `{{sip_callsessionid}}` | Identyfikator bieżącej sesji.                                       |
| `X-CallCampaign`  | `{{sip_callcampaign}}`  | Nazwa kampanii Five9.                                               |
| `X-AgentID`       | `{{sip_agentid}}`       | Docelowy agent ElevenLabs używany do routingu przez agenta routera. |

Używaj tych zmiennych w promptach agenta, pierwszych wiadomościach i narzędziach, aby personalizować rozmowę.

> **Note**
>
> Zarezerwowane nagłówki `X-Call-ID` i `X-Caller-ID` są mapowane na [systemowe zmienne dynamiczne](/docs/pl/eleven-agents/customization/personalization/dynamic-variables#system-dynamic-variables)
> `system__call_sid` i `system__caller_id`.
> Five9 wysyła nagłówki bez myślnika: `X-CallID` i `X-CallANI`, które są normalizowane odpowiednio do `sip_callid` i
> `sip_callani`. Przed użyciem ich w promptach sprawdź podczas połączeń testowych, które zmienne są
> wypełniane.

## Nagłówki zwracane z ElevenLabs do Five9

ElevenLabs zwraca dane routingu i raportowania w SIP BYE. Poniższe nazwy nagłówków to zalecana konwencja dla Five9 AI Agent Connect:

| Nagłówek           | Opis                                                         |
| ------------------ | ------------------------------------------------------------ |
| `X-RouteType`      | Działanie, które powinno wykonać Five9, np. `SkillTransfer`. |
| `X-RouteValue`     | Cel działania, np. nazwa umiejętności Five9.                 |
| `X-RouteReason`    | Kontekst decyzji o routingu, np. intencja klienta.           |
| `X-ConversationId` | Identyfikator rozmowy ElevenLabs do korelacji logów.         |

Możesz zwrócić dowolny dodatkowy nagłówek `X-`, którego potrzebuje twój flow Five9. Wartość każdego nagłówka pochodzi ze zmiennej dynamicznej agenta, więc agent musi ustawić te zmienne podczas rozmowy.

## Konfiguracja nagłówków BYE

Nagłówki BYE zwracają do Five9 końcowe wartości zmiennych dynamicznych agenta. Zmapuj każdą nazwę zmiennej dynamicznej na nazwę nagłówka za pomocą `attributes_to_headers` w `inbound_trunk_config` numeru telefonu. Możesz mapować zarówno zmienne ustawiane przez agenta, jak i [systemowe zmienne dynamiczne](/docs/pl/eleven-agents/customization/personalization/dynamic-variables#system-dynamic-variables), takie jak `system__conversation_id`:

**`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"
      }
    }
  }'
```

Wartość nagłówka to wartość zmiennej dynamicznej na końcu rozmowy, w tym wartości ustawione podczas połączenia przez narzędzia agenta lub nadpisania webhooków. Połączenie, w którym agent ustawia `route_type` na `SkillTransfer`, a `route_value` na `billing_support`, generuje następujące nagłówki BYE:

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

Five9 przekierowuje wtedy dzwoniącego do umiejętności `billing_support`.

## Zalecane wartości routingu

Utrzymuj proste i przewidywalne wartości `X-RouteType`, aby flow Five9 mógł bezpośrednio na ich podstawie tworzyć rozgałęzienia.

| `X-RouteType`     | Przykładowe `X-RouteValue` | Opis                                                            |
| ----------------- | -------------------------- | --------------------------------------------------------------- |
| `SkillTransfer`   | `billing_support`          | Przekieruj połączenie do określonej kolejki umiejętności Five9. |
| `PhoneTransfer`   | `+18005550199`             | Przekieruj połączenie na zewnętrzny numer telefonu.             |
| `Hangup`          | Puste                      | Zakończ połączenie po interakcji z AI.                          |
| `DispositionOnly` | `Resolved`                 | Zakończ połączenie i zapisz konkretną dyspozycję.               |

## Konfiguracja Five9

Twój zespół wdrożeniowy Five9 zwykle:

1. Włącza AI Agent Connect dla domeny Five9.
2. Konfiguruje flow przekierowania Five9 IVR.
3. Dodaje numer telefonu ElevenLabs jako cel przekierowania.
4. Konfiguruje External Transfer Module.
5. Konfiguruje wychodzące nagłówki `X-` wysyłane do ElevenLabs.
6. Konfiguruje przychodzące nagłówki `X-` zwracane przez ElevenLabs.
7. Mapuje zwrócone nagłówki na zmienne połączenia Five9.
8. Konfiguruje logikę routingu po AI, która tworzy rozgałęzienia na podstawie tych zmiennych.
9. Testuje połączenia end-to-end.

## Rozwiązywanie problemów

#### Przekazywane połączenia nie łączą się

* Potwierdź, że numer telefonu ElevenLabs jest zaimportowany jako numer trunku SIP i ma przypisanego agenta.
* Sprawdź, czy cel przekierowania skonfigurowany w Five9 External Transfer Module odpowiada zaimportowanemu numerowi.
* Sprawdź, czy firewall zezwala na ruch sygnalizacyjny SIP na skonfigurowanym transporcie i porcie oraz czy porty RTP nie są blokowane.

#### Nagłówki przychodzące nie są dostępne jako zmienne dynamiczne

* Potwierdź, że Five9 wysyła nagłówki z prefiksem `X-` w INVITE.
* Sprawdź znormalizowaną nazwę zmiennej. `X-AgentID` staje się `{{sip_agentid}}`, a nie `{{X-AgentID}}` ani `{{agent_id}}`.
* Sprawdź historię rozmowy na karcie **Phone Call**, aby zobaczyć, które nagłówki dotarły.
* Niestandardowe nagłówki nie mogą nadpisywać zmiennych systemowych `system__call_sid` i `system__caller_id`.

#### Nagłówki BYE są brakujące lub puste

* Sprawdź, czy `attributes_to_headers` jest ustawione w `inbound_trunk_config` dla numeru telefonu odbierającego połączenie.
* Potwierdź, że klucze są nazwami zmiennych dynamicznych, a wartości nazwami nagłówków, a nie odwrotnie.
* Upewnij się, że agent faktycznie ustawia te zmienne dynamiczne podczas rozmowy. Nieustawiona zmienna nie generuje wartości nagłówka.

#### Agent routera przekierowuje do niewłaściwego agenta

* Potwierdź, że Five9 wysyła `X-AgentID` przy każdym przekazywanym połączeniu.
* Sprawdź, czy każda wartość `X-AgentID` ma pasującą regułę przekierowania u agenta routera.
* Sprawdź, czy reguły przekierowania agenta routera odwołują się do `{{sip_agentid}}`.

## Przydatne linki

* [Przewodnik po trunkingu SIP](/docs/pl/eleven-agents/phone-numbers/sip-trunking)
* [Dokumentacja SIP](/docs/pl/eleven-agents/phone-numbers/sip-reference)
* [Narzędzie przekierowania agenta](/docs/pl/eleven-agents/customization/tools/system-tools/agent-transfer)
* [Zmienne dynamiczne](/docs/pl/eleven-agents/customization/personalization/dynamic-variables)
* [Dokumentacja API aktualizacji numeru telefonu](/docs/pl/api-reference/phone-numbers/update)