Skip to main content

Twilio Integration

Connect Twilio to Expedify for AI-powered voice calling globally. Make and receive calls worldwide with AI agents, automate customer support across countries, and build intelligent voice workflows.

What is Twilio?

Twilio is the world's leading cloud communications platform that provides:

  • Global Voice Calling: Make and receive calls in 100+ countries
  • Programmable Phone Numbers: Virtual numbers from any country
  • Call Recording: Automatic recording and storage
  • TwiML: Powerful XML-based call flow scripting
  • Advanced Analytics: Real-time call metrics and insights

Why Use Twilio with Expedify?

  • Global Reach: Call customers anywhere in the world with local numbers
  • AI Voice Agents: Build intelligent bots that converse naturally in multiple languages
  • Automated Outbound Calling: Trigger AI calls from workflows (reminders, surveys, follow-ups)
  • Smart Inbound Routing: Route calls to AI agents or teams based on complex logic
  • Call Transcription: Convert all calls to searchable text automatically
  • Reliability: Enterprise-grade uptime and call quality
  • Workflow Integration: Seamless CRM and automation integration

Prerequisites

Before setting up Twilio integration, you need:

  1. Twilio Account: Active account with verified identity
  2. Account Credentials: Account SID and Auth Token
  3. Phone Number: At least one Twilio phone number (purchased from Twilio)
  4. Billing Credits: Sufficient balance for calls and phone number rental
  5. Verified Caller IDs: For outbound calls (if not using Twilio number)

Getting Your Twilio Account Credentials

Step 1: Log into Twilio Console

  1. Go to Twilio Console
  2. Log in with your Twilio account credentials

Step 2: Find Your Account Credentials

On the Twilio Console homepage, you'll see your Account Info panel:

CredentialDescriptionFormatWhere to Find
Account SIDYour unique account identifierStarts with ACConsole homepage, top section
Auth TokenAuthentication token for API access32-character stringConsole homepage (click "Show" to reveal)

Important Notes:

  • Account SID: Always visible, starts with AC (e.g., ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
  • Auth Token: Hidden by default - click the eye icon or Show button to reveal
  • Keep these credentials secure - they provide full access to your Twilio account
  • Never share them publicly or commit to version control

Step 3: Copy Your Credentials

  1. Click Copy next to Account SID
  2. Click Show to reveal Auth Token, then Copy
  3. Save both in a secure location (you'll need them in Expedify)

Getting Twilio Phone Numbers

Option 1: Purchase a New Phone Number

  1. In Twilio Console, click Phone NumbersManageBuy a number
  2. Select your country (e.g., United States, United Kingdom, India)
  3. Choose number type:
    • Local: City-specific number (e.g., New York: +1 212...)
    • Toll-Free: Free for callers (e.g., +1 800...)
    • Mobile: Mobile-friendly number
  4. Filter by capabilities needed:
    • Voice: For making/receiving calls (required)
  5. Search for available numbers
  6. Click Buy on your preferred number
  7. Confirm purchase (you'll be charged monthly rental + usage)

Number Rental Costs (approximate):

  • US/Canada Local: $1/month
  • US/Canada Toll-Free: $2/month
  • International: Varies by country ($1-$10/month)

Option 2: Use an Existing Number

If you already have Twilio phone numbers:

  1. Go to Phone NumbersManageActive numbers
  2. You'll see your list of purchased numbers
  3. Note the phone numbers you want to use with Expedify

Phone Number Format: All Twilio numbers are in E.164 format

  • Example US: +12025551234
  • Example UK: +442071234567
  • Example India: +919876543210

Setting Up Twilio Integration in Expedify

Step 1: Open Twilio Integration Settings

  1. In Expedify, go to SettingsIntegrations
  2. Find Twilio under the Telephony category
  3. Click Configure

Step 2: Enter API Credentials

In the integration configuration modal, fill in:

FieldDescriptionExampleNotes
Integration NameName to identify this integration"My Twilio Account"Your choice
Account SIDYour Twilio Account SIDAC1234567890abcdef1234567890abcdFrom Console homepage
Auth TokenYour Twilio Auth Tokena1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6From Console (click Show)

Step 3: Add Phone Numbers (Caller IDs)

In the Phone Numbers section:

  1. Click Add Phone Number
  2. Enter your Twilio phone number in E.164 format
  3. Important format rules:
    • ✅ Include country code: +12025551234
    • ✅ Include + symbol: +442071234567
    • ❌ No spaces or dashes: NOT +1-202-555-1234
    • ❌ No parentheses: NOT +1 (202) 555-1234
  4. Set as Primary (optional - for default outbound calling)
  5. Click Add
  6. Repeat to add multiple phone numbers

You can add multiple phone numbers for:

  • Different countries (US, UK, India numbers)
  • Different departments (Sales, Support)
  • Different campaigns (Marketing, Customer Service)

Step 4: Enable Call Features (Optional)

Configure optional features:

FeatureDescriptionWhen to Enable
Call RecordingAutomatically record all callsAlways recommended for quality/compliance
Call TranscriptionConvert recordings to textIf you need searchable call content

Step 5: Save Integration

  1. Click Save at the bottom
  2. Wait for confirmation: "Twilio integration configured successfully"
  3. Status will show as Connected (green indicator)

Step 6: Copy Status Callback URL

After saving, Expedify displays a Status Callback URL needed for call updates:

  1. Status Callback URL: For call status updates (answered, completed, failed, etc.)

Keep this URL handy - you'll configure it in Twilio phone number settings for inbound calls.


Testing Manual Calls

Before setting up AI automation, verify basic calling works:

Make a Test Outbound Call

  1. In Expedify, go to any Contact in your CRM
  2. Click the Call button (phone icon)
  3. Select your Twilio integration
  4. Choose which Twilio phone number to call from
  5. The call will be initiated immediately
  6. Verify the call connects successfully

Verify Call Logs

After the call:

  1. Go to CallsCall History in Expedify
  2. You should see the call record with:
    • Duration
    • Status (completed, busy, no-answer, failed)
    • Recording (if enabled)
    • Cost (billed by Twilio)

Also check Twilio Console:

  1. Go to MonitorLogsCalls
  2. Verify the call appears in Twilio's call log
  3. Check billing details

If calls fail, check:

  • Account SID and Auth Token are correct
  • Twilio account has sufficient credits
  • Phone number is active (not suspended)
  • Phone number has Voice capability enabled
  • Recipient number is valid and reachable

Setting Up AI Outbound Calling

To make AI-powered outbound calls that hold intelligent conversations:

Overview: What You'll Build

When you trigger an outbound AI call from Expedify:

  1. Expedify tells Twilio to make the call
  2. When customer answers, Twilio connects to Expedify's AI
  3. AI agent converses with the customer naturally
  4. Call recording and transcript saved automatically
  5. Call outcome updates your CRM

Create Outbound Call Workflow in Expedify

Step 1: Create Workflow

  1. In Expedify, go to AutomationWorkflows
  2. Click Create Workflow
  3. Name it: "AI Outbound Call - [Purpose]" (e.g., "AI Outbound Call - Appointment Reminders")

Step 2: Add Trigger

Choose a trigger based on your use case:

  • Scheduled: Run at specific time (e.g., daily at 9 AM)
  • Contact Created: When new lead added
  • Deal Stage Changed: When deal moves to "Follow-up" stage
  • Button Click: Manual trigger from CRM
  • Database Trigger: When record updated

Step 3: Add Make Outbound Call Node

  1. Click Add NodeVoice ActionsMake Outbound Call
  2. Configure the node:
FieldValueExample / Notes
IntegrationSelect Twilio integrationFrom dropdown
ToRecipient's phone number{{contact.phone}} or +12025551234
FromYour Twilio phone numberSelect from your configured numbers
Voice AgentSelect AI agentChoose which AI will talk
LanguageAgent languageEnglish, Spanish, French, etc.
VoiceAI voice typeMale/Female, accent options
Max DurationCall timeout300 seconds (5 min) default

Important: Ensure the To number is in E.164 format (+ followed by country code and number)

Step 4: Configure AI Agent Behavior

In the Voice Agent settings:

  1. Persona: Define how AI should behave
    • Example: "You are a friendly customer service representative from Acme Corp"
  2. Opening Line: What AI says first
    • Example: "Hi, this is Sarah from Acme. I'm calling about your recent order."
  3. Knowledge Base: Information AI can reference
    • Link relevant documents, FAQs, product info
  4. Actions: What AI can do during call
    • Create tasks, update CRM fields, transfer to human, schedule callbacks
  5. Transfer Options: When/how to transfer to human
    • Keywords: "speak to a person", "manager", "human"
    • Conditions: Complex queries AI can't handle

Step 5: Add Post-Call Actions (Optional)

After the call node, add actions based on call outcome:

If call status = "completed" and duration > 60 seconds:
├─ Update contact status to "Contacted"
├─ Create task: "Follow up on AI call"
└─ Log call outcome

If call status = "no-answer" or "busy":
├─ Update contact status to "No Answer"
└─ Schedule retry call in 2 hours

Step 6: Test the Workflow

  1. Click Save and Publish
  2. Click Test or manually trigger
  3. Call should be made to test number
  4. AI should converse when call is answered
  5. Check Workflow Execution Logs for details

Note: For outbound calls, Expedify handles all webhook routing automatically. You only need to configure the Status Callback URL for inbound calls (covered in next section).


Setting Up AI Inbound Calling

To handle incoming calls with AI agents:

Overview: What You'll Build

When someone calls your Twilio number:

  1. Twilio receives the call
  2. Twilio connects to Expedify based on webhook configuration
  3. Expedify's AI agent answers and converses
  4. Call recording and transcript saved
  5. CRM updated with call details

Part 1: Configure Phone Number for Inbound

Step 1: Access Phone Number Settings

  1. In Twilio Console, go to Phone NumbersManageActive numbers
  2. Click on the phone number you want to configure for inbound AI

Step 2: Configure Voice Webhook

Scroll to Voice & Fax section:

SettingValueNotes
Accept IncomingVoice Calls✅ Enable
Configure WithWebhooksSelect this option
A Call Comes InPaste Inbound Voice URL from ExpedifyThis is the webhook URL
MethodHTTP POSTRequired
Primary Handler Fails(Optional) Fallback URLBackup if Expedify unreachable
Fallback MethodHTTP POSTIf using fallback

Where to get Inbound Voice URL:

  • Go to Expedify → Settings → Integrations → Twilio
  • Copy the Inbound Voice URL (looks like: https://api.expedify.ai/voice/twilio/inbound/...)

Step 3: Configure Status Callback

Still in Voice & Fax section, scroll to Call Status Changes:

SettingValueNotes
Status Callback URLPaste Status Callback URL from ExpedifyFor call status updates
MethodHTTP POSTRequired
EventsSelect all: Ringing, Answered, Completed✅ Check all

Step 4: Enable Call Recording

In Call Recording section:

SettingValueNotes
Record CallsRecord from AnswerRecommended
Recording ChannelsMono or DualMono is sufficient
Trim Silence✅ Enable (optional)Removes silence from recordings

Why Record from Answer?:

  • "Record from Ringing" includes ring time (unnecessary)
  • "Record from Answer" starts when call is answered (saves storage)

Step 5: Save Configuration

  1. Scroll to bottom and click Save
  2. Your phone number is now configured to route inbound calls to Expedify AI

Part 2: Configure Default AI Agent in Expedify

Step 1: Set Default Inbound Agent

  1. In Expedify, go to SettingsIntegrationsTwilio
  2. Find Default Inbound Agent setting
  3. Select your AI voice agent from dropdown
  4. This agent handles all inbound calls unless a workflow overrides it
  5. Click Save

Step 2: Create AI Voice Agent (If Needed)

If you haven't created a voice agent yet:

  1. Go to AutomationAI AgentsCreate Agent
  2. Select Voice Agent type
  3. Configure:
SettingExampleNotes
Name"Customer Support AI"Internal name
LanguageEnglish (US)Or your language
VoiceFemale, ProfessionalChoose from available voices
Persona"You are a helpful support agent..."How AI should behave
Greeting"Thanks for calling Acme Corp, how can I help you today?"First thing AI says
Knowledge BaseSelect relevant KBsInfo AI can reference
ActionsCreate Task, Update Contact, Transfer CallWhat AI can do
  1. Click Save and Publish

Part 3: Create Inbound Call Routing Workflow (Advanced)

For intelligent call routing based on conditions:

Step 1: Create Workflow

  1. Go to AutomationWorkflowsCreate Workflow
  2. Name: "Inbound Call Router"

Step 2: Add Inbound Call Trigger

  1. Set trigger: Inbound Call Received
  2. Configure:
    • Integration: Twilio
    • Phone Number: Specific number or "Any"

Step 3: Add Routing Logic

Example routing workflow:

Trigger: Inbound Call Received
├─ Check business hours
│ ├─ If business hours (9 AM - 5 PM):
│ │ ├─ Check caller's contact record
│ │ │ ├─ If existing customer:
│ │ │ │ ├─ Check recent tickets
│ │ │ │ ├─ Route to Support AI (with context)
│ │ │ │ └─ Create support ticket
│ │ │ └─ If new caller:
│ │ │ ├─ Route to Sales AI
│ │ │ ├─ Create new contact
│ │ │ └─ Qualify lead
│ └─ If after hours:
│ ├─ Route to After-Hours AI
│ ├─ AI: "We're currently closed. Can I take a message?"
│ ├─ Collect caller info
│ └─ Create task for next day

Routing Conditions:

  • Time of day (business hours vs after hours)
  • Day of week (weekday vs weekend)
  • Caller phone number (existing contact vs new)
  • IVR menu selection (if using digit input)
  • Call queue availability
  • Agent availability

Step 4: Test Inbound Calling

  1. From your mobile phone, call your Twilio number
  2. AI should answer and greet you
  3. Have a conversation to test AI responses
  4. Verify in Expedify:
    • Call Logs: See call record with details
    • Recording: Play the call recording
    • Transcript: Read what was said
    • CRM Update: Check if contact was created/updated

Call Recording & Transcription

Automatic Call Recording

When Recording is Enabled:

  • All calls (inbound and outbound) are automatically recorded
  • Recordings stored in Twilio (up to retention period)
  • Expedify fetches and displays recordings in call logs
  • Play recordings directly in Expedify interface

Recording Settings:

  • Mono: Single channel (both speakers mixed)
  • Dual: Two channels (caller and agent separate)
  • Trim Silence: Removes silent periods (saves storage)

Recording Retention:

  • Twilio stores recordings based on your account settings
  • Default: 30 days (can extend with Twilio settings)
  • Download important recordings to permanent storage

Call Transcription

Expedify can automatically transcribe Twilio call recordings:

To Enable Transcription:

  1. Go to SettingsIntegrationsTwilio
  2. Check Enable Call Transcription
  3. Select transcription language (English, Spanish, etc.)
  4. Save integration

Transcription Features:

  • Speech-to-text conversion (90%+ accuracy)
  • Speaker diarization (identifies who said what)
  • Timestamps for each statement
  • Keyword search across all transcripts
  • Sentiment analysis (positive/negative tone detection)
  • Action item extraction (AI identifies tasks mentioned)

Transcription Processing:

  • Starts automatically after call ends
  • Takes 2-5 minutes depending on call length
  • Appears in call logs when ready
  • Transcript is searchable and analyzable

Transcription Costs:

  • Charged per minute of audio
  • Typical rate: $0.02-0.05 per minute
  • Check your Expedify plan for exact pricing

Using Twilio in Workflows

Outbound Call Actions

AI-Powered Calls:

  • Use Case: Appointment reminders, lead qualification, surveys
  • Trigger: Scheduled, contact created, deal stage changed
  • Node: Make Outbound Call → Select Voice Agent
  • Result: AI converses naturally, updates CRM automatically

Manual Calls (Click-to-Call):

  • Use Case: Sales rep wants to call from CRM
  • Trigger: Button click, manual execution
  • Node: Make Outbound Call → No AI agent (connects to rep)
  • Result: Call placed immediately, logged automatically

Inbound Call Triggers

Call Received Trigger:

  • Event: Inbound Call Received
  • Conditions: Time of day, caller identity, phone number
  • Actions: Route to AI, create ticket, notify team, update CRM

Call Completed Trigger:

  • Event: Call Ended
  • Conditions: Call duration, outcome, caller satisfaction
  • Actions: Create follow-up task, score lead, send email

Example Workflows

Appointment Reminder with Confirmation

Trigger: Scheduled (1 day before appointment)
├─ Make Outbound Call (AI)
│ ├─ AI: "Hi, reminder about your appointment tomorrow at 2 PM. Can you confirm?"
│ ├─ Customer: "Yes" → Update appointment status: Confirmed
│ └─ Customer: "Need to reschedule" → AI collects new time
└─ Update CRM with call outcome

Lead Qualification Call

Trigger: New Lead Created (from website form)
├─ Wait: 5 minutes (give them time to expect call)
├─ Make Outbound Call (AI)
│ ├─ AI asks qualifying questions:
│ │ ├─ Budget range?
│ │ ├─ Timeline?
│ │ ├─ Decision maker?
│ ├─ AI scores lead based on responses
│ └─ Updates lead score in CRM
├─ If lead score > 70 (hot lead):
│ ├─ Assign to sales rep immediately
│ ├─ Send email notification to rep
│ └─ Create high-priority task
└─ If lead score < 30 (cold lead):
└─ Add to nurture campaign

Customer Support Escalation

Trigger: Inbound Call Received
├─ Route to Support AI
├─ AI attempts to resolve issue
├─ If AI can't resolve:
│ ├─ AI: "Let me transfer you to a specialist"
│ ├─ Transfer to human agent
│ ├─ Include call context (what customer said)
│ └─ Create support ticket with AI summary
└─ If AI resolves:
├─ AI confirms solution with customer
├─ Mark ticket as resolved
└─ Create follow-up task

Phone Number Formats

Twilio uses E.164 international format for all phone numbers:

E.164 Format Rules

Correct Format:

  • Structure: + + Country Code + Number (no spaces, dashes, or parentheses)
  • US: +12025551234
  • UK: +442071234567
  • India: +919876543210
  • Australia: +61212345678
  • France: +33123456789

Incorrect Formats:

  • (202) 555-1234 (no parentheses or dashes)
  • +1-202-555-1234 (no dashes)
  • +1 202 555 1234 (no spaces)
  • 2025551234 (missing + and country code)
  • 001-202-555-1234 (use +1, not 001)

Common Country Codes

CountryCodeExample
United States / Canada+1+12025551234
United Kingdom+44+442071234567
India+91+919876543210
Australia+61+61212345678
Germany+49+4930123456
France+33+33123456789
Brazil+55+5511987654321
Japan+81+81312345678

Auto-Formatting in Expedify

When you save contact phone numbers:

  1. Expedify automatically converts to E.164 format
  2. Adds country code if missing (based on your account settings)
  3. Removes spaces, dashes, and parentheses
  4. Validates phone number is callable

Best Practice: Always store numbers in E.164 format in your CRM to avoid issues.


Pricing & Billing

Twilio Call Pricing

Outbound Calling Rates (per minute, approximate):

DestinationRateNotes
US/Canada Mobile$0.013Competitive rate
US/Canada Landline$0.011Slightly cheaper
UK Mobile$0.019Europe rates
UK Landline$0.016
India Mobile$0.0059Very affordable
India Landline$0.0129
InternationalVaries$0.01-$0.50/min

Inbound Calling Rates (per minute):

  • US/Canada Local: $0.0085/min
  • US/Canada Toll-Free: $0.022/min
  • International: Varies by country

Phone Number Rental:

  • US/Canada Local: $1.00/month
  • US/Canada Toll-Free: $2.00/month
  • International: $1-$10/month depending on country

Recording & Storage:

  • Call Recording: $0.0025/min
  • Storage: Free for 30 days, then archival fees

Note: Check Twilio Pricing for exact, up-to-date rates.

Expedify Pricing

FeatureCostNotes
Twilio IntegrationFreeNo setup or monthly fee
AI Voice AgentPer minute of conversationBased on your Expedify plan
Call Transcription$0.02-$0.05/minOptional feature
StorageIncludedCall logs, recordings, transcripts

Total Call Cost = Twilio (connectivity) + Expedify (AI + transcription)

Example Cost Breakdown:

  • 10-minute AI call to US mobile:
    • Twilio: $0.13 (10 min × $0.013)
    • Expedify AI: $0.50 (varies by plan)
    • Transcription: $0.30 (10 min × $0.03)
    • Total: $0.93 per call

Troubleshooting

Integration Not Connecting

Issue: "Failed to connect to Twilio" error when saving integration

Solutions:

  1. Verify credentials: Double-check Account SID and Auth Token
    • Account SID should start with AC
    • Auth Token should be exactly 32 characters
    • No extra spaces before/after when pasting
  2. Check account status: Ensure Twilio account is active (not suspended)
  3. Verify payment: Confirm credit card is valid and account has credits
  4. API access: Make sure API access isn't restricted in Twilio settings
  5. Try regenerating: Generate a new Auth Token in Twilio Console

Outbound Calls Not Working

Issue: Calls fail or don't connect

Solutions:

  1. Check account balance: Ensure sufficient Twilio credits
  2. Verify phone number: Confirm "From" number is active in Twilio
  3. Number format: Ensure "To" number is in E.164 format (+12025551234)
  4. Number capabilities: Verify phone number has Voice capability enabled
  5. Geographic permissions: Check if you're allowed to call destination country
    • Go to Twilio Console → Voice → Settings → Geo Permissions
    • Enable countries you want to call
  6. Caller ID verification: For some countries, verify your caller ID with Twilio

Inbound Calls Not Routing to AI

Issue: Incoming calls don't reach Expedify, no AI answer

Solutions:

  1. Check webhook URL: Verify Inbound Voice URL is correctly configured in phone number settings
  2. Webhook format: Ensure URL is exactly as shown in Expedify (no extra characters)
  3. HTTP Method: Confirm webhook is set to HTTP POST (not GET)
  4. Test webhook: Call the number and check Twilio debugger
    • Go to Monitor → Logs → Errors
    • Look for webhook errors
  5. Default agent set: Ensure Default Inbound Agent is selected in Expedify
  6. Network reachable: Verify Expedify webhook URL is publicly accessible

Call Quality Issues

Issue: Poor audio quality, delays, or choppy voice

Solutions:

  1. Check network: Ensure stable internet connection
  2. Server location: Use Twilio edge locations closest to your users
  3. Codec settings: Use preferred audio codec (OPUS recommended)
  4. Call region: Set preferred region in Twilio settings for better routing
  5. Monitor metrics: Check Twilio's Voice Insights for quality metrics

No Call Recording

Issue: Calls complete but recordings not available

Solutions:

  1. Recording enabled: Check "Record Calls" is enabled in phone number settings
  2. Recording method: Ensure "Record from Answer" or "Record from Ringing" is selected
  3. Processing time: Recordings take 1-2 minutes to process, wait and refresh
  4. Storage limit: Verify you haven't exceeded Twilio storage quota
  5. Permissions: Check Twilio account has recording permissions

Transcription Not Generated

Issue: Recordings exist but no transcript

Solutions:

  1. Feature enabled: Verify "Enable Call Transcription" is checked in Expedify
  2. Processing time: Transcripts take 2-5 minutes, be patient
  3. Audio quality: Poor quality audio can't be transcribed accurately
  4. Language: Ensure correct language is selected for transcription
  5. Credits: Verify sufficient Expedify credits for transcription

AI Agent Not Responding

Issue: Call connects but AI doesn't speak

Solutions:

  1. Agent published: Ensure Voice Agent is published (not draft)
  2. Agent selected: Verify agent is selected in workflow node or default settings
  3. Webhook timeout: Check Twilio timeout settings (should be 60+ seconds)
  4. Check logs: Review Workflow Execution logs for error messages
  5. Test agent: Use "Test Agent" feature in Expedify to verify AI works

Best Practices

Call Quality & Reliability

Do:

  • ✅ Test calls in different network conditions before going live
  • ✅ Set up fallback URLs in case primary webhook fails
  • ✅ Monitor call quality metrics in Twilio Console
  • ✅ Use dedicated phone numbers for different purposes
  • ✅ Keep AI agent instructions clear and concise

Don't:

  • ❌ Make calls during customer's night hours (respect time zones)
  • ❌ Use personal phone numbers for business calling
  • ❌ Ignore failed call logs (investigate issues promptly)
  • ❌ Overload AI with too much information (keep it focused)

AI Voice Agent Design

Effective Voice Agents:

  • Natural greeting: "Hi, this is Alex from Acme Support. How can I help you?"
  • Clear speech: Short sentences, avoid jargon
  • Active listening: Pause after questions, let customer speak
  • Confirmation: "Just to confirm, you said..."
  • Helpful handoff: "I'll transfer you to our specialist, John"

Avoid:

  • Long monologues (break into chunks)
  • Complex menu trees (keep it simple)
  • Ignoring customer interruptions
  • Overly robotic language

Security & Compliance

Protect Credentials:

  • ✅ Store Account SID and Auth Token securely
  • ✅ Never commit credentials to code repositories
  • ✅ Rotate Auth Token every 6 months
  • ✅ Use different credentials for dev/staging/production
  • ✅ Monitor API usage for anomalies

Call Recording Compliance:

  • ✅ Inform callers that calls are recorded (required in many jurisdictions)
  • ✅ Example: "This call may be recorded for quality and training purposes"
  • ✅ Comply with two-party consent laws (check your state/country)
  • ✅ Store recordings securely (encrypt at rest)
  • ✅ Delete recordings according to retention policy

Do Not Call (DNC) Compliance:

  • ✅ Check numbers against DNC registries before calling
  • ✅ Maintain your own opt-out list
  • ✅ Honor opt-out requests immediately
  • ✅ Provide clear unsubscribe mechanism
  • ✅ Don't call cell phones without consent (TCPA in US)

Cost Optimization

Reduce Costs:

  • ✅ Use local numbers for local calling (cheaper than international)
  • ✅ Optimize AI conversation length (be efficient)
  • ✅ Set max call duration limits to prevent runaway costs
  • ✅ Monitor usage regularly and set budget alerts

Avoid Waste:

  • ❌ Calling invalid/disconnected numbers repeatedly
  • ❌ Long hold times or transfers (optimize routing)
  • ❌ Recording unnecessary calls (only when needed)

Advanced Features

Multi-Language Support

Twilio supports calls in 30+ languages:

Supported Languages:

  • English (US, UK, Australian, Indian accents)
  • Spanish (Spain, Mexico, Latin America)
  • French, German, Italian, Portuguese
  • Hindi, Tamil, Telugu (India)
  • Mandarin, Cantonese (China)
  • Japanese, Korean
  • Arabic, Hebrew
  • And more...

Configuration:

  1. In Voice Agent settings, select Language
  2. Choose Voice (accent/gender)
  3. AI will speak in selected language
  4. Transcription will use same language

Call Transfer to Human

Warm Transfer (AI introduces customer):

AI detects escalation needed
├─ AI: "I'll connect you with our specialist"
├─ AI calls agent internally
├─ AI briefs agent on context
├─ AI bridges customer and agent
└─ AI exits, customer now talking to agent

Cold Transfer (direct):

AI detects escalation
├─ AI: "Transferring you now"
├─ AI transfers call directly
└─ Agent answers blind (no context)

Configuration:

  • Add transfer numbers in Voice Agent settings
  • Configure transfer triggers (keywords, conditions)
  • Set transfer type (warm/cold)

IVR (Interactive Voice Response)

Build multi-level phone menus:

Example IVR Flow:

Customer calls
├─ AI: "Press 1 for Sales, 2 for Support, 3 for Billing"
├─ Customer presses 1:
│ └─ Transfer to Sales team
├─ Customer presses 2:
│ ├─ AI: "Press 1 for Technical Support, 2 for General Questions"
│ ├─ Presses 1: Route to Tech AI
│ └─ Presses 2: Route to General AI
└─ Customer presses 3:
└─ Transfer to Billing department

Setup:

  1. Create workflow with Inbound Call trigger
  2. Use Gather Digits action to collect input
  3. Use Condition nodes to route based on input
  4. Route to appropriate AI agent or team

Call Queues

Manage high call volumes:

Queue Setup:

  1. Create queue in Twilio Console
  2. Assign agents to queue
  3. Configure wait music/messages
  4. Set maximum wait time
  5. Route overflow to voicemail or callback

Smart Queue Features:

  • Priority routing (VIP customers first)
  • Estimated wait time announcements
  • Callback option (customer gets call back)
  • Queue position announcements

Call Analytics & Reporting

Track detailed metrics:

Available Metrics:

  • Call Volume: Inbound/outbound by time
  • Call Duration: Average, min, max
  • Success Rate: Connected vs failed calls
  • Geographic Distribution: Calls by country/region
  • Cost Analysis: Per call, per campaign, per agent
  • AI Performance: Customer satisfaction, transfer rate
  • Peak Times: Busiest calling hours/days

Custom Reports:

  1. Go to AnalyticsVoice Analytics in Expedify
  2. Select date range, filters
  3. View charts and tables
  4. Export to CSV/Excel
  5. Schedule automated reports

Voice Insights (Twilio)

Advanced call quality monitoring:

Metrics Tracked:

  • Audio quality scores
  • Jitter and packet loss
  • Latency (delay)
  • Codec used
  • Network issues

Access:

  1. Twilio Console → Voice → Insights
  2. View individual call quality
  3. Identify problematic calls
  4. Fix network/configuration issues

Use Cases & Examples

Customer Support Automation

Scenario: Handle common support queries with AI 24/7

Setup:

  • AI Agent: "Customer Support AI"
  • Knowledge Base: Help articles, troubleshooting guides
  • Capabilities: Check account status, troubleshoot basic issues, create tickets

Workflow:

Customer calls support number
├─ AI: "Thanks for calling Acme Support, I'm here to help"
├─ AI asks: "What can I help you with today?"
├─ Customer describes issue
├─ AI searches knowledge base
├─ AI provides solution
│ ├─ If resolved: "Is there anything else I can help with?"
│ └─ If not resolved: "Let me connect you with a specialist"
│ └─ Transfer to human agent with context
└─ Create support ticket automatically

Benefits:

  • 24/7 support availability
  • Instant response (no hold time)
  • Handles 60-70% of common issues
  • Frees human agents for complex cases
  • Full call logging and transcripts

Appointment Confirmation & Reminders

Scenario: Reduce no-shows with automated confirmation calls

Setup:

  • Workflow triggers 24 hours before appointment
  • AI calls to confirm or reschedule
  • Updates calendar automatically

Workflow:

24 hours before appointment:
├─ AI calls customer
├─ AI: "Hi, this is a reminder about your appointment tomorrow at 2 PM with Dr. Smith"
├─ AI: "Can you confirm you'll be there?"
├─ Customer responds:
│ ├─ "Yes" → Update appointment: Confirmed
│ ├─ "Need to reschedule" → AI: "What day/time works better?"
│ │ ├─ AI collects new preferred time
│ │ ├─ AI: "Let me check availability..."
│ │ ├─ AI offers available slots
│ │ └─ Updates appointment with new time
│ └─ "Cancel" → Update appointment: Cancelled
└─ Log outcome in CRM

Results:

  • 40% reduction in no-shows
  • Automatic rescheduling
  • Optimized calendar
  • Better patient experience

Lead Qualification & Scoring

Scenario: Qualify leads before sales team contact

Setup:

  • New lead triggers outbound call after 5 minutes
  • AI asks qualifying questions
  • Scores lead based on responses
  • Hot leads routed to sales immediately

Workflow:

Lead submits form on website
├─ Wait 5 minutes
├─ AI calls lead
├─ AI: "Hi, I'm calling about your recent inquiry on our website"
├─ AI asks qualifying questions:
│ ├─ "What's your budget range?" → Score based on answer
│ ├─ "What's your timeline?" → Score based on urgency
│ ├─ "Are you the decision maker?" → Authority check
│ └─ "What challenges are you facing?" → Needs assessment
├─ AI calculates lead score (0-100)
├─ If score > 70 (hot lead):
│ ├─ Immediate notification to sales rep
│ ├─ Create high-priority task
│ ├─ Send lead details to rep's phone
│ └─ AI: "A sales specialist will call you within 15 minutes"
└─ If score < 30 (cold lead):
├─ Add to nurture email campaign
└─ Schedule follow-up call in 2 weeks

Benefits:

  • 24/7 lead response (no delays)
  • Consistent qualification
  • Sales team focuses on hot leads
  • Higher conversion rates

Payment Collections

Scenario: Friendly payment reminders for overdue invoices

Setup:

  • Workflow checks for invoices due in 3 days
  • AI makes courtesy reminder call
  • Updates invoice status based on response

Workflow:

3 days before invoice due:
├─ AI calls customer
├─ AI: "Hi, this is a courtesy reminder that invoice #12345 is due on June 10th"
├─ AI: "The amount due is $500. Would you like me to send a payment link?"
├─ Customer responds:
│ ├─ "Already paid" → AI: "Great! Can you share the payment reference?"
│ │ └─ Update invoice status
│ ├─ "Send link" → Create task: Send payment link
│ ├─ "Need extension" → AI: "How much time do you need?"
│ │ ├─ AI collects extension details
│ │ └─ Create task for billing team to approve
│ └─ "Can't pay" → AI: "Let me connect you with our billing department"
│ └─ Transfer to billing team
└─ Log call outcome in CRM

Results:

  • Higher payment collection rate
  • Professional, friendly reminders
  • Reduces manual follow-up calls
  • Improves cash flow

Getting Help

Expedify Support

Twilio Support

Helpful Resources


Next Steps

After setting up Twilio integration:

  1. Purchase a phone number from Twilio (if you haven't already)
  2. Test manual calling to verify basic connectivity
  3. Create your first AI voice agent for specific use case
  4. Configure inbound routing with webhook URLs
  5. Build one simple workflow (e.g., appointment reminder)
  6. Review call recordings and refine AI instructions
  7. Monitor call quality in Twilio Insights
  8. Scale up to more advanced use cases

Ready to start calling? Go to Settings → Integrations and configure Twilio now!


Need help? Contact Expedify support or check the Voice Calling guide for more details.