# Configure AI Call Transcription with ElevenLabs Service

Cloud Voice can transcribe the audio of a two-party call into readable text in real time using the ElevenLabs Speech to Text service. This page walks you through pointing the phone system at ElevenLabs and, if you want automatic post-call summaries, at a GPT or Gemini large language model (LLM) as well.

:::tip
If you have already set up AI Voicemail Transcription against ElevenLabs Speech to Text, turn on **Call Transcription** and click **Copy Settings from Voicemail Transcription** to bring that configuration across. From there you only need to adjust whatever differs.

![The Copy Settings from Voicemail Transcription control in the AI Toolbox](/images/pbx/copy-ai-voicemail-settings.png)
:::

## Requirements

Your phone system must meet the following before you begin.

| Item | Requirement |
|------|-------------|
| Firmware | **84.23.0.83** or later. |
| Subscription | An **Enterprise Plan** or **Ultimate Plan** subscription, so the **AI Transcription** feature is available. |

## Before you begin

:::note
The GPT / Gemini LLM prerequisites below only apply if you want the phone system to automatically generate a call summary from the transcribed text once a call ends. Skip them if you only need the transcript.
:::

**Network access**

The phone system needs to reach the domains for the services you plan to use. You can confirm a domain is reachable from **Maintenance > Troubleshooting > IP Ping**.

| Service | Domain |
|---------|--------|
| ElevenLabs Speech to Text | `api.elevenlabs.io` |
| GPT LLM | `api.openai.com` |
| Gemini LLM | `oauth2.googleapis.com` and `generativelanguage.googleapis.com` |

:::caution
If a firewall or upstream network blocks any of these domains, the matching connection status in Step 3 will not reach **Enable**, and transcription (or LLM summaries) will not work. Confirm each domain you need is reachable before you continue.
:::

**Service accounts**

Have the relevant third-party accounts and their sign-in credentials ready.

| Service | Account |
|---------|---------|
| ElevenLabs Speech to Text | An ElevenLabs account with enough transcription-minute quota, plus its username and password. |
| GPT / Gemini LLM | An OpenAI account (for GPT) or a Google account (for Gemini) with enough token quota, plus its username and password. |

## Step 1. Create an ElevenLabs API key

The phone system authenticates to the ElevenLabs Speech to Text service with an API (application programming interface) key, so generate one on the ElevenLabs platform first.

:::caution
An API key is a secret credential tied to a billable account, so treat it like a password: store it somewhere secure and never share it or post it publicly. Copy each key the moment it is generated, because some provider portals show the full key only once and you would have to create a new one if you lose it. This applies to every key you create in Step 1 and Step 2.
:::

1. Sign in to the [ElevenLabs Platform](https://elevenlabs.io/app/home) with your ElevenLabs username and password, then open **Developers > API Keys**.

   ![The API Keys page on the ElevenLabs platform](/images/pbx/elevenlabs-api-key-list.png)

2. At the top right of the key list, click **Create Key**.
3. Fill in the new key in the right sidebar.

   
   ![Cloud Voice, creating an API key in the ElevenLabs sidebar](/images/pbx/elevenlabs-create-api-key-list.png)

   a. In **Name**, enter something that identifies the key.

   b. Under **Endpoints**, click **Access** next to **Speech to text**.

   c. Under **Administration** (scroll down to find it), click **Access** next to **Models**.

   d. Click **Create Key** at the bottom right. The generated key appears in a pop-up window.

      ![The generated ElevenLabs API key shown in a pop-up](/images/pbx/elevenlabs-auto-generated-api-key.png)

   e. Click **Copy to Clipboard** and save the key somewhere safe for later.

## Step 2. (Optional) Create a GPT or Gemini API key

To have Cloud Voice call a GPT or Gemini LLM and produce a summary from each transcript after a call ends, create an API key for that provider so the requests can be authenticated. Follow the section that matches your LLM.

### OpenAI (GPT)

1. Sign in to the [OpenAI Platform](https://platform.openai.com/) with your OpenAI username and password, then open **API Keys**.
2. At the top right of the key list, click **Create new secret key**.
3. Fill in the new key in the pop-up window.

   
   ![Cloud Voice, creating a secret key on the OpenAI platform](/images/pbx/openai-api-key.png)

   a. In **Name**, enter something that identifies the key.

   b. In the **Project** drop-down list, choose the project you want.

   c. Leave the permission set to the default **All**, then click **Create secret key**. The generated key appears in a pop-up window.

      ![The generated OpenAI secret key shown in a pop-up](/images/pbx/openai-api-key-detail.png)

   d. Click **Copy** and save the key for later.

### Google (Gemini)

1. Sign in to [Google AI Studio](https://aistudio.google.com/) with your Google username and password, then open **Dashboard > API keys**.
2. At the top right of the key list, click **Create API key**.
3. Fill in the new key in the pop-up window.

   
   ![Cloud Voice, creating a Gemini API key in Google AI Studio](/images/pbx/google-gemini-api-key.png)

   a. In **Name your key**, enter something that identifies the key.

   b. In the **Choose an imported project** drop-down list, select the project you want.

      :::note
      From this list you can pick an existing project, import one, or create a new project as needed.
      :::

   c. Click **Create key**. The details of the generated key appear in a pop-up window.

      
      ![Cloud Voice, the generated Gemini API key shown in a pop-up](/images/pbx/google-gemini-api-key-detail.png)

   d. Click **Copy key** and save the key for later.

## Step 3. Configure call transcription on the phone system

With your ElevenLabs (and optional LLM) credentials in hand, enter them on the phone system to link it to the services.

1. Sign in to the phone system web portal and open **AI > AI Toolbox**.
2. Turn on the **Call Transcription** switch.
3. Set up the transcription service.

   ![Call transcription settings using ElevenLabs in the AI Toolbox](/images/pbx/configure-global-ai-call-transcription-with-elevenlabs.png)

   a. In the **Service Type** drop-down list, select **Custom Service**.

   b. In the **Transcription Service Provider** drop-down list, select **Elevenlabs**.

   c. In the **API key** field, paste the key you created on the ElevenLabs platform.

   d. Set up the LLM service using whichever of the following applies:

   - **No summaries**: In the **LLM Provider** drop-down list, select **Disable**.
   - **GPT**: Complete these settings:

     ![OpenAI LLM configuration fields](/images/pbx/openai-llm-configuration.png)

   1. In the **LLM Provider** drop-down list, select **OpenAI**.
   2. In the **API key** field, paste the key you created on the OpenAI platform.
   3. In the **GPT Model** field, enter the model ID of the GPT model you want.

        :::note
        Check the [list of GPT models](https://developers.openai.com/api/docs/models) for the ID you need. For example, to use **GPT-5.4**, enter `gpt-5.4`.
        :::
   - **Gemini**: Complete these settings:

     ![Google Gemini LLM configuration fields](/images/pbx/google-llm-configuration.png)

   1. In the **LLM Provider** drop-down list, select **Google**.
   2. In the **API key** field, paste the key you created in Google AI Studio.
   3. In the **Gemini Model** field, enter the model code of the Gemini model you want.

        :::note
        Check the [list of Gemini models](https://ai.google.dev/gemini-api/docs/models) and open a model's page to find its code. For example, to use **Gemini 3.1 Pro Preview**, enter `gemini-3.1-pro-preview`.
        :::

4. In the **Language** drop-down list, choose the language to detect and transcribe from call audio.

   :::note
   Choose **Auto Detection** and each audio segment of a mixed-language call is transcribed in its own language.
   :::

5. Under **Extension Scope for This Feature**, decide which extensions, extension groups, or departments can use call transcription:
   - **All Extensions**: Everyone can use the feature.
   - **Specific Extensions**: Only the extensions you select can use it.
6. Click **Save**.

## Result

- **Transcription Connection Status** shows **Enable**, confirming that AI call transcription via ElevenLabs Speech to Text is live. Call audio is now detected and transcribed into text in your chosen language as calls happen.

  ![Transcription Connection Status showing Enable for ElevenLabs](/images/pbx/transcription-connection-status-elevenLabs.png)

  :::note
  You can set the transcription language and mode (automatic or manual) per extension from **Extension and Trunk > Extension > AI > Call Transcription**. See [Configure AI Call Transcription for an Extension](/pbx/ai-guide/configure-ai-call-transcription-for-an-extension/) for details.
  :::

- **LLM Connection Status** shows **Enable**, confirming that the phone system is connected to your chosen LLM. It will now generate a summary from each transcript automatically after a call ends.

  ![LLM Connection Status showing Enable](/images/pbx/llm-connection-status.png)
