ExoCall Help
Connect Exotel
Exotel provides your phone line; ExoCall provides the AI that talks on it. Connecting them takes two halves: pasting your Exotel credentials into ExoCall, and pointing your Exotel call flow at ExoCall's audio stream. Budget 10 minutes.
Before you start
You need an active Exotel account (KYC approved) with at least one virtual number — an ExoPhone. If you don't have one yet, sign up at exotel.com first; ExoCall cannot work without it.
Part 1 — Paste your Exotel credentials into ExoCall
- 1
Get your API credentials from Exotel
In the Exotel dashboard, open Settings → API. Copy the API Key and API Token (create a new key pair if the page is empty).
Your Account SID is your Exotel subdomain — the part before
.exotel.comin your dashboard URL. Example: formycompany123.exotel.comthe SID ismycompany123. - 2
Enter them in ExoCall
In ExoCall → Settings → Exotel Integration, paste the API Key, API Token, and Account SID. Set Caller ID to your ExoPhone virtual number with a leading 0 — e.g.
09876500000. This is the number shown to customers on outbound calls. - 3
Save and copy your WebSocket URL
Click Save. ExoCall generates your personal WebSocket URL at the top of Settings:
wss://app.exocall.io/inbound/your-business-slug
Copy it — you'll paste it into Exotel in Part 2.
Part 2 — Point your Exotel flow at ExoCall
This half happens inside the Exotel dashboard. You are creating a call flow whose job is simple: when a call comes in, stream the audio to ExoCall so the AI can speak.
- 1
Create a call flow (App)
In Exotel, open App Bazaar and create a new custom app / flow. Give it a name like "ExoCall AI Agent".
- 2
Add the Voicebot / Passthru applet with your WebSocket URL
Drag in the applet that supports a WebSocket stream (Exotel calls this the Voicebot applet; in the flow editor it sits under Passthru/stream settings). Paste your WebSocket URL —
wss://app.exocall.io/inbound/your-slug— as the stream URL and save the flow. - 3
Assign the flow to your ExoPhone
In ExoPhones (your virtual numbers), set this new app/flow as the answer flow for your number. From now on, every call to that number is answered by your ExoCall AI agent.
- 4
Copy the Flow URL back into ExoCall
Open the flow you just created and note its numeric ID, then in ExoCall → Settings → Exotel Integration fill the Flow URL field:
http://my.exotel.com/YOUR_SID/exoml/start_voice/FLOW_ID
ExoCall uses this URL to place outbound calls (campaigns, callbacks, API calls) through the same AI flow.
- 5
Test both directions
Inbound: call your ExoPhone from your mobile — the AI should answer with your greeting.
Outbound: in ExoCall, use the outbound call option with your own number as the lead — your phone should ring, and the AI speaks when you pick up. Both calls appear in Call Logs with analysis about a minute after they end.
Recordings are stored by Exotel, fetched by ExoCall
Call recordings stay on Exotel's storage. ExoCall fetches them with your API credentials to play them in the dashboard and run audio analysis — so if you rotate your Exotel API keys, update them in ExoCall Settings too, or recordings and audio analysis will stop working.
Common questions
Where do I find my Exotel API key, token, and SID?›
Log in to the Exotel dashboard and go to Settings → API. The API Key and API Token are shown there (create a key pair if none exists). Your Account SID is your Exotel subdomain — the name in your dashboard URL, e.g. "mycompany123" in mycompany123.exotel.com.
What is the Caller ID in ExoCall settings?›
It is your Exotel virtual number (ExoPhone) — the number your customers see when the AI calls them, entered with a leading 0 (e.g. 09876500000). It must be a number active on your Exotel account.
What is the WebSocket URL used for?›
The WebSocket URL (wss://app.exocall.io/inbound/your-slug) is how Exotel streams live call audio to ExoCall's AI. You paste it inside your Exotel flow's Voicebot/Passthru applet. Without it, calls reach Exotel but never reach the AI.
Why does ExoCall need the Flow URL?›
The Flow URL (http://my.exotel.com/YOUR_SID/exoml/start_voice/FLOW_ID) tells ExoCall which Exotel flow to run when it places outbound calls — campaigns, callbacks, and API-triggered calls all use it. The FLOW_ID is the numeric ID of the same flow that contains your WebSocket applet.