Human Agent Panel (AI → Human Transfer)
The Agent Panel lets your AI agent hand a live call to a human agent who answers in the browser — no separate softphone hardware, and (unlike a plain number transfer) the human can hand the call back to the AI on the same call.
Each agent chooses one of two transfer modes:
| Mode | What happens | Extra setup |
|---|---|---|
| Phone number (default) | The AI dials a number and drops off the call | Account SID + Auth Token + a number |
| Agent panel | The AI routes the caller to an available human agent in the browser portal | The above plus a Twilio API Key and TwiML App |
Bring your own Twilio. All values below come from your own Twilio account. Never share your Auth Token or API Secret. Placeholders like
<ACCOUNT_SID>mean "paste your value here".
1. Create the Twilio credentials
Sign in at console.twilio.com and use the search box (🔍) to reach each page — typed deep-link URLs are unreliable.
Account SID + Auth Token — on the console home, under Account Info: copy
<ACCOUNT_SID> (starts AC…) and <AUTH_TOKEN>.
API Key + Secret — search "API keys" → Create API key → type
Standard → copy the SID <API_KEY_SID> (starts SK…) and the
Secret <API_SECRET> (shown only once — save it now).
TwiML App — search "TwiML Apps" → Create new TwiML App → set the
Voice Request URL (below) → copy the App SID <TWIML_APP_SID> (starts AP…).
Phone number — the number callers dial. If regular telephony already works, this is already set up.
2. Webhooks — what to put where
Set these in the Twilio console:
| Where | Field | Value |
|---|---|---|
| TwiML App | Voice Request URL (POST) | https://your-infravoice-host/twiml/agent-connect |
| Phone number | A call comes in (POST) | https://your-infravoice-host/calls/inbound |
The platform also sends these automatically during a call (you do not enter them in Twilio) — they must simply be reachable at your domain:
POST /webhooks/conference-status— join/leave/start/end eventsPOST /webhooks/recording-status— recording completionPOST /webhooks/call-status— per-leg status
3. Save the credentials on the platform
Go to Call Center → Settings and enter:
| Field | Value |
|---|---|
| Twilio Account SID | <ACCOUNT_SID> |
| Twilio Auth Token | <AUTH_TOKEN> |
| Twilio API Key | <API_KEY_SID> |
| Twilio API Secret | <API_SECRET> |
| TwiML App SID | <TWIML_APP_SID> |
| Default Caller ID | your Twilio number |
These are stored per workspace; the secret is encrypted at rest.
4. Enable panel mode for an agent
- Call Center → Projects — create or pick a project (e.g.
Support). This is where panel calls get routed. - Call Center → Agents — create a human agent (name + email), assign them to the project, then click Email to send their login credentials.
- Agents — open your AI agent → Telephony tab → Human Transfer → choose Agent panel → select the project → Save.
When a caller asks for a human, the AI now routes to an available agent in that project instead of dialing a number.
5. How a human agent works a call
- The agent logs in at the agent portal and toggles their status to Available (allow the microphone when the browser asks).
- On a transfer, an incoming-call panel rings with the caller's number and the AI's summary of the conversation so far.
- The agent clicks Accept to take the call, uses Mute / Hold / End, and on hang-up fills in a disposition + notes on the wrap-up screen.
- Past calls (with transcript, recording playback, and notes) are available under Call History.
6. Troubleshooting
- Softphone shows an error / won't go ready — the workspace is missing the API Key / Secret / TwiML App SID in Call Center → Settings (step 3), or the TwiML App's Voice URL isn't set (step 2).
- No microphone — the portal must be opened over HTTPS (browsers block the mic on plain HTTP).
- Ring never reaches the agent — the agent isn't Available, isn't assigned to the project, or the AI agent isn't in Agent panel mode.