> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voicerix.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Plivo

> Connect Plivo to Voicerix for outbound and inbound voice calls.

## Overview

Plivo is a cloud communications platform with global voice and messaging APIs. Voicerix uses Plivo's XML and WebSocket streaming to power your voice agents.

## Prerequisites

* A [Plivo account](https://www.plivo.com/)
* **Auth ID** and **Auth Token** from your Plivo Console
* A Plivo **Application** with Voice capability — or leave blank and Voicerix will auto-create one
* At least one Plivo phone number

## Configuration

### Step 1: Get Plivo Credentials

1. Log in to your [Plivo Console](https://console.plivo.com/)
2. Find your **Auth ID** and **Auth Token** on the dashboard
3. *(Optional)* Navigate to **Voice** → **Applications**, open the application you'll use with Voicerix, and copy its **Application ID** (a UUID). Skip this if you want Voicerix to auto-create the application.
4. Note the phone numbers you plan to use

### Step 2: Add Configuration in Voicerix

1. In Voicerix, go to **Integrations** and click **Add configuration**
2. Select **Plivo** as your provider
3. Enter your credentials:
   * **Auth ID**
   * **Auth Token**
   * **Application ID** *(optional — leave blank to auto-create)*
4. Click **Save Configuration**
5. Open the saved configuration and add at least one **phone number** in E.164 format (e.g. `+1234567890`)

<Note>
  If Voicerix auto-created the Plivo Application, you still need to link your Plivo numbers to that application in the Plivo Console under **Phone Numbers** → **Your Numbers**. The auto-created application is named `voicerix-<random>` — its Application ID is shown on the saved configuration.
</Note>

### Step 3: Test

1. Go to **Agents**, open a workflow, and click **Test Call**
2. Check the call logs to confirm a successful connection

***

## Inbound Calling Setup

Plivo numbers link to an **Application** — the `answer_url` lives on the application, not the number. When you save an inbound workflow on a phone number in Voicerix, **Voicerix automatically pushes the webhook URL to your Plivo Application's `answer_url`**. If Voicerix auto-created the application, the URL is already set.

### Step 1: Link the Phone Number to Your Plivo Application

1. Go to **Phone Numbers** → **Your Numbers** in the [Plivo Console](https://console.plivo.com/)
2. Open the number you want to use for inbound calls
3. Set its **Application** to the same application whose ID you configured in Voicerix
4. Save

### Step 2: Assign an Inbound Workflow in Voicerix

1. In Voicerix, go to **Integrations** and open your Plivo configuration
2. In the **Phone numbers** section, edit the number that should receive inbound calls
3. Set its **Inbound workflow** to the agent that should answer
4. Save

### Step 3: Verify in Plivo Console

1. Open your Plivo Application in the [Plivo Console](https://console.plivo.com/) under **Voice** → **Applications**
2. Confirm:
   * **Answer URL** is set to: `https://client.voicerix.ai/api/v1/telephony/inbound/run`
   * **Answer Method** is `POST`

<Note>
  Voicerix pushes this URL automatically when you save the inbound workflow. The same URL is shared across every number linked to that application — Voicerix routes each call to the right agent based on the called number's inbound workflow assignment. If the field is empty or shows a different URL, the auto-push failed — usually because the Auth ID/Token or Application ID is incorrect. Paste the URL manually, set the method to `POST`, and save.
</Note>

### Step 4: Test Inbound

1. Call your Plivo number from another phone
2. Verify your voice agent answers and responds
3. Check call logs in both Voicerix and Plivo Console

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Invalid phone number error">
    Ensure phone numbers include the country code in E.164 format: `+1234567890`
  </Accordion>

  <Accordion title="Authentication failed">
    * Verify Auth ID and Auth Token are correct
    * Check for extra spaces in credentials
    * Ensure credentials haven't been regenerated in Plivo Console
  </Accordion>

  <Accordion title="Webhook signature validation failing">
    * Confirm your Auth Token matches exactly
    * Verify the webhook URL matches what Plivo sends
    * Check if you're behind a proxy that modifies requests
  </Accordion>

  <Accordion title="No audio on calls">
    * Verify the WebSocket connection is established
    * Check firewall rules for WebSocket traffic
    * Ensure the audio pipeline is configured correctly
  </Accordion>

  <Accordion title="Inbound calls not answered">
    * Verify the phone number is linked to the same Plivo Application whose ID is configured in Voicerix
    * Confirm the called number has an **Inbound workflow** assigned in Voicerix
    * Confirm Voicerix successfully updated the application's `answer_url` (no warning shown on save)
    * Verify Voicerix is running and responding
  </Accordion>

  <Accordion title="Voice agent doesn't respond to inbound calls">
    * Confirm the phone number has an **Inbound workflow** assigned in Integrations
    * Check webhook signature validation (Auth Token in Voicerix matches Plivo Console)
    * Verify WebSocket connection establishes successfully
    * Review call logs for error messages
  </Accordion>
</AccordionGroup>

## Best Practices

* Test your configuration with a single call before running campaigns
* Monitor Plivo Console for usage and billing
* Use a dedicated Plivo Application for Voicerix so the shared `answer_url` doesn't conflict with other systems
