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

# Outbound calls

An outbound call is your assistant dialing a customer. We place it from a **Pakistani number**, the agent [joins before the phone rings](/voice-agents/concepts/how-it-works), and we handle voicemail and dead lines for you. This page is about placing calls and writing an agent that survives them.

## Two ways to place a call

* **A campaign.** [Upload contacts](/api-reference/contacts/upload-a-contact-file), [create a campaign](/api-reference/campaigns/create-a-campaign) with a goal, and launch it. We handle the scheduling and the retries, so you focus on the agent and the script. Set a calling window on the campaign, or it dials around the clock.
* **One call, right now, through the API.** [Dispatch a call from the assistant](/api-reference/starting-a-conversation/dispatch-a-call-from-this-assistant) with the number to dial. See [variables](/voice-agents/personalization/variables) and [per-call instructions](/voice-agents/personalization/per-call-instructions) for how to personalize an API call.

## Write the agent for one job

Outbound agents work when the goal is narrow and the edge cases are written down. Give one call too many jobs and the agent fumbles all of them. [Voice prompting](/voice-agents/assistants/voice-prompting) is the guide to writing one, and [Build, refine & simulate](/voice-agents/assistants/build-refine-simulate) gets you a first draft from a brief and lets you read it against a persona before you dial anyone.

* **Confirm the person first.** Open with the name: "کیا میری بات احمد صاحب سے ہو رہی ہے؟". If it is the wrong person, apologize and end the call.
* **Handle the common objections.** "ابھی مصروف ہوں", "پہلے ہی ادا کر دیا", "مجھے یاد نہیں". Write each one into the prompt with the reply you want.
* **Take no for an answer.** Thank them and end the call. Never argue.
* **Send anything unrelated to a callback.** Say a teammate will call back, agree on a time, and end the call.
* **Name the hangup.** Tell the prompt when to call `end_call`. See [End call](/voice-agents/tools/system/end-call).

Don't abuse the system. Outbound AI calling in Pakistan is a privilege. Use it responsibly.

## Before you dial

* **Greet first, with room tone and noise cancellation on.** Turn on `initialGreeting`, `backgroundNoise`, and `noiseCancellation`, and give the greeting one line that confirms the person by name. See [Greeting and sound](/voice-agents/assistants/working-with-assistants#greeting-and-sound).
* **Send an `Idempotency-Key` when your code might retry.** It fixes the call id, so a retried request can never dial twice.

## What to expect

* **We dial from a pool.** A random Pakistani number each call. For a dedicated number, see [Phone numbers & concurrency](/voice-agents/calling/concurrency).
* **Concurrency caps both paths.** Over your account's limit, or when our pool is full, the API returns 429. See [Phone numbers & concurrency](/voice-agents/calling/concurrency).
* **Each number takes one call at a time.** A second dial to someone already on a call gets 409 `number_busy`. Retry once that call ends.
* **Running out of credits stops the dial.** On a direct call you get 402 before anything rings. A campaign pauses instead.
* **`dispatched` does not mean answered.** It means the carrier accepted the call. Poll the [session status](/api-reference/sessions-%26-call-records/get-a-sessions-status) for ringing, the answer, and the [end reason](/voice-agents/calling/call-end-reasons).
