---
title: "Outbound Calling — AVCodex Docs"
description: "Outbound Calling — AVCodex documentation for AV integrators, programmers, and ops teams."
lang: en
json-ld:
---

[](/)

Solutions

[Pricing](/pricing)[The Signal](/blog)[Resources](/resources)

Learn

[Free AI Assessment](/scorecard)[Get Started →](/pricing)

[Documentation Home](/docs)

Guides 

Getting Started

-   [The Alchemist Copilot](/docs/guides/the-alchemist-copilot)
-   [Choosing a Model](/docs/guides/choosing-a-model)
-   [Skills & Templates](/docs/guides/skills-and-templates)
-   [Pricing & Usage](/docs/guides/pricing-and-usage)
-   [Understanding Tokens](/docs/guides/understanding-tokens)
-   [Maximize AVCodex Capabilities](/docs/guides/maximize-avcodex-capabilities)

Knowledge & Memory

-   [How Knowledge Sources Work](/docs/guides/how-knowledge-sources-work)
-   [Knowledge Retrieval Settings](/docs/guides/knowledge-retrieval-settings)
-   [User Memory](/docs/guides/user-memory)
-   [Consumer Brain](/docs/guides/consumer-brain)

Agent Capabilities

-   [Image Recognition](/docs/guides/image-recognition)
-   [Image Generation](/docs/guides/image-generation)
-   [Video Generation](/docs/guides/video-generation)
-   [Deep Research and Deep Thinking](/docs/guides/deep-research-and-deep-thinking)
-   [Heartbeat (Proactive AI Outreach)](/docs/guides/heartbeat-proactive-ai-outreach)
-   [Database Connections](/docs/guides/database-connections)
-   [Agent-to-Agent Links](/docs/guides/agent-to-agent-links)
-   [Message Tagging](/docs/guides/message-tagging)
-   [Lead Generation Forms](/docs/guides/lead-generation-forms)
-   [Multilingual Apps](/docs/guides/multilingual-apps)
-   [Understanding Evaluations](/docs/guides/understanding-evaluations)

Design & Experience

-   [Style Studio](/docs/guides/style-studio)
-   [Component Studio](/docs/guides/component-studio)
-   [HQ Profile](/docs/guides/hq-profile)
-   [Multiplayer Chat](/docs/guides/multiplayer-chat)
-   [Circles](/docs/guides/circles)
-   [Desktop Agent](/docs/guides/desktop-agent)

Voice & Phone

-   [Phone Numbers](/docs/guides/phone-numbers)
-   [Outbound Calling](/docs/guides/outbound-calling)
-   [Voice Cloning](/docs/guides/voice-cloning)

Publish & Share

-   [Embed Chat Widget](/docs/guides/embed-chat-widget)
-   [Custom Domains](/docs/guides/custom-domains)
-   [PWA Installation](/docs/guides/pwa-installation)
-   [AVCodex Sites](/docs/guides/avcodex-sites)
-   [Embed on Kajabi](/docs/guides/embed-on-kajabi)
-   [How to Use AVCodex with Claude Code](/docs/guides/how-to-use-avcodex-with-claude-code)

Monetization & Access

-   [Selling Access](/docs/guides/selling-access)
-   [Consumer Monetization](/docs/guides/consumer-monetization)
-   [Access Control](/docs/guides/access-control)
-   [Bring Your Own Auth](/docs/guides/bring-your-own-auth)
-   [Clever SSO for Schools](/docs/guides/clever-sso-for-schools)

Analytics & Operations

-   [Analytics & Chat History](/docs/guides/analytics-and-chat-history)
-   [Performance Dashboard](/docs/guides/performance-dashboard)
-   [Programmatic Usage Stats](/docs/guides/programmatic-usage-stats)
-   [Session Lifecycle Webhooks](/docs/guides/session-lifecycle-webhooks)
-   [Audit Logs](/docs/guides/audit-logs)

Teams & White-Label

-   [Team Management](/docs/guides/team-management)
-   [Enterprise Whitelabel](/docs/guides/enterprise-whitelabel)

Alchemist Platform

-   [Alchemist Tickets](/docs/guides/alchemist-tickets)
-   [Alchemist Getting Started](/docs/guides/alchemist-getting-started)
-   [Alchemist Working with Tickets](/docs/guides/alchemist-working-with-tickets)
-   [Alchemist Local Development](/docs/guides/alchemist-local-development)

Alchemist Operations

-   [Alchemist Environment Variables](/docs/guides/alchemist-environment-variables)
-   [Alchemist Deploys and Domains](/docs/guides/alchemist-deploys-and-domains)
-   [Alchemist Self-Healing](/docs/guides/alchemist-self-healing)

Alchemist API & Automation

-   [Alchemist API Keys](/docs/guides/alchemist-api-keys)
-   [Alchemist MCP Server](/docs/guides/alchemist-mcp-server)
-   [Alchemist Pipeline Configuration](/docs/guides/alchemist-pipeline-configuration)
-   [Alchemist Pipeline Permutations](/docs/guides/alchemist-pipeline-permutations)

Developer Platform

-   [Building Custom MCP Servers](/docs/guides/building-custom-mcp-servers)
-   [Consumer OAuth for Custom MCP Servers](/docs/guides/consumer-oauth-for-custom-mcp-servers)

AVCodex MCP Server

-   [Overview](/docs/guides/overview)
-   [MCP Reference](/docs/guides/mcp-reference)
-   [Setup & Installation](/docs/guides/setup-and-installation)
-   [Authentication](/docs/guides/authentication)
-   [Tools Reference](/docs/guides/tools-reference)
-   [Common Workflows](/docs/guides/common-workflows)
-   [Rate Limits](/docs/guides/rate-limits)

Custom Actions 

Pro Actions 

API 

Builder API 

Agentic Commerce (ACP) 

Integrations 

[Docs](/docs)/ Guides / Voice & Phone 

# Outbound Calling

Last updated · MAR 2026 · [Read as Markdown](/docs/guides/outbound-calling.md)

Outbound calling flips the voice agent. Instead of waiting for a tech or end-user to dial in, your AVCodex agent places the call, the recipient picks up, and the same voice agent (same prompt, same knowledge, same tools) runs the conversation.

> **Warning:** Outbound calling requires a Studio Pro plan or higher with voice agents enabled. You also need a phone number assigned to the agent.

## [How it works# ](#how-it-works)

Outbound calls use SIP (Session Initiation Protocol) through LiveKit. When you trigger an outbound call:

1.  AVCodex creates a voice room and dials the recipient via your SIP trunk.
2.  The recipient's phone rings with your configured caller ID.
3.  When they answer, your voice agent joins the call and begins the conversation.
4.  The agent uses the same voice, greeting, system prompt, and tools as inbound calls.
5.  The call is recorded as a chat session you can review on your Chats page.

Each call has a configurable maximum duration (default 10 minutes, up to 60 minutes).

## [Inbound vs. outbound# ](#inbound-vs-outbound)

Inbound

Outbound

**Who initiates**

The caller dials your number

Your AI dials the contact

**Common use**

Help desk, info, scheduling

Service follow-ups, reminders, campaigns

**Phone number**

Required (caller dials it)

Required (used as caller ID)

**Voice config**

Same

Same

**Tools and knowledge**

Same

Same

## [Single outbound call# ](#single-outbound-call)

Place a single call with the API endpoint:

code 

```
POST /api/applications/:id/voice/outbound-call
```

json 

```
{
  "phoneNumber": "+15551234567",
  "callerIdName": "Acme AV Service",
  "maxDurationSeconds": 300,
  "metadata": {
    "recipientName": "Jane Smith",
    "reason": "post-commissioning-followup",
    "siteName": "Houston HQ Boardroom 4"
  }
}
```

Field

Required

Description

`phoneNumber`

Yes

E.164 format (`+1...`). US 10-digit numbers are auto-prefixed.

`callerIdName`

No

Name displayed on caller ID. Defaults to "AI Assistant".

`maxDurationSeconds`

No

Max call length (60 to 3600). Defaults to 600 (10 min).

`metadata`

No

Custom key-value data attached to the call record.

The response includes a `callId`, `roomName`, and `sipCallId` you can use for tracking.

## [Batch calling# ](#batch-calling)

For multiple recipients, use the batch endpoint:

code 

```
POST /api/applications/:id/voice/outbound-batch
```

json 

```
{
  "recipients": [
    { "phoneNumber": "+15551234567", "metadata": { "name": "Jane",  "site": "Houston HQ" } },
    { "phoneNumber": "+15559876543", "metadata": { "name": "Mike",  "site": "Austin Campus" } }
  ],
  "callerIdName": "Acme AV Service",
  "callsPerMinute": 5
}
```

Field

Required

Description

`recipients`

Yes

Array of phone numbers and optional metadata (max 1,000).

`callsPerMinute`

No

Rate limit for placing calls (1 to 60). Defaults to 5.

Small batches (10 or fewer recipients) are placed immediately with a short delay between calls. Larger batches create a campaign that processes calls in a managed queue.

## [Campaigns (CSV upload)# ](#campaigns-csv-upload)

For larger outreach, upload a CSV of recipients. Useful for service-window notifications across a corporate refresh, post-install satisfaction calls after a 40-room rollout, or quarterly preventive-maintenance check-ins:

code 

```
POST /api/applications/:id/voice/outbound-campaign
```

json 

```
{
  "csvContent": "phone,name,room,service_date\n+15551234567,Jane Smith,Boardroom 4,2026-05-01\n+15559876543,Mike Jones,Training Room 2,2026-05-02",
  "callerIdName": "Acme AV Service",
  "callsPerMinute": 10
}
```

### [CSV format# ](#csv-format)

Your CSV must include a header row with a phone number column. Accepted column names:

-   `phone`
-   `phonenumber`
-   `phone_number`
-   `number`

All other columns are attached as metadata to each call, so the agent has context about who it is calling.

**Example CSV:**

csv 

```
phone,name,site,room,service_date
+15551234567,Jane Smith,Houston HQ,Boardroom 4,2026-05-01
+15559876543,Mike Jones,Austin Campus,Training Room 2,2026-05-02
```

### [Campaign status# ](#campaign-status)

Campaigns track progress through these statuses:

Status

Meaning

`pending`

Created, not yet started

`running`

Calls are being placed

`paused`

Temporarily stopped

`completed`

All calls finished

`cancelled`

Manually stopped

Each recipient is independently tracked as `pending`, `queued`, `calling`, `completed`, `failed`, or `no-answer`.

List your campaigns:

code 

```
GET /api/applications/:id/voice/campaigns?limit=50&offset=0
```

## [Phone number format# ](#phone-number-format)

Phone numbers are normalized to E.164 before dialing:

-   `(555) 123-4567` becomes `+15551234567` (US assumed for 10-digit numbers).
-   `1-555-123-4567` becomes `+15551234567`.
-   `+44 20 7946 0958` stays as-is (international).

Numbers must be between 10 and 15 digits. Invalid numbers are rejected before the call is placed.

## [Use cases# ](#use-cases)

Use case

How it works

**Post-install follow-up**

After a Crestron commissioning, the agent calls the room owner the next week to ask if everything is working as expected.

**PM scheduling**

Quarterly preventive-maintenance reminders. The agent calls the site contact to confirm a window for filter swaps and firmware checks.

**Service-ticket close-out**

After a ticket is marked resolved, the agent calls to verify the room is fully back online.

**RFP qualification**

New inbound RFP leads get a call. The agent asks scope questions (rooms, displays, control system, timeline) and schedules a sales call.

**Outage notifications**

A headend goes down. The agent calls affected room owners with the ETA and workaround.

## [Best practices# ](#best-practices)

### [System prompt for outbound# ](#system-prompt-for-outbound)

Add outbound-specific instructions to your system prompt:

code 

```
When making an outbound call:
- Introduce yourself and state the reason for calling immediately.
- If you reach voicemail, leave a brief message with a callback number.
- Be respectful of the recipient's time. Keep calls concise.
- If asked, explain this is an AI-powered call from [Company Name].
```

### [Rate limiting# ](#rate-limiting)

Start with a low `callsPerMinute` (3 to 5) and increase gradually. High call volumes may be flagged by carriers.

### [Metadata for context# ](#metadata-for-context)

Pass recipient-specific data in the `metadata` field. The agent can reference it during the call (recipient name, site, room, last service date, control system in place).

> **Tip:** Outbound calling pairs well with Heartbeat for scheduled proactive outreach. Configure Heartbeat to trigger outbound calls on a schedule instead of sending chat messages. Useful for monthly health-check calls across a managed-services portfolio.

## [Troubleshooting# ](#troubleshooting)

**Calls not connecting?**

-   Verify voice mode is enabled and a phone number is assigned.
-   Check the recipient's phone number is valid E.164 format.
-   Confirm your SIP outbound trunk is configured (contact support if unsure).

**Recipient hears nothing?**

-   Check the voice agent's greeting configuration.
-   Verify a voice selection is set (stock or cloned voice).
-   Review call records on the Chats page for errors.

**Campaign stuck in "pending"?**

-   Large campaigns are processed asynchronously. Allow time for the queue to start.
-   Confirm your plan supports outbound calling.

> **Note:** For inbound call setup, see the Phone Numbers guide. For voice agent configuration, see Voice Agents.

\*AVCodex · Your AV expertise. Amplified by AI.\*

Was this helpful? 

[Edit this page →](#)

[

Previous

Phone Numbers

](/docs/guides/phone-numbers)[

Next

Voice Cloning

](/docs/guides/voice-cloning)

On this page

-   [How it works](#how-it-works)
-   [Inbound vs. outbound](#inbound-vs-outbound)
-   [Single outbound call](#single-outbound-call)
-   [Batch calling](#batch-calling)
-   [Campaigns (CSV upload)](#campaigns-csv-upload)
-   [CSV format](#csv-format)
-   [Campaign status](#campaign-status)
-   [Phone number format](#phone-number-format)
-   [Use cases](#use-cases)
-   [Best practices](#best-practices)
-   [System prompt for outbound](#system-prompt-for-outbound)
-   [Rate limiting](#rate-limiting)
-   [Metadata for context](#metadata-for-context)
-   [Troubleshooting](#troubleshooting)

[](/)

The AI platform built exclusively for professional AV. Build, deploy, and sell AI tools that understand your industry.

### Platform

-   What You Can Build
-   Templates
-   [Pricing](/pricing)

### Services

-   [Done-For-You](/pricing)
-   [Academy](/academy)
-   [Contact](/contact)

### Company

-   About
-   [The Signal](/blog)
-   [Docs](/docs)
-   [LinkedIn](#)

© 2026 AVCodex. A Future Ready Holdings Inc. product. SOC 2 Type II Certified · HIPAA Compliant