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

# Plivo

> Configure Plivo for voice communication in SentiVue Talk

## Overview

Plivo is a cloud communications platform that provides global voice and messaging APIs. SentiVue Talk's Plivo integration uses Plivo's XML and WebSocket streaming to power your workflows.

## Prerequisites

Before setting up Plivo integration, you'll need:

* A [Plivo account](https://www.plivo.com/)
* Auth ID and Auth Token from your Plivo Console
* A Plivo **Application** with Voice capability (optional — leave the field blank in SentiVue Talk and we'll auto-create one for you on save, with the `answer_url` pre-set)
* At least one Plivo phone number
* A SentiVue Talk account

## 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** and create (or open) the application you'll use with SentiVue Talk, then copy its **Application ID** (a UUID). Skip this if you want SentiVue Talk to auto-create the application for you on save.
4. Navigate to **Phone Numbers** → **Your Numbers** and copy the numbers you plan to use

### Step 2: Configure in SentiVue Talk

1. Navigate to **/telephony-configurations** and click **Add configuration**
2. Select **Plivo** as your provider
3. Enter your credentials:
   * Auth ID
   * Auth Token
   * Application ID — *optional*. Leave blank and SentiVue Talk will auto-create a Plivo Application on save (with the `answer_url` already configured) and store its Application ID on this configuration.
4. Click **Save Configuration**
5. Open the configuration you just created and add at least one **phone number** (with country code in E.164 format, e.g. `+1234567890`). The default caller ID is used for outbound calls.

   <Note>
     If SentiVue Talk auto-created the Plivo Application for you, 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 `sentivue-<random>` — its Application ID is shown on the saved configuration.
   </Note>

### Step 3: Test Your Configuration

1. Create a test workflow
2. Click "Call" to verify connection
3. Check call logs for successful connection

## Inbound Calling Setup

Plivo numbers don't carry an `answer_url` directly — the URL lives on a Plivo **Application**, and each number is linked to one application. **When you save an inbound workflow on a phone number, SentiVue Talk automatically pushes the webhook URL to your Plivo Application's `answer_url`** (provided the credentials are correct). You don't need to set the webhook by hand. If SentiVue Talk auto-created the application during configuration save, the `answer_url` is already set and this push is a no-op.

### 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 SentiVue Talk
4. Save

### Step 2: Assign an Inbound Workflow to the Phone Number in SentiVue Talk

1. Go to **/telephony-configurations** 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 the Answer URL on the Plivo Application

1. Open your Plivo Application in the [Plivo Console](https://console.plivo.com/) under **Voice** → **Applications**
2. Confirm:

   * **Answer URL** is set to: `https://app.sentivue.com/talk/api/v1/telephony/inbound/run`
   * **Answer Method** is `POST`

   SentiVue Talk sets this automatically when you save the inbound workflow.

   Every number linked to the application shares this one URL. Calls still reach the right agent, matched on the number they came in on.

   If the field is empty or shows something else, the auto-push failed — usually a wrong Auth ID/Token or Application ID. Paste the URL in yourself, set the method to `POST`, and save the application.

### Step 4: Verify Setup

* Confirm the number appears in your Plivo configuration under **/telephony-configurations**, in E.164 format, and matches the number in Plivo Console exactly
* Confirm the number has an **Inbound workflow** assigned

### Test Inbound Calling

1. Call your configured Plivo phone number from another phone
2. Verify your SentiVue Talk workflow answers and responds
3. Check call logs in both SentiVue Talk dashboard and Plivo Console

## Call handling setup

Plivo numbers use the **Standard** setup: calls reach your agent through Plivo's answer webhook. This supports inbound calls, outbound calls, and cold transfer.

Warm transfer and live translation need the **Advanced** setup, which is currently available on Twilio only. Support for Plivo is in progress.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Invalid phone number error">
    Ensure phone numbers include 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 the Auth Token in your SentiVue Talk configuration matches the one
      in Plivo Console exactly - Verify the application's Answer URL in Plivo Console is
      `https://app.sentivue.com/talk/api/v1/telephony/inbound/run` with no extra query
      parameters or trailing characters
  </Accordion>

  <Accordion title="No audio on calls">
    Review the call in your SentiVue Talk dashboard and in Plivo Console under
    **Voice** → **Logs** for errors on that call.
  </Accordion>

  <Accordion title="Inbound calls go to voicemail or aren't answered">
    * Verify the phone number is linked to the same Plivo Application whose
      ID you configured in SentiVue Talk - Confirm the called number exists in your SentiVue Talk telephony configuration and has an **Inbound workflow** assigned
    * After assigning the inbound workflow, confirm SentiVue Talk successfully
      updated the application's `answer_url` (no warning shown on save) - Confirm the application's **Answer URL** in Plivo Console is `https://app.sentivue.com/talk/api/v1/telephony/inbound/run` with the method `POST` - Check the call in Plivo Console under **Voice** → **Logs** to see the response the webhook returned
  </Accordion>

  <Accordion title="Voice agent doesn't respond to inbound calls">
    * Confirm the phone number has an **Inbound workflow** assigned in
      /telephony-configurations - Check webhook signature validation is working (Auth Token in SentiVue Talk matches Plivo Console) - Review call logs in your SentiVue Talk dashboard for error messages - Check the response the webhook returned in Plivo Console under **Voice** → **Logs**
  </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 SentiVue Talk so the shared `answer_url` doesn't conflict with other systems
