How Does Exotel Work?
Exotel acts as a cloud-based layer between your customers and your team. When a customer calls your business number, Exotel intercepts the call in the cloud, processes it through your configured call flow, and connects it to the right person or system.
Architecture Overview​

The high-level flow is:
Customer dials your ExoPhone
|
v
Exotel Cloud Platform
(processes call flow)
|
v
Greeting → IVR Menu → Connect to Agent
Incoming Call Flow​
When a customer calls your Exotel virtual number (ExoPhone):
- Call arrives at ExoPhone -- The customer dials your business number. Exotel receives the call on its cloud infrastructure.
- Call flow is triggered -- The ExoPhone is mapped to a call flow (also called an App). Exotel begins executing the flow.
- Applets process the call -- The call passes through a sequence of applets (Greeting, IVR Menu, Connect, Voicemail, etc.) that you configured in the flow builder.
- Agent is connected -- Based on the flow logic, the call is routed to one or more agents. The agent's phone rings and they answer.
- Call completes -- When the conversation ends, Exotel logs the call details including duration, recording URL, and status.
- Callbacks fire -- Exotel sends HTTP callbacks (webhooks) to your application with the call details.
Outgoing Call Flow​
When you want to call a customer from your application:
- API request -- Your application sends a request to the Exotel API (e.g., Connect Two Numbers or Connect to Flow).
- Agent leg -- Exotel first calls the agent (or the "from" number).
- Customer leg -- Once the agent answers, Exotel calls the customer (the "to" number).
- Connection -- Both parties are connected. The customer sees the ExoPhone as the caller ID, not the agent's personal number.
- Post-call processing -- Call details, recordings, and status callbacks are generated.
Key Components​
ExoPhones (Virtual Numbers)​
These are the phone numbers your customers dial. Each ExoPhone is mapped to a call flow. You can have multiple ExoPhones for different departments or regions.
See: What is an ExoPhone?
Call Flows (Apps)​
A call flow is a visual sequence of applets that define how a call is handled. You design flows in the Exotel Dashboard using a drag-and-drop builder.
Applets​
Applets are the building blocks of a call flow. Each applet performs a specific action:
| Applet | Purpose |
|---|---|
| Greeting | Play a welcome message |
| IVR Menu | Present options and route based on keypress |
| Connect | Route the call to agents or numbers |
| Voicemail | Let callers leave a message |
| Transfer | Transfer to another flow |
| Passthru | Make an HTTP request to your app mid-call |
| Hangup | End the call |
Dashboard​
The Exotel Dashboard at my.exotel.com is where you:
- Manage ExoPhones
- Build and edit call flows
- View call logs and analytics
- Configure users and settings
- Access API credentials
APIs​
For programmatic control, Exotel provides REST APIs:
- Voice v1 API -- Simple call automation and IVR
- Voice v2 API -- Enhanced call management
- Voice v3 API -- Advanced call details and monitoring
- SMS API -- Send and manage SMS
- Campaigns API -- Bulk outbound calling
Call Legs​
Every call in Exotel consists of one or more "legs":
- Incoming call: The first leg is from the customer to the ExoPhone. The second leg is from Exotel to the agent.
- Outgoing call: The first leg is from Exotel to the agent. The second leg is from Exotel to the customer.
Each leg has its own status, duration, and recording. See the Legs API for details.
Status Callbacks​
Exotel sends HTTP POST callbacks to your application URL whenever a call event occurs. This allows your application to:
- Update CRM records in real time
- Trigger follow-up actions
- Log call details in your own database
See: Status Callback
Next Steps​
- Terminologies -- Learn the key terms used across Exotel
- Getting Started -- Set up your first call flow