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

# Integracja z Exotel

## Omówienie

Ten przewodnik wyjaśnia, jak połączyć numery telefoniczne Exotel bezpośrednio z ElevenAgents. Ta integracja pozwala korzystać z obecnych numerów i infrastruktury Exotel oraz zaawansowanych funkcji głosu AI ElevenLabs — zarówno dla połączeń przychodzących, jak i wychodzących.

## Jak działa integracja

Integracja z Exotel korzysta z dwóch usług Exotel:

1. **Aplet Voicebot (media przychodzące i wychodzące)**: Aplet ExoML w Exotel, który otwiera WebSocket do ElevenLabs i przesyła dźwięk rozmowy w obu kierunkach.
2. **Connect API (wybieranie połączeń wychodzących)**: W przypadku połączeń wychodzących ElevenLabs wywołuje endpoint `Calls/connect.json` Exotel, używając twojego API Key i API Token. Exotel wybiera numer docelowy, a po odebraniu połączenia kieruje dźwięk przez ten sam aplet Voicebot do ElevenLabs.

W przypadku połączeń **przychodzących** Exotel kieruje je do apletu Voicebot przypisanego do numeru telefonu, który otwiera WebSocket do ElevenLabs.

W przypadku połączeń **wychodzących** ElevenLabs inicjuje połączenie przez Connect API, a Exotel przekazuje je z powrotem przez aplet Voicebot.

## Wymagania

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

1. Aktywne [konto Exotel](https://exotel.com/) z co najmniej jednym aktywowanym numerem telefonu.
2. Dostęp administratora do panelu Exotel na [my.exotel.com](https://my.exotel.com) (Singapur) lub [my.exotel.in](https://my.exotel.in) (Mumbaj).
3. Konto ElevenLabs oraz [agenta](/docs/pl/eleven-agents/quickstart), do którego chcesz przypisać numer telefonu.

> **Note**
>
> Exotel jest obecnie obsługiwany w klastrach **Singapore** (`api.exotel.com`) i **Mumbai**
> (`api.in.exotel.com`). Wybierz klaster, w którym utworzono twoje konto Exotel. Użycie
> złego regionu spowoduje błędy uwierzytelniania.

## Włączanie Voicebot na koncie Exotel

Najpierw skontaktuj się z **pomocą Exotel** i poproś o:

1. **Włączenie apletu Voicebot** na twoim koncie. Domyślnie jest niedostępny i nie pojawi się w App Bazaar, dopóki nie zostanie włączony dla twojego konta.
2. **Przydzielenie potrzebnej liczby kanałów (równoczesnych połączeń)**. To limit jednoczesnych połączeń Voicebot, na które Exotel pozwoli na twoim koncie. Dopasuj go do przewidywanego szczytowego ruchu.

> **Warning**
>
> Ten krok zwykle zajmuje od 1 do 2 dni roboczych. Zacznij go przed resztą konfiguracji.

## Endpoint WebSocket ElevenLabs

Skonfigurujesz aplet Voicebot w Exotel tak, aby przesyłał dźwięk na poniższy adres WebSocket.

| Środowisko                    | Adres WebSocket                                                      |
| ----------------------------- | -------------------------------------------------------------------- |
| Domyślne (USA/międzynarodowe) | `wss://api.elevenlabs.io/v1/convai/conversation/exotel`              |
| Rezydencja danych UE          | `wss://api.eu.residency.elevenlabs.io/v1/convai/conversation/exotel` |
| Rezydencja danych w Indiach   | `wss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel` |

> **Info**
>
> Jeśli twoje konto ElevenLabs korzysta z izolowanego środowiska rezydencji danych (UE lub Indie), musisz użyć
> odpowiedniego adresu rezydencji. Dowiedz się więcej o [rezydencji danych](/docs/pl/overview/administration/data-residency).

## Konfiguracja w Exotel

#### Zbierz dane logowania Exotel

W panelu Exotel otwórz menu **Monitor** po lewej stronie i kliknij **Developer**. Otworzy się strona z danymi API, gdzie znajdziesz Account SID, API Key i API Token.

![Pasek boczny Exotel: Developer](/docs/_fern-img/ebe936f8cd0d1773a88bb4922a7642cf8c2f844f39eb4ee9ee04eab50ecfa6c4.webp)

Potrzebujesz czterech wartości:

* **Account SID**: SID twojego konta Exotel.
* **API Key**: Część nazwy użytkownika w danych API Exotel.
* **API Token**: Część hasła w danych API Exotel. Zachowaj go w tajemnicy.
* **Region (subdomena API)**: Klaster, w którym znajduje się twoje konto Exotel. To `api.exotel.com` (Singapur) lub `api.in.exotel.com` (Mumbaj). Możesz to potwierdzić, sprawdzając host dowolnego adresu API na stronie Developer.

ElevenLabs używa API Key i API Token do HTTP Basic Auth podczas wywoływania Connect API Exotel dla połączeń wychodzących.

#### Utwórz aplet Voicebot w App Bazaar

1. W panelu Exotel otwórz menu **Manage** po lewej stronie i kliknij **App Bazaar**.

   ![Pasek boczny Exotel: App Bazaar](/docs/_fern-img/1e50c6687044e4fea1e6e636bc2db8a4a481c87eb44cdfc8019cff20bd1fe363.webp)

2. Kliknij **Create / Add New Flow**, nadaj aplikacji opisową nazwę (np. `ElevenLabs`), a potem kliknij **OK**.

   ![Exotel: okno dialogowe Add New Flow](/docs/_fern-img/928f17d1351f93e7a9bd60d92498dde8b24d350686cf273be146e9d315927704.webp)

3. Z palety apletów po prawej przeciągnij aplet **Voicebot** na kanwę **Call Start**.

   ![Paleta apletów Exotel z wyróżnionym
   Voicebot](/docs/_fern-img/d19a0e66925d5931cd8f9eae7a1264b8a0e259d07736564cab4e1e894401c508.webp)

4. Otwórz konfigurację apletu Voicebot i wklej adres WebSocket ElevenLabs dla swojej rezydencji danych w pole **URL** (pole „Which bot you want to connect the enduser?”):

   ```
   wss://api.elevenlabs.io/v1/convai/conversation/exotel
   ```

   > **Info**
   >
   > Jeśli twoje konto ElevenLabs korzysta z rezydencji danych w UE lub Indiach, zamiast domyślnego
   > `api.elevenlabs.io` użyj odpowiedniego adresu z tabeli powyżej (np. `wss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel`).

   Pozostałe opcje Voicebot („Record this?”, „Recording Channels”, „Recording Format”, „Encrypt DTMF”) mogą pozostać domyślne, chyba że masz konkretne wymagania dotyczące nagrywania lub zgodności.

   ![Aplet Voicebot skonfigurowany z adresem WebSocket
   ElevenLabs](/docs/_fern-img/bb375863bb02b0908786403c080280f4561f21d887fb490050d54ff4ec211794.webp)

5. **(Opcjonalnie) Dodaj aplet Connect do przekazywania rozmów do człowieka.** Pomiń ten krok, jeśli agent nie ma przekazywać rozmów do człowieka. Jeśli chcesz używać narzędzia agenta **Transfer to number**, musisz dodać aplet **Connect** bezpośrednio po aplecie Voicebot w flow.

   Z palety **Voice Applets** po prawej przeciągnij aplet **Connect** do pola **Next → Continue to the next applet** w aplecie Voicebot.

   ![Paleta Voice Applets z wyróżnionym
   Connect](/docs/_fern-img/1c325fc4ae992db551209b667519ffd75161b6a97ebf71ed6b751bbf26339faf.webp)

   W konfiguracji apletu Connect wybierz **Configure parameters dynamically by providing a URL** i wklej endpoint apletu Connect ElevenLabs dla swojej rezydencji danych w pole **Primary URL**:

   ```
   https://api.elevenlabs.io/v1/convai/exotel/connect-applet
   ```

   ![Aplet Connect skonfigurowany z dynamicznym adresem
   ElevenLabs](/docs/_fern-img/7ed4516ec33ea62830d9279a266ada20311741d0489fe2661dc528b8dbcbe126.webp)

   Odpowiednie adresy rezydencji danych to:

   | Środowisko                    | Adres apletu Connect                                                     |
   | ----------------------------- | ------------------------------------------------------------------------ |
   | Domyślne (USA/międzynarodowe) | `https://api.elevenlabs.io/v1/convai/exotel/connect-applet`              |
   | Rezydencja danych UE          | `https://api.eu.residency.elevenlabs.io/v1/convai/exotel/connect-applet` |
   | Rezydencja danych w Indiach   | `https://api.in.residency.elevenlabs.io/v1/convai/exotel/connect-applet` |

   > **Info**
   >
   > Gdy agent wywoła narzędzie **Transfer to number**, ElevenLabs przekaże kontrolę z powrotem do Exotel,
   > a Exotel pobierze ten adres, aby uzyskać docelowy numer do wybrania. Zostaw puste pole **Fallback URL**
   > i zachowaj wszystkie pozostałe ustawienia domyślne.

6. Zapisz i opublikuj aplet.

7. Zanotuj **Applet ID** (czasem nazywany **App ID**). Znajdziesz go w adresie URL edytora ExoML (np. `.../exoml/start_voice/12345`) lub na liście aplikacji. Będzie potrzebny podczas importowania numeru do ElevenLabs.

> **Note**
>
> Aplet Voicebot obsługuje zarówno połączenia przychodzące, jak i wychodzące. Potrzebujesz tylko jednego apletu na
> konto. Wszystkie numery telefonów importowane do ElevenLabs mogą go współdzielić.

#### Przypisz flow do numeru telefonu (tylko połączenia przychodzące)

Zapisz i opublikuj flow ExoML z poprzedniego kroku. Następnie skieruj do niego numer telefonu Exotel, aby połączenia przychodzące trafiały do apletu Voicebot.

1. W panelu Exotel otwórz menu **Manage** po lewej stronie i kliknij **ExoPhones** (tuż pod **App Bazaar**).

   ![Pasek boczny Exotel: ExoPhones](/docs/_fern-img/30351173b2c2cfaa2ccd8d9e29e6aaba319ac3b5f2ee51d91a4f7913d3e218a4.webp)

2. Jeśli nie masz jeszcze numeru telefonu, kliknij **Buy a number** i kup numer w kraju lub regionie, którego potrzebujesz, zanim przejdziesz dalej.

3. Znajdź numer, którego chcesz używać z agentem ElevenLabs. W kolumnie **Installed App** otwórz listę i wybierz flow utworzony w poprzednim kroku (np. **ElevenLabs**).

   ![ExoPhones: przypisz Installed App do numeru
   telefonu](/docs/_fern-img/5ed6b42794bb00f330dd52d50a5831622e3156955d59adb1ca64b746d1ec7d2b.webp)

4. Zapisz konfigurację. Połączenia przychodzące na ten numer będą teraz kierowane prosto do apletu Voicebot i przesyłane do ElevenLabs.

> **Note**
>
> Jeśli numer będzie używany tylko do połączeń wychodzących, możesz pominąć ten krok. Połączenia wychodzące są
> wybierane przez Connect API z ElevenLabs i nie zależą od przypisania **Installed App**.

## Konfiguracja w ElevenLabs

#### Zaimportuj numer telefonu Exotel

W panelu ElevenAgents przejdź do zakładki [**Phone Numbers**](https://elevenlabs.io/app/agents/phone-numbers). Kliknij **+ Import number** i wybierz z listy **From Exotel**.

![ElevenAgents: lista Import number z wybraną opcją From Exotel
](/docs/_fern-img/2a62cf9f6b63914c5688da5f58515168fa1ff39b8602f70fea7a1ff257bb6918.webp)

Wypełnij następujące pola:

* **Label**: Opisowa nazwa (np. `Support Line`).
* **Phone number**: Numer Exotel w formacie E.164 (np. `+918048961234`).
* **Exotel Account SID**: Z kroku 1 powyżej.
* **Exotel API Key**: Z kroku 1 powyżej.
* **Exotel API Token**: Z kroku 1 powyżej (przechowywany jako sekret workspace).
* **Region**: Wybierz `Singapore (api.exotel.com)` lub `Mumbai (api.in.exotel.com)`, zgodnie z klastrem Exotel.
* **Voicebot Applet ID**: App ID z kroku 2 powyżej.

Kliknij **Import**, aby zapisać numer. ElevenLabs sprawdzi dane logowania w Exotel i zapisze token API jako sekret workspace.

#### Przypisz agenta

Po zaimportowaniu numeru otwórz go na liście **Phone Numbers** i wybierz agenta, który ma obsługiwać połączenia przychodzące, z listy **Assigned agent**.

> **Note**
>
> Połączenia przychodzące wymagają przypisania apletu Voicebot do numeru po stronie Exotel (zobacz
> poprzednią sekcję). Konfiguracje tylko dla połączeń wychodzących nie wymagają przypisania dla połączeń przychodzących.

#### Przetestuj połączenie przychodzące

Zadzwoń na numer Exotel z dowolnego telefonu. Exotel skieruje połączenie do apletu Voicebot, który otworzy WebSocket do ElevenLabs. Agent odbierze i rozpocznie rozmowę.

> **Tip**
>
> Monitoruj połączenie w [panelu historii połączeń](https://elevenlabs.io/app/agents/history), aby
> sprawdzić, czy wszystko działa zgodnie z oczekiwaniami.

## Wykonywanie połączeń wychodzących

Zaimportowane numery Exotel mogą też inicjować połączenia wychodzące. Agent wybiera numer telefonu i rozpoczyna rozmowę, gdy odbiorca odbierze.

#### Zainicjuj połączenie wychodzące

W zakładce [**Phone Numbers**](https://elevenlabs.io/app/agents/phone-numbers) znajdź numer Exotel i kliknij przycisk **Outbound call**.

#### Skonfiguruj połączenie

W oknie Outbound Call:

1. Wybierz agenta, który będzie prowadzić rozmowę.
2. Wpisz numer telefonu odbiorcy w formacie E.164.
3. Kliknij **Send Test Call**, aby rozpocząć połączenie.

ElevenLabs wywołuje Connect API Exotel, używając zapisanych danych logowania. Exotel wybiera numer odbiorcy i kieruje dźwięk z powrotem przez aplet Voicebot po odebraniu połączenia.

> **Note**
>
> Przy połączeniach wychodzących twój agent inicjuje rozmowę, więc upewnij się, że ma skonfigurowaną
> odpowiednią pierwszą wiadomość.

Aby wywoływać połączenia wychodzące programowo zamiast z panelu, użyj endpointu [Outbound call via Exotel](/docs/pl/api-reference/exotel/outbound-call). Dokumentacja API zawiera schemat żądania i gotowe do użycia fragmenty SDK.

## Wymagania konfiguracji agenta

Aplet Voicebot przesyła dźwięk w formacie **8 kHz PCM**. Platforma ElevenLabs automatycznie obsługuje konwersję formatu audio. **Nie** musisz zmieniać ustawień TTS ani wejściowego audio agenta.

## Formaty numerów telefonów

Numery telefonów są przechowywane w formacie E.164 (np. `+918048961234`). Importując indyjski numer Exotel, który lokalnie można zapisać jako `08048961234` lub `8048961234`, wpisz `+918048961234`. ElevenLabs odrzuci duplikaty tego samego numeru importowane w różnych formatach.

## Przekazywanie rozmów

Możesz przekazywać rozmowy od agenta z powrotem do Exotel, konfigurując u agenta narzędzie **Transfer to number**. Gdy narzędzie zostanie uruchomione, ElevenLabs zakończy połączenie Voicebot, a Exotel pobierze numer docelowy z dynamicznego adresu połączonego apletu **Connect**, a następnie wybierze ten numer.

Aby to działało, potrzebujesz **obu** elementów:

1. Opcjonalnego apletu **Connect** skonfigurowanego bezpośrednio po aplecie Voicebot w flow ExoML (zobacz krok 5 w [Konfiguracji w Exotel](#setup-on-exotel)).
2. Narzędzia **Transfer to number** skonfigurowanego u agenta. Zobacz [przewodnik po przekazywaniu rozmów przez agenta](/docs/pl/eleven-agents/customization/tools/system-tools/transfer-to-number).

Bez apletu Connect w flow próby przekazania rozmowy przez agenta zakończą się niepowodzeniem, ponieważ Exotel nie będzie miał dokąd skierować połączenia po zakończeniu Voicebot.

## Rozwiązywanie problemów

#### Błąd \`exotel_connect_failed\` podczas rozpoczynania połączenia wychodzącego

ElevenLabs otrzymało odpowiedź inną niż 200 z Connect API Exotel. Najczęstsze przyczyny to:

* Nieprawidłowy **Region**. Upewnij się, że region wybrany podczas importu odpowiada klastrowi Exotel, w którym znajduje się twoje konto (`Singapore` lub `Mumbai`).
* Nieprawidłowy **API Key** lub **API Token**. Sprawdź ponownie dane na stronie **API Settings** Exotel i zaimportuj numer ponownie z poprawnymi wartościami.
* **Account SID** nie pasuje do pary API Key / Token.
* Numer docelowy nie jest w formacie E.164.

#### Połączenia przychodzące nie trafiają do mojego agenta

* Sprawdź, czy pole **URL** apletu Voicebot dokładnie odpowiada endpointowi WebSocket ElevenLabs dla twojej rezydencji danych (w tym `wss://`).
* Sprawdź, czy **numer telefonu** Exotel jest skierowany do aplikacji ExoML zawierającej aplet Voicebot (panel Exotel, ExoPhones, numer, Installed App).
* W ElevenLabs sprawdź, czy numer telefonu ma przypisanego agenta w zakładce **Phone Numbers**.

#### Błędy niezgodności \`Applet ID\` podczas importowania

Pole **Voicebot Applet ID** oczekuje numerycznego App ID z adresu URL edytora ExoML (np. dla `.../exoml/start_voice/12345` ID to `12345`). Nie wklejaj pełnego adresu URL. Użyj tylko ID.

#### Numer telefonu zaimportowany dwukrotnie w różnych formatach

ElevenLabs normalizuje numery Exotel do E.164 przed zapisaniem i wymusza unikalność dla `(provider, phone_number)`. Jeśli wcześniej zaimportowałeś ten sam numer w formacie innym niż E.164, najpierw usuń stary wpis, a potem zaimportuj go ponownie w formacie E.164.

## Przydatne linki

* [Dokumentacja API połączeń wychodzących przez Exotel](/docs/pl/api-reference/exotel/outbound-call)
* [Dokumentacja API Exotel](https://developer.exotel.com/api/)
* [Dokumentacja apletu Exotel Voicebot](https://support.exotel.com/support/solutions/articles/3000099826)
* [Panel numerów telefonów ElevenAgents](https://elevenlabs.io/app/agents/phone-numbers)