Phone & Voice AI
GoWeBa's Phone module transforms your web browser into a complete business phone system. Through Twilio integration and WebRTC technology, you can make and receive calls, send SMS, and even deploy a Voice AI agent that automatically answers your customers — all without leaving the platform.
Telecom Architecture
GoWeBa uses a hybrid telecom architecture that combines:
- Twilio as the telephony connectivity provider (PSTN)
- WebRTC for calls directly from the browser (no physical phone required)
- Voice AI powered by Twilio Gather + LLM for intelligent automatic responses
- Two-way SMS for text communications
- IVR (Interactive Voice Response) configurable for inbound call routing
GoWeBa Numbers
GoWeBa assigns Canadian phone numbers to each organization:
Numbers are provisioned through Twilio and billed at provider cost × 1.30 (telecom margin).
VoIP Calls — Click-to-Call
Making an Outbound Call
GoWeBa lets you make calls directly from the browser with no physical phone:
- Click the call button — From a contact card, the inbox, or the dialer
- Select the source number — Choose from the organization's numbers
- WebRTC connection — The browser establishes a secure audio connection
- Communication — Speak directly via your computer's mic/speakers
- End call — Hang up via the button or close the panel 💡 Use a headset with microphone for optimal audio quality during WebRTC calls.
Receiving an Inbound Call
When a call comes in on a GoWeBa number, the system follows this flow:
- Inbound call detected — Twilio routes the call to GoWeBa
- Voice AI enabled? — If yes → the Voice AI agent answers automatically (section 4)
- IVR configured? — If yes → the voice menu guides the caller
- Browser notification — The user receives a ring notification in GoWeBa
- Answer — The user accepts the call — WebRTC connection established
- Recording — If enabled, the call is recorded with consent
Call Settings
Call Log
All calls are logged in the Inbox → Calls section with the following information:
Post-Call AI Features
Transcription
GoWeBa automatically transcribes recorded calls into numbered segments:
- Segmented transcription: each intervention is a distinct segment with timestamp
- Speaker identification: distinction between CALLER and AGENT (user)
- Final vs. partial text: partial text is displayed in real-time, final after processing
- Detected language: transcription adapts to the conversation's language
Automatic Call Summary
After a call, WEBA can generate an intelligent summary in one click:
- User clicks "Summary" — From the call log or the call detail card
- Transcription retrieval — Segments are assembled into full text
- GPT-4.1 analysis — The AI model analyzes the conversation
- Summary generation — Key points, decisions made, next steps
- Saved — The summary is stored with the call for future reference The summary includes: participants, main topic, decisions made, commitments by each party, and recommended follow-up actions.
Action Items
In addition to the summary, WEBA automatically extracts concrete actions mentioned during the call:
- Tasks to create: "I'll send you the quote by Friday"
- Reminders to schedule: "Call me back next week to confirm"
- Documents to prepare: "I'll prepare the service agreement"
- Follow-ups: "Check the conference room availability" 💡 Action items can be converted into GoWeBa tasks in one click, directly from the summary.
Recording and Playback
Recorded calls are stored securely:
- Format: MP3 or WAV depending on configuration
- Storage: Secure cloud storage with encryption at rest
- Access: Play directly in GoWeBa, one-click download
- Retention: Configurable (30, 60, 90 days or unlimited)
- Compliance: Consent warning before recording ⚠️ In Canada (Bill C-36) and Quebec (Civil Code), the consent of at least one party is required for recording a phone conversation.
Voice AI — Intelligent Voice Agent
Concept
Voice AI is GoWeBa's intelligent voice agent that automatically answers incoming calls. It uses speech recognition (STT), a language model (LLM), and text-to-speech (TTS) to have a natural conversation with the caller — in French, English, or Spanish. Unlike a traditional IVR that offers a rigid menu ("press 1 for..."), Voice AI understands natural language requests and responds intelligently and contextually.
Configuration
Each phone number can have its own Voice AI configuration:
Available Voices (Amazon Polly)
Multilingual Mode
When voiceAiMultiLang is enabled, Voice AI presents a language selection menu at the start of the call: "Bonjour! Hello! ¡Hola! Pour le français, dites français ou appuyez sur 1. For English, say English or press 2. Para español, diga español o presione 3." Each language can have:
- Its own custom greeting message
- Its own system prompt (specific AI instructions)
- Its own voice synthesis
Fallback
When Voice AI cannot respond (timeout, error, transfer request), the fallback action is triggered:
Two-Way SMS
Sending SMS
GoWeBa allows you to send SMS from the organization's numbers:
- Individual send: from a contact card or the Webabox
- Mass send: via marketing campaigns (Module 15)
- Automated SMS: triggered by workflows or WEBA
- Templates: reusable SMS templates with variables
Receiving SMS
Incoming SMS appear in the Webabox like regular messages:
- Instant browser notification
- Automatic contact association (if the number is known)
- Conversation history: SMS appear in the contact's thread
- Direct reply: respond to SMS from the Webabox
SMS Billing
The 30% telecom margin (1.30×) applies to all communication costs.
IVR — Interactive Voice Response
IVR Configuration
The IVR allows you to configure an automated voice menu:
- Custom greeting message for each phone number
- Menu options: "Press 1 for sales, 2 for support..."
- Routing to specific users or groups
- Schedules: different messages based on business hours
IVR vs Voice AI
Phone Administration
Number Management
Accessible via Admin → Phone. Allows you to:
- View active numbers — List of all organization numbers with status
- Configure IVR — Modify each number's greeting message
- Enable/disable Voice AI — Configure the AI voice agent per number
- Provision a new number — Order a local or toll-free number via Twilio
- Release a number — Deactivate a number that is no longer in use
Call Statistics
The /api/phone/call-stats API provides consolidated statistics:
Voicemail
Voice messages are accessible via the Inbox → Voicemails section:
- Direct playback: play the audio message in the browser
- Automatic transcription: the voice message is transcribed to text
- Notification: alert when a new voicemail is received
- Contact association: the message is linked to the calling contact
- Read/unread status: manage read status
Integration with WEBA
WEBA Phone Agent
WEBA's phone agent (Agent #15 — Phone Agent) can:
- Make a call via chat: "Call Jean-Pierre at 514-555-1234"
- Summarize a recent call: "Summarize my last call"
- Extract actions: "What are the action items from my call with Acme?"
- Schedule a callback: "Call Acme back Thursday at 10 AM" → creates event + task
Voice AI → WEBA Flow
When Voice AI is active, the processing flow is:
- Inbound call — Twilio routes to the GoWeBa number
- Voice AI activated — voiceAiEnabled = true detected
- Voice greeting — The greeting message is spoken (Polly TTS)
- Listen (Gather) — Twilio STT transcribes the caller's speech
- LLM Analysis — The transcribed text is sent to GPT-4.1 with the system prompt
- Response — The LLM response is spoken via TTS
- Loop — Return to step 4 until end of conversation or timeout
- Post-processing — Full transcription, summary, and action items generated
Telecom Billing
Telecom billing follows the 1.30× rule (30% margin on provider cost):
Voice AI costs combine telecom fees (1.30×) and AI fees (1.40×) which add up.
Concrete Use Cases
Scenario: 24/7 Voice AI Customer Support
Situation: An SMB wants to offer phone support outside business hours.
- Setup — Enable Voice AI on the toll-free number with a support-oriented prompt
- Greeting — "Hello, thank you for calling [Company]. How can I help you?"
- Customer calls — The customer asks: "I have a problem with my order #12345"
- Voice AI responds — The LLM checks the knowledge base and answers with relevant info
- Fallback — If the issue is complex, Voice AI offers to leave a voicemail
- Follow-up — The next day, the team sees the transcription, summary, and action items
Scenario: Click-to-Call from CRM
- User opens a contact card — The phone number is displayed
- Click the phone icon — The dialer opens with the number pre-filled
- WebRTC call — The call is made from the browser, no phone required
- During the call — The user takes notes in GoWeBa in parallel
- Call ends — AI summary + action items automatically generated
- Tasks are created — Action items become tasks in the pipeline
Scenario: Multilingual Voice AI Menu
- Inbound call — The customer calls the main number
- Multilingual menu — "Bonjour! For French, press 1. For English, press 2. Para español, presione 3."
- Selection — The customer says "English" or presses 2
- Language switch — Voice AI switches to English with the Joanna voice
- Conversation — The AI agent responds in English with the English system prompt
- Call ends — English transcription, English summary
Scenario: Voice Appointment Booking
- A customer calls — Voice AI answers with the greeting
- Customer requests — "I'd like to book an appointment for a consultation"
- Voice AI checks — Checks the calendar for available slots
- Proposal — "I have openings Tuesday at 10 AM or Wednesday at 2 PM. Which works for you?"
- Confirmation — The customer chooses, the event is created automatically
- Confirmation SMS — An SMS is sent with the appointment details
Troubleshooting & FAQ
Common Issues
FAQ
Q: Can I use my own phone number? A: No, GoWeBa provisions numbers via Twilio. However, you can port your existing number to Twilio — contact support for the procedure. Q: Can Voice AI take orders? A: Currently, Voice AI can answer questions and book appointments. Voice ordering is planned for a future update. Q: How much does a 5-minute Voice AI call cost? A: Approximately $0.15 in telecom fees (5 min × $0.029/min) + approximately $0.10 in AI fees (~3–4 conversation turns). Estimated total: ~$0.25 per 5-minute call. Q: Are calls encrypted? A: Yes. WebRTC calls are end-to-end encrypted (SRTP). Recordings are stored encrypted at rest in the cloud. Q: Can Voice AI be set to only answer outside business hours? A: Yes, via the IVR schedule configuration. Voice AI can be activated only during specified hours (e.g., 5 PM–9 AM and weekends). Q: How many languages does Voice AI support simultaneously? A: Up to 3 languages with multilingual mode (French, English, Spanish). Each language has its own voice and instructions. Q: How can I improve Voice AI response quality? A: Three levers:
- Optimize the system prompt with precise instructions
- Feed the Knowledge Base with common FAQs
- Test and adjust the formality level and communication style
Best Practices
- Use neural voices — Gabrielle (FR) and Joanna (EN) offer the best quality
- Keep prompts concise — A 200–300 word system prompt is ideal for Voice AI
- Configure fallback — Always have a fallback option (voicemail or transfer)
- Test regularly — Call your own number to verify the customer experience
- Monitor costs — Use call statistics to optimize conversation duration
- Record with consent — Always inform the caller if the call is being recorded
— End of Module 04 —
GoWeBa — Operations Bible Generated May 06, 2026
| Component | Technology | Role |
|---|---|---|
| PSTN Connectivity | Twilio Programmable Voice | Call routing to/from the telephone network |
| Browser Calls | WebRTC via Twilio Client SDK | Softphone built into the web browser |
| Voice AI | Twilio Gather + GPT-4.1 | AI voice agent that understands and responds in natural language |
| SMS | Twilio Programmable SMS | Send/receive text messages |
| IVR | TwiML + configurable IVR | Automated voice menu for routing |
| Recording | Twilio Recording | Call recording with consent |
| Transcription | Twilio STT + post-processing | Real-time and post-call transcription |
| Text-to-Speech | Amazon Polly (via Twilio) | High-quality neural voice in FR/EN/ES |
| Type | Format | Example | Usage |
|---|---|---|---|
| Local | (XXX) XXX-XXXX | +1 (839) 246-9322 | Local calls, SMS, Voice AI — lower cost |
| Toll-free | 1-877-XXX-XXXX | +1 (877) 846-9322 | Professional image, free calls for the customer |
| Parameter | Description | Default |
|---|---|---|
| record | Record the call | false (opt-in) |
| browserCall | Use WebRTC (browser) | true |
| fromPhoneNumberId | Specific source number | First available number |
| maxDuration | Maximum call duration | 60 minutes |
| Field | Description |
|---|---|
| Direction | INBOUND or OUTBOUND |
| Caller/Called number | E.164 format with formatted display |
| Duration | In seconds, with mm:ss format |
| Status | COMPLETED, NO_ANSWER, BUSY, FAILED, VOICEMAIL |
| Recording | Link to the audio recording (if enabled) |
| Transcription | Full call transcription (if available) |
| AI Summary | Automatic summary generated by WEBA |
| Action Items | List of tasks extracted from the conversation |
| Associated Contact | Link to the contact card (if recognized) |
| Date/Time | Full timestamp with timezone |
| Parameter | Type | Default | Description |
|---|---|---|---|
| voiceAiEnabled | Boolean | false | Enable/disable Voice AI on this number |
| voiceAiGreeting | Text | null | Greeting message spoken at the start of the call |
| voiceAiSystemPrompt | Text | null | Instructions for the LLM (personality, knowledge, limits) |
| voiceAiLanguage | Code | fr-CA | Primary language (fr-CA, en-US, en-CA, es-MX, es-ES) |
| voiceAiVoice | Identifier | Polly.Lea | Text-to-speech voice (Amazon Polly via Twilio) |
| voiceAiMaxTurnsSec | Number | 180 | Maximum duration of a speaking turn (30–600 sec) |
| voiceAiFallback | Enum | VOICEMAIL | Action if Voice AI can't respond |
| voiceAiMultiLang | Boolean | false | Enable multilingual menu |
| voiceAiConfig | JSON | null | Advanced multilingual configuration |
| Identifier | Name | Language | Gender | Type |
|---|---|---|---|---|
| Polly.Lea | Léa | French | Female | Standard |
| Polly.Gabrielle | Gabrielle | French | Female | Neural (HD) |
| Polly.Mathieu | Mathieu | French | Male | Standard |
| Polly.Joanna | Joanna | English | Female | Neural (HD) |
| Polly.Matthew | Matthew | English | Male | Neural (HD) |
| Polly.Mia | Mia | Spanish | Female | Standard |
| Polly.Lucia | Lucia | Spanish | Female | Neural (HD) |
| Polly.Sergio | Sergio | Spanish | Male | Standard |
| Action | Description |
|---|---|
| VOICEMAIL | The caller is directed to voicemail |
| TRANSFER | The call is transferred to a human phone number |
| HANGUP | The call is ended politely with an apology message |
| Type | Direction | Raw Cost (~) | User Cost (×1.30) |
|---|---|---|---|
| Local SMS | Outbound | ~$0.0075 CAD | ~$0.01 CAD |
| Local SMS | Inbound | ~$0.0075 CAD | ~$0.01 CAD |
| Toll-free SMS | Outbound | ~$0.0075 CAD | ~$0.01 CAD |
| Toll-free SMS | Inbound | ~$0.0075 CAD | ~$0.01 CAD |
| MMS (image) | Outbound | ~$0.02 CAD | ~$0.026 CAD |
| Criteria | Traditional IVR | Voice AI |
|---|---|---|
| Interaction type | Touchtone menu (DTMF) | Natural language conversation |
| Intelligence | Fixed, rule-based | Adaptive AI, context-aware |
| Configuration | TwiML / IVR Greeting | System prompt + Knowledge Base |
| Languages | Pre-recorded | Automatic detection and adaptation |
| Cost | Free (included) | AI credits per conversation |
| Use case | Simple routing, business hours | Customer support, appointments, FAQ |
| Metric | Description |
|---|---|
| Total calls | Total number of calls (inbound + outbound) |
| Inbound calls | Number of calls received |
| Outbound calls | Number of calls made |
| Average duration | Average call duration in seconds |
| Answer rate | Percentage of answered vs. missed calls |
| Voice AI calls | Number of calls handled by the voice agent |
| Voicemails | Number of voicemail messages received |
| SMS sent | Total outbound SMS |
| SMS received | Total inbound SMS |
| Item | Raw Cost | Margin | User Cost |
|---|---|---|---|
| Local number / month | ~$2.00/month | ×1.30 | ~$2.60/month |
| Toll-free number / month | ~$3.00/month | ×1.30 | ~$3.90/month |
| Local call minute | ~$0.013/min | ×1.30 | ~$0.017/min |
| Toll-free call minute | ~$0.022/min | ×1.30 | ~$0.029/min |
| Voice AI: LLM cost | Variable | ×1.40 | Standard AI rate |
| SMS | ~$0.0075/msg | ×1.30 | ~$0.01/msg |
| Issue | Likely Cause | Solution |
|---|---|---|
| No sound during call | Mic/speaker not authorized | Check browser permissions (chrome://settings/content/microphone) |
| Call won't connect | Invalid or unprovisioned number | Verify E.164 format (+1XXXXXXXXXX) |
| Voice AI not responding | voiceAiEnabled = false | Enable Voice AI in Admin → Phone |
| Robotic voice | Standard voice being used | Switch to a neural voice (Gabrielle, Joanna) |
| SMS not received | Number not activated for SMS | Verify the number supports SMS (Twilio) |
| Empty transcription | Call too short or background noise | Ensure recording is enabled and call lasts > 5 sec |
| AI summary unavailable | Insufficient credits | Top up the credit wallet |
| Echo during call | Speaker too loud | Use a headset, lower the volume |
| Call cut off after 3 min | voiceAiMaxTurnsSec too low | Increase max duration (180 → 600 sec) |
| High costs | Long calls with Voice AI | Optimize the system prompt for shorter responses |