Skip to main content

RingCentral Integration

RingCentral integration enables Crew to work with your existing RingCentral phone system. Use your current numbers, extensions, and call routing while adding AI capabilities.

Overview

With RingCentral, Crew can:
  • Handle inbound calls on RingCentral numbers
  • Place outbound calls through RingCentral
  • Send and receive SMS
  • Integrate with RingCentral call queues
  • Access RingCentral call recordings

Prerequisites

Before connecting:
  1. RingCentral Office or RingCentral MVP subscription
  2. Admin access to RingCentral account
  3. API access enabled on your account

Setup

Step 1: Create RingCentral App

1

Access Developer Portal

2

Create New App

Click Create App and select REST API App
3

Configure App

Set auth type to JWT for server-to-server integration
4

Set Permissions

Enable required permissions (see below)
5

Get Credentials

Copy Client ID, Client Secret, and JWT token

Required Permissions

PermissionPurpose
ReadAccountsAccess account information
ReadCallLogView call history
RingOutPlace outbound calls
WebhookSubscriptionsReceive real-time events
SMSSend and receive SMS
ReadMessagesAccess message history

Step 2: Connect to Crew

1

Open Crew Dashboard

Navigate to SettingsIntegrations
2

Select RingCentral

Click Connect next to RingCentral
3

Enter Credentials

Paste your Client ID, Client Secret, and JWT
4

Authorize

Complete the OAuth flow to grant access

Step 3: Configure Extensions

Map RingCentral extensions to Crew agents:
{
  "extension_mapping": [
    {
      "extension": "101",
      "agent_id": "agent_sarah",
      "type": "primary"
    },
    {
      "extension": "102",
      "agent_id": "agent_marcus",
      "type": "after_hours"
    }
  ]
}

Call Handling

Inbound Calls

Configure how RingCentral routes calls to Crew: Option 1: Direct Routing Forward calls directly to Crew agents:
{
  "routing": {
    "type": "direct",
    "extension": "101",
    "agent_id": "agent_sarah"
  }
}
Option 2: Queue Integration Crew answers calls from RingCentral queues:
{
  "routing": {
    "type": "queue",
    "queue_id": "queue_support",
    "agent_id": "agent_sarah",
    "priority": 1
  }
}

Outbound Calls

Place calls through RingCentral:
curl -X POST https://api.usecrew.ai/v1/calls/outbound \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "to": "+14155559999",
    "agent_id": "agent_sarah",
    "provider": "ringcentral",
    "from_extension": "101"
  }'

Call Transfers

Transfer to RingCentral extensions:
{
  "transfer": {
    "type": "warm",
    "destination": "ext:205",
    "provider": "ringcentral"
  }
}

SMS Integration

Inbound SMS

SMS messages route to Crew agents:
{
  "sms": {
    "enabled": true,
    "extension": "101",
    "agent_id": "agent_sms"
  }
}

Outbound SMS

curl -X POST https://api.usecrew.ai/v1/sms \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "to": "+14155559999",
    "from_extension": "101",
    "message": "Your appointment is confirmed.",
    "provider": "ringcentral"
  }'

Presence and Availability

Sync agent availability with RingCentral presence:
{
  "presence_sync": {
    "enabled": true,
    "mapping": {
      "Available": "agent_active",
      "Busy": "agent_busy",
      "DoNotDisturb": "agent_offline"
    }
  }
}

Call Recording

Access RingCentral call recordings:
curl https://api.usecrew.ai/v1/calls/{call_id}/recording \
  -H "Authorization: Bearer YOUR_API_KEY"
Recording access depends on your RingCentral plan and recording settings.

Webhooks

RingCentral events are forwarded to Crew:
EventDescription
telephony.sessionCall state changes
message-storeNew SMS received
presenceExtension availability changes

Webhook Configuration

Crew automatically manages RingCentral webhook subscriptions. No manual configuration required.

High Availability

For production deployments:
{
  "ringcentral": {
    "failover": {
      "enabled": true,
      "fallback_provider": "twilio",
      "fallback_number": "+14155550000"
    }
  }
}

Limitations

FeatureSupport
Voice calls✓ Full support
SMS✓ Full support
Fax✗ Not supported
Video✗ Not supported
Team messaging✗ Not supported

Troubleshooting

Authentication Errors

  1. Verify JWT token hasn’t expired
  2. Check app permissions in RingCentral
  3. Ensure production vs sandbox environment match
  4. Regenerate JWT if needed

Calls Not Routing

  1. Verify extension is correctly mapped
  2. Check RingCentral call handling rules
  3. Ensure extension is active and available
  4. Review RingCentral call logs

SMS Failures

  1. Verify SMS is enabled on extension
  2. Check message content for blocked terms
  3. Verify recipient number format
  4. Review RingCentral message logs

Best Practices

Always use RingCentral production (not sandbox) for live deployments.
Create dedicated extensions for AI agents to avoid conflicts.
Set up Twilio as a backup in case of RingCentral issues.
RingCentral has API rate limits; monitor usage in high-volume scenarios.

Next Steps