Skip to main content

Manage Contact Center Users

Create, update, retrieve, and delete users (agents) in the Contact Center v4 system.

Create User​

POST /v4/accounts/<account_sid>/users

Request Body​

{
"name": "John Agent",
"email": "john@company.com",
"phone_number": "+919876543210",
"role": "agent",
"team_id": "sales_team",
"device_type": "softphone",
"skills": ["english", "sales"]
}

Parameters​

ParameterTypeRequiredDescription
nameStringYesFull name of the user
emailStringYesEmail address (must be unique)
phone_numberStringYesPhone number in E.164 format
roleStringYesagent, supervisor, or admin
team_idStringNoTeam assignment
device_typeStringNosoftphone, phone, or sip
skillsArrayNoSkill tags for routing

Example Request​

curl -X POST \
'https://ccm-api.exotel.com/v4/accounts/<account_sid>/users' \
-H 'Authorization: Bearer <session_token>' \
-H 'Content-Type: application/json' \
-d '{
"name": "John Agent",
"email": "john@company.com",
"phone_number": "+919876543210",
"role": "agent",
"device_type": "softphone"
}'

Response​

{
"response": {
"code": 201,
"status": "success",
"data": {
"user_id": "user_abc123",
"name": "John Agent",
"email": "john@company.com",
"phone_number": "+919876543210",
"role": "agent",
"status": "offline",
"created_at": "2024-06-15T10:00:00.000Z"
}
}
}

Update User​

PUT /v4/accounts/<account_sid>/users/<user_id>

Request Body​

{
"name": "John Senior Agent",
"role": "supervisor",
"team_id": "sales_leads",
"skills": ["english", "sales", "escalation"]
}

All fields are optional — only include fields you want to update.

Response​

{
"response": {
"code": 200,
"status": "success",
"data": {
"user_id": "user_abc123",
"name": "John Senior Agent",
"role": "supervisor",
"updated_at": "2024-06-15T14:00:00.000Z"
}
}
}

Get User​

GET /v4/accounts/<account_sid>/users/<user_id>

Response​

{
"response": {
"code": 200,
"status": "success",
"data": {
"user_id": "user_abc123",
"name": "John Senior Agent",
"email": "john@company.com",
"phone_number": "+919876543210",
"role": "supervisor",
"status": "available",
"team": {
"team_id": "sales_leads",
"name": "Sales Leads"
},
"skills": ["english", "sales", "escalation"],
"device": {
"type": "softphone",
"contact_uri": "sip:john@company.exotel.com"
},
"stats": {
"calls_today": 15,
"avg_handle_time": 180,
"availability_percentage": 85
},
"created_at": "2024-06-15T10:00:00.000Z",
"updated_at": "2024-06-15T14:00:00.000Z"
}
}
}

List Users​

GET /v4/accounts/<account_sid>/users

Query Parameters​

ParameterTypeDescription
roleStringFilter by role
team_idStringFilter by team
statusStringFilter by status
limitIntegerResults per page (default: 20)
offsetIntegerPagination offset

Delete User​

DELETE /v4/accounts/<account_sid>/users/<user_id>

Response​

{
"response": {
"code": 200,
"status": "success",
"data": {
"user_id": "user_abc123",
"deleted": true
}
}
}
warning

Deleting a user is permanent. The user will be immediately logged out of any active sessions and removed from all teams.

HTTP Status Codes​

CodeDescription
200Success
201Created
400Bad Request — Invalid parameters
401Unauthorized
404Not Found — User doesn't exist
409Conflict — Email already exists
429Rate Limited

Try It​