Set Up Phone AI for Incoming Calls
Connect one Twilio number, test its webhook, then activate Phone AI. This usually takes about 10 minutes.
This guide helps you answer incoming hotel calls with AVA and review each call transcript.
Go to: Settings → Communications → Phone AI
Phone AI settings belong to the selected hotel. Each hotel needs its own Twilio number, saved credentials, and activation.
Quick Reference
| Setting | What It Controls | What You See |
|---|---|---|
| Twilio Account SID | Selects the Twilio account | An identifier beginning with AC |
| Twilio phone number | Receives guest calls | A number with + and country code |
| Twilio Auth Token | Authorises AVA to verify and handle calls | A protected secret that is never shown again |
| Purpose | Records an optional note for this number | Your description on the setup page |
| Incoming-call webhook | Routes calls from Twilio to AVA | A copyable URL and Test webhook action |
| Phone AI switch | Activates or pauses AI call handling | Active or Not active |
| Call Activity | Lists calls and their state | Caller number, start time, status, and transcript |
Before You Start
Confirm these requirements:
- You have Settings read access to review Phone AI activity
- You have Settings write access to configure Phone AI
- You have a dedicated Twilio phone number
- You have the Twilio Account SID and Auth Token
- The phone number is written in E.164 format
Check Your Settings Permission
Your permission controls which Phone AI actions you can use:
| Permission | Available actions |
|---|---|
| Settings read | Open Phone AI and review Call Activity and transcripts |
| Settings write | Save settings, test the webhook, and activate Phone AI |
Ask an administrator to update your role if an action is unavailable.
Twilio must reach AVA through a public HTTPS address that supports WebSocket connections. Ask your AVA administrator to confirm this requirement for private or restricted deployments.
Verify the Public Phone AI URL
AVA creates the Twilio webhook and media stream URLs from the public Core address.
| Environment | URL behavior | What you should check |
|---|---|---|
| Production | Uses the public HTTPS VOUCH_CORE_URL | The URL includes /core when your deployment uses that prefix |
| Local Docker | Uses the public SERVICE_HOME address and PUBLIC_PATH | The address points to your public ngrok tunnel |
AVA creates the secure wss:// media stream URL automatically.
You only configure the copied incoming-call webhook in Twilio.
Do not add query parameters to the generated media stream URL.
Ask your deployment administrator to correct these values if the copied webhook uses an internal hostname.
Connect the Phone AI Services
Ask your deployment team to complete these checks before enabling Phone AI:
- Keep the Core-to-Chat realtime route private. It is for internal service traffic only.
- Set
INTER_SERVICE_SECRETin Chat Microservice to match Core'sCHAT_MICROSERVICE_SECRET. - Deploy Chat Microservice before Core. Streamliner can follow after Core is live.
- Roll back in reverse order if needed: Streamliner, Core, then Chat Microservice.
Do not expose the internal realtime route to the public internet. Twilio should connect through the public AVA webhook, not directly to Chat Microservice.
Treat your Twilio Auth Token like a password. AVA protects it after saving and never displays it again.
Save the Twilio Connection
-
Stay on Setup.
-
Enter the Twilio Account SID.
-
Enter the Twilio phone number with
+and country code. -
Enter the Twilio Auth Token.
-
Add an optional Purpose.
-
Click Save settings.
✓ You see "Phone AI settings saved." ✓ The Auth Token field changes to its protected placeholder.
Leave the Auth Token blank to keep the saved token. Enter a new token only when you need to replace it.
Route Incoming Calls from Twilio
-
On Setup, find Incoming-call webhook.
-
Click Copy.
-
Open the Twilio Console.
-
Open Phone Numbers and select the hotel number.
-
Under Voice configuration, set A call comes in to Webhook.
-
Paste the copied URL.
-
Select POST, then save the Twilio configuration.
✓ Twilio now sends incoming calls to the AVA webhook.
AVA checks the Twilio request and the configured phone number before accepting calls. Use the exact number saved in AVA when configuring Twilio.
Test and Activate Phone AI
-
Return to Settings → Communications → Phone AI.
-
Save any unsaved changes.
-
Click Test webhook.
-
Confirm the success message.
-
Turn on Enable Phone AI.
-
Click Save settings.
-
Call the Twilio number from another phone.
✓ Phone AI answers the incoming call. ✓ After the call ends, the call appears under Call Activity with its saved state. ✓ Select View transcript to review saved caller and AI messages.
You must save the Account SID, phone number, and Auth Token before activation. The webhook test also stays disabled while changes are unsaved.
Review Call Activity
-
Open Call Activity.
-
Find the call by caller number and start time.
-
Review the call state.
-
Click View transcript.
-
Close the transcript when you finish.
✓ You can review the caller and assistant messages for that call.
Call Activity loads when the page opens. Reopen or refresh the page after a new call ends.
Handle Guest Service Requests
Phone AI can answer general hotel questions during calls. Supported guest service actions require a reliable call transcript and clear guest confirmation.
| Guest request | Phone AI behavior |
|---|---|
| Ask a general hotel question | Answers using the available hotel information |
| Request, cancel, or change a guest service | Accepts a clear confirmation, including “I confirm” or “I confirm it” |
| Request an action without a usable transcript | Directs the guest to the front desk |
If transcription is unavailable, Phone AI does not submit, cancel, or change a guest service request. The guest receives a front-desk handoff instead. Phone AI rejects confirmations that alter the prepared request.
Tell guests to contact the front desk when they need an action completed during a call without transcription.
Troubleshooting
The phone number is rejected
What you see: "Enter the Twilio phone number in E.164 format, including + and country code."
Fix:
- Start the number with
+. - Add the country code.
- Remove spaces, brackets, and dashes.
- Click Save settings again.
The webhook test is disabled
What you see: You cannot select Test webhook.
Fix:
- Complete the Account SID, phone number, and Auth Token.
- Click Save settings.
- Wait for the saved confirmation.
- Click Test webhook again.
The webhook test fails
What you see: "Unable to verify the Twilio webhook configuration."
Fix:
- Copy the current Incoming-call webhook again.
- Confirm Twilio uses that URL for A call comes in.
- Confirm the method is POST.
- Save in Twilio, then test again in AVA.
The copied webhook uses an internal URL
What you see: The copied URL contains an internal hostname or starts with http://.
Fix:
-
Ask your deployment administrator to set production
VOUCH_CORE_URLto the public HTTPS Core address. -
Confirm the value includes
/corewhen your public deployment uses that prefix. -
For local Docker, confirm the public ngrok address is configured through
SERVICE_HOMEandPUBLIC_PATH. -
Reopen Settings → Communications → Phone AI.
-
Copy the Incoming-call webhook again, then update Twilio.
✓ The copied webhook starts with
https://and uses a public address.
Calls do not appear in Call Activity
What you see: A test call ends, but no call appears for the selected hotel.
Fix:
- Confirm you selected the hotel where Phone AI is active.
- Confirm the Twilio number matches Twilio phone number exactly.
- Reopen or refresh the Phone AI page after the call ends.
- Run Test webhook again after saving the settings.
- Ask your AVA administrator to confirm the public HTTPS address supports WebSocket connections.
Phone AI cannot be activated
What you see: The Enable Phone AI switch stays disabled.
Fix:
- Confirm you have Settings write access.
- Save all required Twilio settings.
- Check that the phone number includes
+and country code. - Refresh the page and try again.
A transcript does not open
What you see: "Unable to load this transcript."
Fix:
- Close the transcript panel.
- Refresh Call Activity.
- Open the call again.
- Contact support if other transcripts also fail.
A call has no transcript
What you see: "No transcript was saved for this call."
Fix:
-
Check another completed call under Call Activity.
-
Continue using Phone AI for general hotel questions.
-
Tell guests to contact the front desk for requests, cancellations, or changes.
-
Contact your AVA administrator if your deployment should save call transcripts.
✓ Phone AI can continue answering questions without a saved transcript. ✓ Confirmation-dependent guest actions go to the front desk instead.
Still Stuck?
Contact success@vouch-technologies.com if:
- ❌ The saved webhook keeps failing its test
- ❌ Calls do not appear under Call Activity
- ❌ Phone AI does not answer after activation
Helpful to include:
- Screenshot of the setup status without secret values
- Twilio phone number
- Time of one test call
- Exact error message