> ## 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.

# Inbound calls

Someone calls your number and the agent picks up. It is the same agent you built for web and outbound, with the same prompt, tools, voice, and session record. [How it works](/voice-agents/concepts/how-it-works#a-call-is-a-room) covers what happens inside the call.

Turn on `initialGreeting` so the agent speaks first, the moment the caller is connected, with `greetingInstructions` like "Say salam, introduce the clinic, and ask how you can help." Turn on `backgroundNoise` and `noiseCancellation` too. [Greeting and sound](/voice-agents/assistants/working-with-assistants#greeting-and-sound) says what each one does.

## You need a number first

Today you need a **number of your own** to receive inbound calls. We assign one on request and route it to your assistant. Email [founders@upliftai.org](mailto:founders@upliftai.org). A self-serve way is in the works.

The same number can also be your **caller ID** on outbound calls, depending on your plan and setup. Once it is set, dials without a `fromNumber` go out from it.

A live inbound call counts against your [concurrency](/voice-agents/calling/concurrency) but is never rejected for being over the limit. It can hold back an outbound dial instead.

## Write the prompt for someone who called you

The caller decides what the call is about, so the prompt must cover more than one reason. Say in the prompt that the person called you. Then list the likely reasons: an order question, a booking, a complaint, a wrong number. Give each branch its own steps and closing line, the way [Voice prompting](/voice-agents/assistants/voice-prompting#the-anatomy) lays out a call flow. For anything else, have the agent promise a callback from a teammate, say goodbye, and call [end\_call](/voice-agents/tools/system/end-call).

## During the call and after it

* **During the call**, [webhook tools](/voice-agents/tools/webhook-tools) let the agent look things up on your server and act on them.
* **After the call**, [webhooks](/voice-agents/webhooks/overview) tell you the call finished, was graded, or produced a conversion or callback. Inbound calls fire the same [four events](/voice-agents/webhooks/events) as every other call.

Each inbound call is a session with `channel: telephony` and `direction: inbound`. The caller's number is its `fromNumber`. Filter by direction on [list sessions](/api-reference/sessions-%26-call-records/list-an-assistants-sessions) to see only inbound.

## Score them

I recommend a [scorecard](/voice-agents/assistants/scorecards) on the assistant. That is the only place inbound calls get graded, since campaign scorecards do not apply. Without one there is no score, no `call.graded`, and no conversions.

## Where this is going

We are thinking about a webhook-based way to handle inbound. Any call on your dedicated number would hit your endpoint with details like the caller's number. You would accept it, reject it, or pick which assistant answers. If you want this, email [founders@upliftai.org](mailto:founders@upliftai.org).
