Telephony & Voice
Make and receive calls from the browser with click-to-dial, AI voice agents, voicemail transcription, and post-call analysis.
CRM Factory includes a browser-based softphone powered by the Twilio Voice SDK. Make outbound calls, receive inbound calls with screen pops, and let AI handle voicemail intake — all without leaving the CRM.
Softphone
The softphone widget is available in the app header for all internal users. It provides:
- Dial pad with E.164 phone number normalization
- Mute and hold controls during active calls
- DTMF tone input for navigating IVR menus
- Call dispositions — Log the outcome (connected, voicemail, no answer, busy, wrong number) after each call
- Post-call notes with rich text support
The softphone initializes the Twilio Voice SDK on first use, fetching an access token from the server. Tokens auto-refresh before expiry.
Click-to-Dial
Every phone number in the CRM is a click-to-dial link. Click a phone number on any contact, account, lead, case, task, or opportunity record to instantly dial from the softphone.
For server-side dialing without the softphone widget, use the ClickToDial button which calls the telephony adapter directly.
Inbound Calls
Screen Pop
When an inbound call arrives, a screen pop notification appears showing:
- Matched contact name and company
- Associated account, open cases, and active opportunities
- Quick links to navigate directly to the relevant record
Screen pops are delivered via server-sent events (SSE) from /api/v1/events/stream.
AI Voice Agent
Inbound calls can be routed to an AI voice agent that uses:
- Deepgram for real-time speech-to-text
- Claude for conversation intelligence and tool use
- ElevenLabs for natural text-to-speech
The AI agent can look up customer information, check order status, and create cases — then hand off to a human agent when needed. Enable with VOICE_AGENT_ENABLED=true or pass mode=ai in the TwiML URL.
Voicemail
When the AI agent is not enabled or the call goes unanswered, callers hear a greeting and can leave a voicemail. The voicemail pipeline:
- Records the message via Twilio
<Record> - Transcribes the audio using OpenAI Whisper
- Analyzes the content with AI to extract intent, urgency, and action items
- Matches the caller to an existing contact
- Creates an activity record (and optionally a case)
- Notifies the assigned user via SMS
Post-Call Analysis
After a call ends and a recording is available, CRM Factory automatically:
- Transcribes the full call via Whisper
- Generates an AI analysis with summary, action items, sentiment, and topics
- Stores everything on the call activity record
View call analysis from the activity timeline on any contact, account, or case record. The CallActivityCard shows direction, duration, disposition, full transcript, and AI insights.
Call Activity Logging
Every call — inbound and outbound — is automatically logged as an activity with:
| Field | Description |
|---|---|
direction | inbound or outbound |
duration | Call length in seconds |
disposition | Agent-set outcome code |
recordingUrl | Link to the call recording |
transcript | Full transcription text |
aiAnalysis | Structured AI insights (summary, action items, sentiment, topics) |
Provider Setup
Twilio (Full Feature Set)
Twilio is the primary provider with the deepest integration:
- Navigate to Settings → Integrations → Telephony → Twilio
- Enter your Account SID, Auth Token, and API Key / Secret
- Select a phone number from your Twilio account
- CRM Factory automatically configures the TwiML App and webhook URLs
Features: softphone, click-to-dial, call recording, real-time transcription, AI voice agent, post-call analysis, voicemail pipeline, screen pop.
Other Providers
Additional telephony providers are supported with click-to-dial and webhook-based call logging:
| Provider | Setup |
|---|---|
| Aircall | API key + webhook configuration |
| RingCentral | OAuth + webhook configuration |
| Nextiva | API credentials + webhook configuration |
| Masergy | API credentials + webhook configuration |
Navigate to Settings → Integrations → Telephony → [Provider] for the guided setup wizard.
API
Get Telephony Status
GET /api/v1/telephony/statusReturns the current telephony configuration: availability, mode, provider, phone number, and connection ID.
Dial
POST /api/v1/telephony/dial
Content-Type: application/json
{
"to": "+15551234567",
"contactId": "cnt_abc123"
}Log Disposition
POST /api/v1/telephony/disposition
Content-Type: application/json
{
"callSid": "CA...",
"disposition": "connected",
"notes": "Discussed renewal timeline"
}Voice Dictation
Separate from telephony calls, CRM Factory offers a voice dictation button on text fields. Press the microphone icon to dictate notes, case descriptions, or any text input using real-time Deepgram speech-to-text in the browser.