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

# Outbound Calls

Phone Campaigns allow you to send automated outbound calls to a list of contacts using a configured VIVI voice agent. Whether you're running appointment reminders, lead follow-ups, or customer surveys, Phone Campaigns give you full control over who gets called, what gets said, and when calls go out.

***

## Campaigns List

The **Campaigns** tab shows all outbound call campaigns in a searchable, paginated table. Click **+ Add New Campaign** to create one or use the main screen to view existing Campaigns.

<AccordionGroup>
  <Accordion title="Campaign table columns">
    | Column           | Description                                                                       |
    | ---------------- | --------------------------------------------------------------------------------- |
    | **Name**         | The campaign's display name.                                                      |
    | **Status**       | Current state: `Completed`, `Running`, `Scheduled`, `Paused`, or `Cancelled`.     |
    | **Progress**     | Calls completed out of total contacts (e.g., `1/1`).                              |
    | **Created At**   | Date and time the campaign was created.                                           |
    | **Scheduled At** | Scheduled start time, if applicable. Displays `-` for campaigns sent immediately. |
    | **Actions**      | Click the`⋯` to View, Cancel, or Delete a campaign                                |
  </Accordion>
</AccordionGroup>

***

## Campaign Detail

Click any campaign row to open its **Campaign Detail** page which contains a full breakdown of per-contact results.

The top of the page shows **Channel**, **Agent**, **Total Contacts**, and the **Prompt** used. A progress bar tracks completion (e.g., `1 / 1`).

### Outcome Stats

Five stat cards show a count and percentage breakdown of all call attempts:

<CardGroup cols={5}>
  <Card title="Answered" color="#22c55e" icon="circle-check" iconType="regular">
    Picked up by a live contact.
  </Card>

  <Card title="No Answer" color="#f59e0b" icon="phone-missed" iconType="regular">
    Contact did not pick up.
  </Card>

  <Card title="Busy" color="#f97316" icon="phone-xmark" iconType="regular">
    Call returned a busy signal.
  </Card>

  <Card title="Voicemail" color="#6366f1" icon="voicemail" iconType="regular">
    Call reached a voicemail inbox.
  </Card>

  <Card title="Failed" color="#ef4444" icon="circle-xmark" iconType="regular">
    Call failed due to a technical error.
  </Card>
</CardGroup>

### Call Results Table

Use **Search by phone number** to find a specific contact, or the **All outcomes** dropdown to filter by result. The table shows **Name**, **Phone Number**, **Outcome**, **Duration**, **End Time**, and **Retries** for every contact dialed. Use **Rows per page** (default `50`) and **Previous / Next** to paginate.

***

## Suppression Lists

The **Suppression Lists** tab manages phone numbers that should never be called — such as opted-out contacts or DNC entries. Switch tabs using the **Campaigns / Suppression Lists** toggle in the top right.

<Warning>
  Always apply your **do not call** suppression list to every outbound campaign to stay compliant with TCPA and applicable regulations.
</Warning>

Click **+ Create Suppression List** to open the creation modal. Enter a **Name** (required) and an optional **Description**, then click **Create**. The list will immediately appear in the table and become available when configuring any campaign.

<AccordionGroup>
  <Accordion title="Suppression Lists table columns">
    | Column         | Description                                    |
    | -------------- | ---------------------------------------------- |
    | **Name**       | The name of the list (e.g., "do not call").    |
    | **Contacts**   | Number of phone numbers currently in the list. |
    | **Created At** | Date the list was created. Click to sort.      |
    | **Actions**    | A `⋯` menu to edit or delete the list.         |
  </Accordion>
</AccordionGroup>

***

## Creating a Campaign

From the **Campaigns** tab, click **+ Add New Campaign**. Complete all five sections — each shows a green checkmark when done.

<Steps>
  <Step title="General">
    Set the campaign's display name and select the outbound phone channel that will place the calls.

    | Field             | Description                                                                               |
    | ----------------- | ----------------------------------------------------------------------------------------- |
    | **Campaign Name** | A unique, human-readable label for this campaign.                                         |
    | **Channel**       | The outbound phone channel to use. Select from any channel configured under **Channels**. |
  </Step>

  <Step title="Contacts & Message">
    Upload your contact list and write the call script.

    **Contacts File** — Upload a `.csv` file (max 100 MB) with a `phone_number` column. Additional columns become available as `{variables}` in your message.

    ```csv theme={null}
    phone_number,name,appointment_date
    +13125550101,Maria,April 10
    +17735550192,James,April 11
    ```

    **Call Message** — Write the script your agent will follow. Use `{variable_name}` to personalize with CSV data.

    ```text theme={null}
    Hi {name}, this is an automated call from Acme regarding your account ...
    ```
  </Step>

  <Step title="Suppression Lists">
    Check the box next to any suppression list to apply it. Contacts whose numbers appear in a checked list are automatically skipped.

    <Note>
      Manage and create suppression lists from the **Suppression Lists** tab on the main Outbound Call Campaigns page.
    </Note>
  </Step>

  <Step title="Advanced Settings">
    Toggle **Enable Call Retries** to automatically retry contacts whose calls fail, are busy, or go to voicemail.

    | Field                     | Default | Description                                                  |
    | ------------------------- | ------- | ------------------------------------------------------------ |
    | **Max Retries**           | `3`     | Additional call attempts per contact after the initial call. |
    | **Retry Delay (minutes)** | `5`     | Minutes to wait between each retry attempt.                  |

    <Note>
      Retry attempts count toward total call volume. 1,000 contacts with **Max Retries** set to `3` could place up to 4,000 calls.
    </Note>
  </Step>

  <Step title="Schedule">
    Choose when to start placing calls.

    <Tabs>
      <Tab title="Send Now">
        Calls begin immediately after launch. VIVI dials contacts in the order they appear in your CSV.
      </Tab>

      <Tab title="Schedule">
        Set a future start time.

        | Field        | Description                                                          |
        | ------------ | -------------------------------------------------------------------- |
        | **Timezone** | Timezone used to interpret the start time (e.g., `America/Chicago`). |
        | **Schedule** | The specific date and time to begin placing calls.                   |
      </Tab>
    </Tabs>
  </Step>
</Steps>

Once all five sections show a green checkmark, click **Launch Campaign** to start immediately or confirm your scheduled time.

***

## Best Practices

<CardGroup cols={2}>
  <Card title="Apply a suppression list" color="#0066ff" icon="shield-check" iconType="regular">
    Always apply your **do not call** list to every campaign to stay compliant with TCPA and applicable regulations.
  </Card>

  <Card title="Use E.164 phone number format" color="#0066ff" icon="phone" iconType="regular">
    Format all numbers as `+13125550101`. Invalid formats result in `Failed` call outcomes.
  </Card>

  <Card title="Test before launching" color="#0066ff" icon="flask" iconType="regular">
    Run your prompt against a small batch of internal numbers first to verify variables resolve correctly.
  </Card>

  <Card title="Call during business hours" color="#0066ff" icon="clock" iconType="regular">
    Schedule calls between 9 AM and 8 PM in the contact's local timezone to maximize answer rates.
  </Card>

  <Card title="Keep retries conservative" color="#0066ff" icon="arrow-rotate-right" iconType="regular">
    Set **Max Retries** to 3 or below — repeated attempts with no answer typically means the contact is unavailable.
  </Card>

  <Card title="Review results after every run" color="#0066ff" icon="chart-bar" iconType="regular">
    Filter Campaign Detail by `Failed` or `No Answer` to identify contacts that may need follow-up through another channel.
  </Card>
</CardGroup>
