Skip to main content

How to Make or Receive Calls

This guide covers how to handle both inbound and outbound calls using Exotel.

Receiving Incoming Calls​

Prerequisites​

How It Works​

  1. A customer dials your ExoPhone.
  2. Exotel receives the call and triggers the assigned call flow.
  3. The call flow processes the call (greeting, IVR, routing).
  4. The call is connected to an agent or handled by an automated system.

Setting Up Incoming Calls​

  1. Buy an ExoPhone -- Go to ExoPhones in the dashboard and purchase a number.
  2. Create a call flow -- Build a flow with at least a Greeting and Connect applet.
  3. Assign the flow -- Map the call flow to your ExoPhone.
  4. Add agent numbers -- In the Connect applet, enter the phone numbers of agents who should receive calls.

Incoming Call Setup

Incoming Call Flow Diagram​

Customer dials ExoPhone
↓
Exotel Cloud
↓
Call Flow (Greeting → IVR → Connect)
↓
Agent's phone rings
↓
Agent answers → Call connected

Making Outgoing Calls​

There are multiple ways to make outgoing calls through Exotel.

Method 1: Via the Dashboard​

  1. Log in to the Exotel Dashboard.
  2. Navigate to the dialer or click-to-call option.
  3. Enter the customer's phone number.
  4. Select the ExoPhone to use as caller ID.
  5. Click Call.

Exotel will first call your agent number, and once the agent answers, it will call the customer. The customer sees the ExoPhone as the caller ID.

Method 2: Via API (Connect Two Numbers)​

Use the Connect Two Numbers API to programmatically connect an agent to a customer:

curl -X POST 'https://<api_key>:<api_token>@api.exotel.com/v1/Accounts/<account_sid>/Calls/connect.json' \
-d 'From=<agent_number>' \
-d 'To=<customer_number>' \
-d 'CallerId=<exophone>'

Parameters:

ParameterDescription
FromThe agent's phone number (called first)
ToThe customer's phone number (called after agent answers)
CallerIdThe ExoPhone to display as caller ID

Method 3: Via API (Connect to Flow)​

Use the Connect to Flow API to call a number and connect them to a call flow (IVR):

curl -X POST 'https://<api_key>:<api_token>@api.exotel.com/v1/Accounts/<account_sid>/Calls/connect.json' \
-d 'From=<customer_number>' \
-d 'CallerId=<exophone>' \
-d 'Url=http://my.exotel.com/exoml/start/<app_id>'

This is useful for scenarios like automated reminders or IVR surveys.

Method 4: Via Campaigns​

For bulk outbound calls, use the Campaigns API to call a list of numbers:

  1. Create a campaign with a list of phone numbers.
  2. Assign an IVR flow to the campaign.
  3. Schedule or start the campaign.
  4. Exotel dials each number and connects them to the flow.

See: Outbound Dialer Setup

Outgoing Call Flow Diagram​

API Request (Connect Two Numbers)
↓
Exotel calls Agent first
↓
Agent answers
↓
Exotel calls Customer
↓
Customer answers → Both connected
↓
Customer sees ExoPhone as caller ID

Call Recording​

Both incoming and outgoing calls can be recorded. Enable recording in the Connect applet configuration or via the API Record parameter.

See: Call Recording

Viewing Call Details​

After a call completes, you can view details via:

  • Dashboard: Go to Call Logs to see all calls with timestamps, duration, status, and recordings.
  • API: Use the Call Details API to fetch call information programmatically.
  • Webhooks: Configure Status Callbacks to receive call details in real time.

Troubleshooting​

IssuePossible CauseSolution
Incoming calls not ringing agentsFlow not assigned to ExoPhoneCheck ExoPhone settings
Outgoing call failsInvalid phone number formatUse E.164 format or 10-digit number
Customer hears nothingNo Greeting applet in flowAdd a Greeting applet as the first step
Call drops immediatelyCall flow has no Connect appletEnsure the flow routes to an agent or voicemail
Agent number busyAll agents occupiedSet up Call Queue or Voicemail