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

# Human phone calling and transfers

> Receive calls in the dashboard, dial customers, transfer with a private consultation, add participants, and manage availability and wrap-up.

Your team can answer calls and dial customers from the dashboard. Human calling must be available in your workspace, and the number must have a working [inbound or outbound route](/phone/numbers-and-routing).

When you answer, start, or rejoin a customer call, the inbox opens that call's session automatically. You can browse other sessions while staying on the call.

## Get ready to answer

1. Open the dashboard and allow microphone access in your browser.
2. Set your agent availability to available and turn on **Available for calls** in the sidebar user menu.
3. Confirm that the inbound number is unassigned to AI, or that the AI agent has a **Team** transfer destination assigned.
4. Place a test call and accept the incoming-call prompt. Check audio in both directions.

Teammates already on a call, unavailable for calls, or in wrap-up are excluded from new rings. For a team destination, OpenCX first considers eligible members of that team. If that pool is empty, it can fall back to available teammates across the workspace. Team selection is therefore not a strict boundary preventing other teammates from ringing.

For a direct inbound human call, no eligible teammates or an unanswered ring results in a missed call and the caller's line ends. For an AI-to-team handoff, no eligible teammate can leave the AI handling the call. Test both cases when writing the agent's handoff instructions; do not assume automatic voicemail or callback scheduling.

## Make an outbound call

Use the dashboard dialer to select a verified caller number and enter the customer's international phone number. To return a call from an existing phone session, use its call-back control; the new attempt is kept with that session. This starts a call immediately. It does not schedule a later callback.

Starting a call from an existing session requires **Sessions** write access or **Voice settings** write access. Starting a new session requires **Create sessions** write access or **Voice settings** write access.

## Choose an outbound caller ID

In the dashboard dialer, open **Make the call from** to choose a verified caller ID. Search by name or phone number, including a partial number or a pasted number with spaces and punctuation. You can also scroll through the list and use the arrow keys and Enter to select a result. Press Escape to close the picker without changing the selected number.

## Hold and transfer

Use **Hold** to pause the customer leg and **Resume** to return. Use **Transfer** to select a destination. During a consultation transfer, the customer stays on hold while you speak privately with the destination. Choose **Complete** to hand over, or **Cancel** to return to the customer. If the destination does not answer, cancel the ring and resume the call.

A consultation transfer and a conference serve different purposes: completing a transfer hands the customer over; adding a participant keeps people together on the call.

## Add participants

On a connected call, the host can choose **Add participant** and invite an available teammate or dial an external phone number. External dialing uses a verified caller number. Adding participants requires **Sessions** write access.

**Participants** shows connected people and pending invites. The host can withdraw an invite or remove a participant. If removal is interrupted, OpenCX retries it automatically. A teammate with a pending removal cannot rejoin by refreshing the page. An invited teammate can leave without ending the call for everyone. Muting a participant for yourself only changes what you hear.

The call timeline records participant changes. Recording and live transcripts, when enabled, continue across the call; see [Recordings and transcripts](/phone/recordings-and-transcripts).

## Wrap up and missed calls

Admins configure **Wrap-up time** in **[Settings → Voice & Telephony](https://platform.open.cx/settings/telephony)**. While wrapping up, you do not receive new call rings. Use **I'm ready** to finish early or add a minute if needed.

Review missed calls in the inbox and decide whether to call back or use another channel. A missed human call is not automatically an AI outbound **Call Finished** workflow event. Validate the event source for the specific automation you configure.

## Linking callers to your own customer profile

Most phone calls arrive as a number. Two settings turn that number into the customer your agents already know.

**Contact profile link** (Settings → Workspace) adds a button to the session panel, the in-call bar and the incoming-call popup that opens the customer in your own admin. The URL is a template over the contact:

```text theme={"dark"}
https://admin.example.com/users?phone={{contact.phone_number}}
```

Placeholders: `{{contact.phone_number}}`, `{{contact.email}}` and `{{contact.custom_data.<key>}}` for any contact attribute. Values are URL-encoded; when a contact has no value for a placeholder the button is not shown. On the incoming-call popup the button follows the caller-number privacy setting, so a hidden number never leaks through the link.

**Identity on incoming calls.** When a call rings your agents, the caller's contact is matched against the connected customer systems (ticketing system, then the CRM connections) and the contact's name and email are filled in from the match. The lookup runs alongside the ring and never delays it.

If your customer data lives somewhere else, a workflow can do the lookup. The `Phone call started` trigger fires for every incoming call with the contact on `trigger.call.ticket.contact`, after the built-in matching has finished:

1. Add an action that finds a customer by phone number in your system.
2. Create a workflow on the `Phone call started` trigger that calls that action with `{{trigger.call.ticket.contact.phone_number}}`.
3. Follow it with an **Update contact** step that sets the name and stores your customer id as a contact attribute, for example `admin_user_id`.
4. Point the contact profile link at that attribute: `https://admin.example.com/users/{{contact.custom_data.admin_user_id}}`.

From the next call on, the popup and the session panel open the right profile in one click.

## Organization selection and page refresh

Incoming calls, transfer requests, and conference invites ring in dashboard tabs open to the organization receiving the call. If you work in multiple organizations, open a tab for each organization where you want to receive calls and set your call availability there.

Refreshing the page during a customer call briefly interrupts your audio. The dashboard reconnects to the same active call if the page returns within 30 seconds. Keep the same organization selected and allow microphone access. If no agent reconnects, the call ends after this grace period. Choosing **End call** still hangs up immediately.
