Skip to content

VoIP Calling

SellerCockpit includes browser-based calling powered by Twilio Voice SDK. Make and receive calls directly from your CRM without switching to a phone or separate dialer.

Overview

VoIP calling in SellerCockpit offers:

  • Browser-Based: Make calls directly from Chrome, Firefox, Safari, or Edge
  • WebRTC Technology: High-quality voice calls over the internet
  • Automatic Recording: All calls recorded with GDPR consent
  • Activity Logging: Calls automatically logged to contact timeline
  • AI Transcription: Call transcripts generated automatically (optional)
  • Multi-Tenant BYOK: Bring Your Own Keys - use your own Twilio account

Key Features

One-Click Calling

Click the phone icon next to any contact name to initiate a call instantly. No need to dial numbers manually.

In-Browser Interface

All call controls available in a clean interface:

  • Mute/unmute microphone
  • End call button
  • Call timer
  • Recording indicator
  • Network quality indicator

GDPR Compliance

Before recording any call, SellerCockpit:

  1. Checks if contact has consented to recording
  2. Displays consent dialog if no consent on file
  3. Updates contact record with consent preference
  4. Only records after explicit consent obtained

Automatic Activity Logging

When a call ends:

  • Call duration recorded
  • Recording uploaded to secure storage
  • Activity created and linked to contact
  • Notes field available for call summary
  • Deal association (if applicable)

Call Recordings

All recordings are:

  • Stored securely in Supabase Storage
  • Accessible only to authorized team members
  • Organized by user, year, and month
  • Retained according to your data retention policy
  • Downloadable for offline review

Getting Started with VoIP

Prerequisites

To use VoIP calling, you need:

  1. A Twilio account (sign up at twilio.com)
  2. A Twilio phone number
  3. API credentials (Account SID, API Keys)
  4. A modern web browser with microphone access

Setting Up Twilio (BYOK Model)

SellerCockpit uses a “Bring Your Own Keys” model - you provide your own Twilio credentials:

Step 1: Create Twilio Account

  1. Sign up at twilio.com
  2. Complete account verification
  3. Add billing information (required for outbound calls)

Step 2: Get a Phone Number

  1. In Twilio Console, go to Phone Numbers > Manage > Buy a number
  2. Select your country and desired area code
  3. Choose a number with Voice capabilities
  4. Purchase the number

Step 3: Create TwiML App

  1. Go to Voice > TwiML Apps in Twilio Console
  2. Click Create new TwiML App
  3. Name it “SellerCockpit”
  4. Leave Voice URLs empty for now
  5. Save and note the TwiML App SID (starts with AP…)

Step 4: Generate API Keys

  1. Go to Account > API keys & tokens
  2. Click Create API key
  3. Give it a friendly name (e.g., “SellerCockpit Production”)
  4. Select “Standard” key type
  5. Save the SID and Secret (you won’t see the secret again!)

Step 5: Configure SellerCockpit

  1. In SellerCockpit, go to Settings > Twilio
  2. Enter your credentials:
    • Account SID: Found in Twilio Console dashboard
    • API Key SID: From Step 4
    • API Key Secret: From Step 4
    • TwiML App SID: From Step 3
    • Phone Number: Your Twilio number in E.164 format (e.g., +14155551234)
  3. Select region: US1 (recommended)
  4. Click Save Settings
  5. Click Test Connection to verify

Region Selection

Important: Use US1 region for best compatibility.

  • US1: United States (Virginia) - Recommended for all customers
  • IE1: Ireland - Europe region (may cause TwiML fetch errors)

Even if you’re based in Europe, US1 is the recommended region as it has better TwiML app compatibility.

Browser Permissions

When making your first call:

  1. Your browser will request microphone access
  2. Click Allow to grant permission
  3. Permission is remembered for future calls

If calls aren’t working, check browser permissions:

  • Chrome: Settings > Privacy and security > Site settings > Microphone
  • Firefox: Preferences > Privacy & Security > Permissions > Microphone
  • Safari: Preferences > Websites > Microphone

Making a Call

From Contact Detail Page

  1. Navigate to any contact
  2. Click the Call button (phone icon) next to contact name
  3. If no consent on file, consent dialog appears:
    • Click Get Consent to ask contact for permission
    • Click Already Have Consent if obtained outside CRM
    • Click Call Without Recording to proceed without recording
  4. Call initiates automatically
  5. In-call interface appears with controls

From Deal Card

  1. On the Pipeline board, hover over a deal card
  2. Click the phone icon
  3. Select which contact to call (primary contact or other)
  4. Follow consent flow if needed
  5. Call initiates

From Organizations List

  1. On the Organizations page, find the company
  2. Click the phone icon next to organization name
  3. Select which contact at the organization to call
  4. Follow consent flow if needed
  5. Call initiates

During a Call

The in-call interface provides:

Call Timer

Shows elapsed time in MM:SS format. Useful for tracking call duration for billing or notes.

Mute Button

Toggle microphone on/off:

  • Blue: Microphone active
  • Red: Muted (contact can’t hear you)

Use mute when:

  • Consulting notes or teammates
  • Dealing with background noise
  • Placing contact on temporary hold

Recording Indicator

Shows if call is being recorded:

  • Red dot: Recording active
  • Gray: Not recording (no consent or disabled)

Network Quality

Connection quality indicator:

  • Green: Excellent quality
  • Yellow: Fair quality (may have some latency)
  • Red: Poor quality (call may drop)

If quality degrades:

  • Close other browser tabs
  • Check your internet connection
  • Move closer to WiFi router
  • Disable VPN temporarily

End Call Button

Click to terminate the call. Call data is saved automatically.

After a Call

When you click End Call, the Call Summary modal appears:

Call Summary Modal

Pre-filled information:

  • Contact: Who you called
  • Duration: Length of call
  • Date/Time: When call occurred
  • Recording: Link to recording (if enabled)

Additional fields:

  • Outcome: Successful, No Answer, Voicemail, Busy
  • Notes: Summary of conversation (required)
  • Deal Association: Link call to a specific deal (optional)
  • Follow-up Task: Create reminder for next action (optional)

Click Save Activity to log the call.

What Gets Saved

When you save:

  1. Activity record created in database
  2. Call recording uploaded to secure storage
  3. Contact’s activity timeline updated
  4. Deal’s activity timeline updated (if associated)
  5. Follow-up task created (if specified)
  6. Team notification sent (if configured in workflows)

Call Recordings Storage

Recordings are stored with this structure:

{user_id}/{year}/{month}/{call_id}.webm

Example: a1b2c3d4/2025/12/call_20251208_143022.webm

Access controls ensure:

  • Only authenticated users can access recordings
  • Users can only access their own company’s recordings
  • Recordings respect row-level security policies

AI Transcription (Optional)

Enable AI transcription for automatic call summaries:

Setup

  1. Go to Settings > Integrations
  2. Enable AI Call Transcription
  3. Enter your Gemini API key (or use provided key)
  4. Configure transcription settings:
    • Auto-transcribe: All calls or only calls >2 minutes
    • Language: Default language for transcription
    • Summary length: Brief, detailed, or custom
  5. Save settings

What Gets Transcribed

After each call:

  • Full transcript of conversation
  • Summary of key points discussed
  • Action items identified
  • Sentiment analysis (positive, neutral, negative)
  • Keywords and topics mentioned

Viewing Transcripts

  1. Open any call activity
  2. Click View Transcript tab
  3. See full transcript with timestamps
  4. See AI-generated summary
  5. Copy text or download as PDF

Transcription Accuracy

Factors affecting accuracy:

  • Good: Clear speech, minimal background noise, quality connection
  • Fair: Accents, industry jargon, overlapping speakers
  • Poor: Loud background, poor connection, muffled audio

Always review transcripts before sharing externally.

Troubleshooting

Call Won’t Connect

Symptoms: Click call button but nothing happens

Solutions:

  1. Check browser microphone permissions
  2. Verify Twilio credentials in Settings
  3. Ensure phone number in E.164 format (+1234567890)
  4. Check browser console for errors
  5. Try different browser (Chrome recommended)

Poor Call Quality

Symptoms: Choppy audio, delays, echoes

Solutions:

  1. Check your internet connection speed (need 1+ Mbps)
  2. Close bandwidth-heavy applications (video streaming, downloads)
  3. Use wired internet instead of WiFi
  4. Disable VPN or firewall temporarily
  5. Try different time of day (network congestion)

Recording Not Saving

Symptoms: Call completes but recording missing

Solutions:

  1. Verify consent was obtained before call
  2. Check browser console for upload errors
  3. Ensure Supabase Storage is configured correctly
  4. Check storage quota (may be full)
  5. Try shorter test call

Microphone Not Working

Symptoms: Contact can’t hear you

Solutions:

  1. Check microphone isn’t muted in OS settings
  2. Test microphone in other applications
  3. Try different microphone/headset
  4. Check browser has microphone permission
  5. Restart browser

Error 31000: TwiML Fetch Failed

Symptoms: Call fails with Twilio Error 31000

Solutions:

  1. Switch to US1 region (Settings > Twilio)
  2. Verify TwiML App SID is correct
  3. Check Twilio account isn’t suspended
  4. Ensure no URL configured in TwiML app
  5. Contact Twilio support if persists

Best Practices

Before Calling

  • Review contact’s recent activity history
  • Check for notes from previous calls
  • Have deal context ready
  • Ensure quiet environment
  • Test microphone and speakers

During Calls

  • Take notes in real-time (use mute button)
  • Stay focused (close distracting tabs)
  • Be mindful of call duration
  • Monitor network quality indicator
  • Save important details immediately

After Calls

  • Complete call summary while fresh in memory
  • Create follow-up tasks immediately
  • Associate call with relevant deal
  • Tag calls by topic or outcome
  • Share insights with team if relevant

GDPR Compliance

  • Always obtain explicit consent before recording
  • Document consent in contact record
  • Honor requests to delete recordings
  • Inform contacts at start of call if recording
  • Store recordings securely with encryption

Security

  • Never share Twilio API credentials
  • Rotate API keys quarterly
  • Use strong passwords for Twilio account
  • Enable two-factor auth on Twilio account
  • Monitor usage for unusual activity

Keyboard Shortcuts

Speed up calling with keyboard shortcuts:

  • Ctrl/Cmd + K - Quick call (opens contact search)
  • Space - Toggle mute during call
  • Esc - End current call (with confirmation)
  • Ctrl/Cmd + Enter - Save call summary

Integrations

With Pipeline

  • Call contacts directly from deal cards
  • Calls logged to deal timeline
  • Track calls per deal stage
  • Identify deals needing follow-up calls

With Workflows

  • Trigger workflows on call completion
  • Auto-create tasks after calls
  • Send notifications for missed calls
  • Escalate deals based on call outcomes

With Email Sync

  • See emails sent before/after calls
  • Complete communication timeline
  • Use call context in email follow-ups
  • Track email open rates post-call

With Calendar

  • Schedule follow-up calls as calendar events
  • See upcoming calls in calendar view
  • Block time for prospecting calls
  • Sync call tasks with Google Calendar

Pricing and Limits

Twilio Costs (BYOK Model)

You pay Twilio directly for:

  • Phone number rental (~$1/month)
  • Outbound calls (varies by destination, ~$0.01-0.02/minute)
  • Inbound calls (if configured, ~$0.01/minute)
  • Recording storage on Twilio (minimal)

SellerCockpit Limits

  • No per-call fee from SellerCockpit
  • Unlimited calls (subject to your Twilio account limits)
  • Call recordings stored in your Supabase storage quota
  • Transcription may have usage limits (if using shared API key)

Storage Considerations

  • Average call recording: 1-2 MB/minute
  • 100 hours of calls: ~10-12 GB storage
  • Supabase free tier: 1 GB (upgrade as needed)
  • Implement retention policy to auto-delete old recordings

FAQ

Can I use my existing business phone number? Yes, you can port your existing number to Twilio. Contact Twilio support to initiate the port.

Do contacts see my Twilio number or my personal number? Contacts see your Twilio number as the caller ID. You can customize the friendly name.

Can I receive inbound calls? Inbound calling is on the roadmap but not yet available. Currently outbound only.

What happens if I’m on a call and close my browser? The call will disconnect immediately. Keep browser open during calls.

Can multiple team members use the same Twilio account? Yes, all team members share your company’s Twilio account and phone number.

Is video calling supported? Not currently. Audio-only calls are supported at this time.

Next Steps


Need help? Contact support at support@sellercockpit.com