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

# Outbound Calls

> Make AI-powered outbound calls from the dashboard, via API, or through automated workflows.

<Tip>
  For agent setup, see [Create Phone Agent](/phone/create-agent). For caller number, trunk, and transfer settings, see [Agent Configuration](/phone/agent-config).
</Tip>

## Prerequisites

Before making outbound calls, the agent must have an **outbound caller number** configured:

* **Hosted number** — select a verified number from **[Settings → Phone Numbers](https://platform.open.cx/settings/phone-numbers)**.
* **Custom <Tooltip tip="Session Initiation Protocol — lets you route calls through your own telephony provider instead of OpenCX-hosted numbers." cta="SIP setup" href="/phone/sip-integration">SIP</Tooltip> trunk** — configure an outbound trunk under **[Settings → SIP](https://platform.open.cx/settings/sip)** and assign it to the agent.

Set this under **Telephony & Routing** in **[Channels → Phone → Agents](https://platform.open.cx/channels/phone/agents)**.

## How To Make Outbound Calls

<Tabs>
  <Tab title="From the dashboard">
    <Steps>
      <Step title="Open The Agent">
        Go to **[Channels → Phone → Agents](https://platform.open.cx/channels/phone/agents)** and open the agent that should place the call.
      </Step>

      <Step title="Start The Call Flow">
        Click **Test**, then select **Make phone call**.
      </Step>

      <Step title="Enter The Destination Number">
        Enter the destination number in <Tooltip tip="International phone format: `+` followed by country code and number, for example `+14155551234`.">E.164 format</Tooltip>, then click **Call**.
      </Step>

      <Step title="Let The Call Connect">
        OpenCX starts the outbound call immediately using the outbound caller number or SIP trunk assigned to that agent.
      </Step>
    </Steps>

    ### Quick Validation

    | Check           | What to confirm                                                          |
    | --------------- | ------------------------------------------------------------------------ |
    | Answer the call | Call your own phone or a teammate first.                                 |
    | Caller ID       | The displayed number matches the number or trunk assigned to the agent.  |
    | Review path     | The conversation appears in the [inbox](https://platform.open.cx/inbox). |
  </Tab>

  <Tab title="Via API">
    <Steps>
      <Step title="Prepare Access">
        Use the [Make Outbound Call](/api-reference/phone/make_outbound_call) endpoint with an API key that has <Tooltip tip="Permission scope required to start outbound phone calls over the public API.">`phone:write`</Tooltip>.
      </Step>

      <Step title="Choose The Agent And Contact">
        Send the agent ID as <Tooltip tip="The phone agent that will place the call.">`phoneAgentId`</Tooltip> and pass the destination as <Tooltip tip="Use `contact.phoneNumber` when you want to dial a number directly, or `contact.id` when you want OpenCX to use an existing contact record.">`contact.phoneNumber` or `contact.id`</Tooltip>.
      </Step>

      <Step title="Send The Request">
        Post the payload to the endpoint. The call starts as soon as the request is accepted.

        ```json theme={"dark"}
        {
          "phoneAgentId": "agent_123",
          "contact": {
            "phoneNumber": "+14155551234"
          }
        }
        ```
      </Step>

      <Step title="Track The Result">
        Watch the response and then confirm the new call session appears in the [inbox](https://platform.open.cx/inbox).
      </Step>
    </Steps>

    ### Quick Validation

    | Check            | What to confirm                                                                  |
    | ---------------- | -------------------------------------------------------------------------------- |
    | Safe destination | Start with a number you can answer yourself.                                     |
    | API response     | The request succeeds and the phone rings.                                        |
    | Review path      | The transcript starts populating in the [inbox](https://platform.open.cx/inbox). |
  </Tab>

  <Tab title="Via workflows">
    <Steps>
      <Step title="Open Or Create A Workflow">
        Go to your workflow builder and choose the trigger that should launch the phone call, such as a form submission, scheduled run, or external event.
      </Step>

      <Step title="Add The Call Action">
        Add the **Make phone call** action to the workflow.
      </Step>

      <Step title="Fill The Required Fields">
        Set **AI Agent**, **Contact Number**, and **Extra Instructions**. Use the extra instructions field for call-specific context the agent should follow for this run.
      </Step>

      <Step title="Activate The Workflow">
        Save and activate the workflow so future runs can place calls automatically.
      </Step>
    </Steps>

    ### Quick Validation

    | Check        | What to confirm                                                                                |
    | ------------ | ---------------------------------------------------------------------------------------------- |
    | Safe trigger | Trigger the workflow once with a safe test input.                                              |
    | Reachability | Use a number you can answer.                                                                   |
    | Review path  | The run completes and the conversation appears in the [inbox](https://platform.open.cx/inbox). |
  </Tab>
</Tabs>

## Common Outbound Call Mistakes

<Warning>
  Most failed first tests come from three issues: the destination number is not in `E.164` format, the agent does not have an outbound caller number or SIP trunk assigned, or the team tests with a number nobody can answer.
</Warning>

## Questions Teams Usually Ask Before Going Live

<AccordionGroup>
  <Accordion title="How do I confirm the right number is being shown?" icon="phone">
    The recipient sees the hosted outbound number or SIP trunk caller ID assigned to the agent in **[Channels → Phone → Agents](https://platform.open.cx/channels/phone/agents)**. Test with a phone you can answer before calling customers.
  </Accordion>

  <Accordion title="Where do I review the call afterwards?" icon="inbox">
    Open the [inbox](https://platform.open.cx/inbox) to review the transcript and call record after the call starts.
  </Accordion>

  <Accordion title="What should I check if the call does not start?" icon="triangle-exclamation">
    First confirm the number is in `E.164` format. Then open **[Channels → Phone → Agents](https://platform.open.cx/channels/phone/agents)** and verify **Telephony & Routing** includes either a hosted outbound caller number or an outbound SIP trunk.
  </Accordion>

  <Accordion title="Can the agent transfer the call if needed?" icon="arrow-right-arrow-left">
    Yes. If transfer destinations are assigned to the agent, it can transfer the live call during the conversation. Configure those destinations in **[Channels → Phone → Agents](https://platform.open.cx/channels/phone/agents)**.
  </Accordion>
</AccordionGroup>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Agent Configuration" icon="sliders" href="/phone/agent-config">
    Set outbound caller number and trunk under Telephony & Routing.
  </Card>

  <Card title="Create Phone Agent" icon="plus" href="/phone/create-agent">
    Set up the agent before placing live outbound calls.
  </Card>

  <Card title="SIP Integration" icon="server" href="/phone/sip-integration">
    Configure outbound SIP trunks for BYOC.
  </Card>

  <Card title="Phone API" icon="code" href="/api-reference/phone/make_outbound_call">
    Make outbound calls programmatically.
  </Card>
</CardGroup>
