Zendesk Talk MCP Server
Create a powerful Model Context Protocol (MCP) server for Zendesk Talk in minutes with our AI Gateway. This guide walks you through setting up seamless voice support integration with enterprise-grade security and instant OAuth authentication.
About Zendesk Talk API
Zendesk Talk is a cloud-based call center solution that integrates voice support directly into Zendesk. The API provides comprehensive access to call management, phone numbers, agent availability, call recordings, and voice analytics.
Key Capabilities
- Call Management: Inbound and outbound calls
- Phone Numbers: Local and toll-free numbers
- IVR System: Interactive voice response
- Call Recording: Conversation capture
- Agent Management: Availability and routing
- Call Analytics: Performance metrics
- Integration: CRM and ticketing sync
- Global Coverage: Worldwide phone support
API Features
- Calls API: Call operations and history
- Phone Numbers API: Number management
- Agents API: Availability control
- Recording API: Audio file access
- OAuth 2.0: Secure authentication
- Webhooks: Real-time events
- Stats API: Call analytics
- IVR API: Menu configuration
What You Can Do with Zendesk Talk MCP Server
The MCP server transforms Zendesk Talk API into a natural language interface, enabling AI agents to:
Call Management
-
Inbound Calls
- "Accept incoming call"
- "Route call to specialist"
- "Transfer to manager"
- "Put call on hold"
-
Outbound Calls
- "Make call to customer"
- "Schedule callback"
- "Dial from ticket"
- "Call from lead record"
-
Call Control
- "Mute/unmute call"
- "Start conference call"
- "Record conversation"
- "End call session"
Phone Number Management
-
Number Operations
- "Purchase local number"
- "Get toll-free number"
- "Configure caller ID"
- "Set up forwarding"
-
Number Configuration
- "Route to department"
- "Set business hours"
- "Configure voicemail"
- "Enable recording"
-
International Support
- "Add country support"
- "Configure time zones"
- "Set local presence"
- "Manage regulations"
IVR System
-
Menu Design
- "Create welcome message"
- "Build option menu"
- "Set up routing tree"
- "Configure announcements"
-
Call Routing
- "Route by language"
- "Direct to department"
- "Queue management"
- "Overflow handling"
-
Voice Prompts
- "Record custom messages"
- "Upload audio files"
- "Set hold music"
- "Configure announcements"
Agent Management
-
Availability Control
- "Set agent available"
- "Enable call forwarding"
- "Configure do not disturb"
- "Set break status"
-
Skills-based Routing
- "Route by expertise"
- "Language routing"
- "Priority queuing"
- "Load balancing"
-
Performance Tracking
- "Track call metrics"
- "Monitor response times"
- "Measure quality scores"
- "Generate reports"
Call Recording
-
Recording Management
- "Enable call recording"
- "Download recordings"
- "Set retention policy"
- "Manage permissions"
-
Compliance
- "Legal hold settings"
- "GDPR compliance"
- "Consent management"
- "Audit trails"
-
Quality Assurance
- "Score recordings"
- "Tag conversations"
- "Create playlists"
- "Training materials"
Analytics & Reporting
-
Call Metrics
- "Show call volume"
- "Track answer rates"
- "Measure handle time"
- "Monitor abandonment"
-
Agent Performance
- "Individual statistics"
- "Team comparisons"
- "Productivity metrics"
- "Quality scores"
-
Business Intelligence
- "Peak time analysis"
- "Customer satisfaction"
- "Cost per call"
- "ROI calculations"
Voice Integration
-
Ticket Integration
- "Create ticket from call"
- "Link call to ticket"
- "Add call notes"
- "Sync call history"
-
CRM Sync
- "Update customer record"
- "Log call activity"
- "Sync contact info"
- "Track interactions"
-
Automation
- "Auto-dial from queue"
- "Schedule callbacks"
- "Trigger workflows"
- "Send notifications"
Global Operations
-
Multi-region Support
- "Deploy in regions"
- "Local number presence"
- "Compliance setup"
- "Currency handling"
-
Language Support
- "Multi-language IVR"
- "Agent language skills"
- "Translation services"
- "Cultural adaptation"
-
Regulatory Compliance
- "GDPR settings"
- "TCPA compliance"
- "Recording consent"
- "Data residency"
Prerequisites
- Access to Cequence AI Gateway
- Zendesk Talk subscription
- Admin permissions
- OAuth application credentials
Step 1: Create Zendesk OAuth Application
1.1 Access Admin Center
- Log in to Zendesk
- Go to Admin Center > Apps and integrations
- Select APIs > Zendesk API
- Click OAuth Clients tab
1.2 Create OAuth Client
- Click Add OAuth Client
- Fill in details:
- Client Name: "AI Gateway Talk MCP"
- Company: Your company name
- Description: "Voice support integration"
- Redirect URLs:
https://auth.aigateway.cequence.ai/v1/outbound/oauth/callback
1.3 Configure Permissions
- Set client type to Confidential
- Select Talk-specific scopes:
talk:read
- Read call datatalk:write
- Manage calls
1.4 Save Credentials
- Click Save
- Copy Client ID
- Copy Client Secret
- Note your Subdomain
Step 2-4: Standard Setup
Follow standard steps to access AI Gateway, find Zendesk Talk API, and create MCP server.
Step 5: Configure API Endpoints
- Base URL:
https://{subdomain}.zendesk.com/api/v2/channels/voice
- Select endpoints:
- Calls endpoints
- Phone numbers endpoints
- Agents endpoints
- Stats endpoints
- Click Next
Step 6: MCP Server Configuration
- Name: "Zendesk Talk"
- Description: "Voice support and call center"
- Configure production mode
- Click Next
Step 7: Configure Authentication
- Authentication Type: OAuth 2.0
- Authorization URL:
https://{subdomain}.zendesk.com/oauth/authorizations/new
- Token URL:
https://{subdomain}.zendesk.com/oauth/tokens
- Enter Client ID and Secret
- Select required scopes
Available Zendesk Talk OAuth Scopes
Talk Scopes
-
talk:read
- View call history
- Read recordings
- Access statistics
- See configurations
-
talk:write
- Make calls
- Manage settings
- Control routing
- Update agents
Additional Permissions
-
Recording Access
- Download recordings
- Manage retention
- Quality scoring
- Compliance controls
-
Admin Functions
- Number management
- IVR configuration
- Agent settings
- Analytics access
Recommended Scope Combinations
For Agents:
talk:read
talk:write
tickets:write
users:read
For Supervisors:
talk:read
talk:write
read
write
Step 8-10: Complete Setup
Configure security, choose deployment, and deploy.
Using Your Zendesk Talk MCP Server
With Claude Desktop
{
"servers": {
"zendesk-talk": {
"url": "your-mcp-server-url",
"auth": {
"type": "oauth2",
"client_id": "your-client-id"
}
}
}
}
Natural Language Commands
- "Make outbound call to customer"
- "Show today's call statistics"
- "Set agent available for calls"
- "Download call recording"
- "Configure IVR menu options"
API Integration Example
// Initialize MCP client
const mcpClient = new MCPClient({
serverUrl: 'your-mcp-server-url',
auth: {
type: 'oauth2',
token: 'access-token'
}
});
// Make an outbound call
const call = await mcpClient.zendesk.talk.calls.create({
call: {
phone_number: '+1-555-0123',
caller_id: companyPhoneNumber,
user_id: ticketRequesterId,
ticket_id: ticketId,
via: 'api'
}
});
// Set agent availability
await mcpClient.zendesk.talk.agents.updateAvailability({
agent_id: currentAgentId,
availability: {
status: 'available',
max_queue_size: 5,
call_forwarding_enabled: false,
wrap_up_time: 60
}
});
// Configure IVR menu
const ivrMenu = await mcpClient.zendesk.talk.ivr.create({
menu: {
name: 'Main Menu',
greeting: {
text: 'Thank you for calling. Please select from the following options.',
audio_url: 'https://example.com/greeting.mp3'
},
options: [
{
digit: '1',
action: 'route_to_group',
target: salesGroupId,
description: 'Press 1 for Sales'
},
{
digit: '2',
action: 'route_to_group',
target: supportGroupId,
description: 'Press 2 for Support'
},
{
digit: '3',
action: 'route_to_group',
target: billingGroupId,
description: 'Press 3 for Billing'
},
{
digit: '0',
action: 'route_to_operator',
description: 'Press 0 for Operator'
}
],
timeout: 10,
max_attempts: 3,
invalid_option_message: 'Invalid selection. Please try again.'
}
});
// Purchase phone number
const phoneNumber = await mcpClient.zendesk.talk.phoneNumbers.purchase({
phone_number: {
country_code: 'US',
area_code: '555',
type: 'local',
name: 'Main Support Line'
}
});
// Configure call recording
await mcpClient.zendesk.talk.settings.updateRecording({
recording: {
enabled: true,
consent_required: true,
retention_days: 90,
consent_message: 'This call may be recorded for quality assurance purposes.',
auto_recording: true,
storage_location: 'secure_cloud'
}
});
// Get call statistics
const stats = await mcpClient.zendesk.talk.stats.getCalls({
start_time: '2025-01-01T00:00:00Z',
end_time: '2025-01-31T23:59:59Z',
group_by: 'day',
metrics: [
'total_calls',
'answered_calls',
'missed_calls',
'average_handle_time',
'average_wait_time',
'customer_satisfaction'
]
});
// Handle incoming call webhook
app.post('/webhook/talk', async (req, res) => {
const event = req.body;
if (event.type === 'call.started') {
const { call_id, phone_number, caller_id } = event.data;
// Look up customer by phone
const customer = await mcpClient.zendesk.users.search({
query: `phone:${caller_id}`
});
if (customer.users.length > 0) {
// Update call with customer context
await mcpClient.zendesk.talk.calls.update({
id: call_id,
call: {
user_id: customer.users[0].id,
tags: ['returning_customer'],
custom_fields: {
customer_tier: customer.users[0].user_fields?.tier || 'standard'
}
}
});
}
}
res.sendStatus(200);
});
// Create call summary
const callSummary = await mcpClient.zendesk.talk.calls.addSummary({
call_id: call.call.id,
summary: {
outcome: 'resolved',
resolution: 'Password reset completed successfully',
follow_up_required: false,
customer_satisfaction: 5,
agent_notes: 'Customer was very satisfied with quick resolution',
tags: ['password_reset', 'resolved_first_call'],
duration_seconds: 420,
ticket_created: false
}
});
// Configure business hours
await mcpClient.zendesk.talk.settings.updateBusinessHours({
business_hours: {
timezone: 'America/New_York',
monday: { enabled: true, start: '09:00', end: '17:00' },
tuesday: { enabled: true, start: '09:00', end: '17:00' },
wednesday: { enabled: true, start: '09:00', end: '17:00' },
thursday: { enabled: true, start: '09:00', end: '17:00' },
friday: { enabled: true, start: '09:00', end: '17:00' },
saturday: { enabled: false },
sunday: { enabled: false },
holidays: [
{ date: '2025-01-01', name: 'New Year\'s Day' },
{ date: '2025-07-04', name: 'Independence Day' },
{ date: '2025-12-25', name: 'Christmas Day' }
]
}
});
// Generate call quality report
const qualityReport = await mcpClient.zendesk.talk.reports.getQuality({
period: 'last_30_days',
agents: [agentId1, agentId2, agentId3],
metrics: [
'average_call_rating',
'first_call_resolution',
'call_abandonment_rate',
'average_speed_to_answer',
'customer_satisfaction_score'
],
group_by: 'agent'
});
Common Use Cases
Customer Support
- Inbound call handling
- Technical support
- Order assistance
- Complaint resolution
Sales Operations
- Lead qualification
- Sales calls
- Follow-up calls
- Deal closing
Service Management
- Appointment scheduling
- Service callbacks
- Emergency support
- Field service coordination
Quality Assurance
- Call monitoring
- Agent coaching
- Performance evaluation
- Training programs
Security Best Practices
-
Call Security:
- Encrypt recordings
- Secure transmission
- Access controls
- Audit trails
-
Compliance:
- Recording consent
- Data retention
- Privacy regulations
- Legal requirements
-
Access Control:
- Role-based permissions
- Agent restrictions
- Recording access
- Admin controls
Troubleshooting
Common Issues
-
Call Quality
- Check network latency
- Verify bandwidth
- Test audio devices
- Review call logs
-
Routing Problems
- Validate IVR settings
- Check agent availability
- Review group assignments
- Test call flows
-
Recording Issues
- Verify permissions
- Check storage limits
- Review consent settings
- Test playback
Getting Help
- Documentation: AI Gateway Docs
- Support: support@cequence.ai
- Zendesk Talk: support.zendesk.com/hc/en-us/sections/360002735074