Skip to main content

User Permissions

Manage user permissions and access controls within Audian accounts.

Overview​

User permissions determine what actions a user can perform in the Audian platform. Permissions are granted based on user roles and can be customized for specific users.

Permission Model​

Audian uses a role-based access control (RBAC) model combined with fine-grained permissions:

  1. Roles: Default permission sets (admin, manager, user, operator, agent)
  2. Permissions: Individual granular permissions
  3. Custom Roles: Create custom role combinations
  4. Inheritance: Permissions inherited from parent accounts

Available Permissions​

Call Permissions​

PermissionDescription
calls.makeMake outbound calls
calls.receiveReceive inbound calls
calls.transferTransfer calls to other users
calls.conferenceCreate conference calls
calls.holdPlace calls on hold
calls.muteMute microphone during calls
calls.recordRecord calls

Voicemail Permissions​

PermissionDescription
voicemail.accessAccess personal voicemail
voicemail.manageManage voicemail settings
voicemail.recordRecord voicemail greetings
voicemail.deleteDelete voicemail messages

Contact Permissions​

PermissionDescription
contacts.viewView contacts
contacts.manageCreate/edit/delete contacts
contacts.importImport contact lists
contacts.exportExport contacts

Presence Permissions​

PermissionDescription
presence.viewView own presence
presence.manageUpdate own presence
presence.viewOthersView other users' presence
presence.manageTeamManage team presence

Device Permissions​

PermissionDescription
devices.viewView own devices
devices.manageConfigure own devices
devices.viewAllView all account devices
devices.manageAllConfigure all account devices
devices.provisionProvision new devices

Recording Permissions​

PermissionDescription
recordings.accessAccess own recordings
recordings.viewAllView all account recordings
recordings.deleteDelete recordings
recordings.exportExport recordings

Admin Permissions​

PermissionDescription
admin.usersManage user accounts
admin.devicesManage all devices
admin.accountManage account settings
admin.billingManage billing
admin.auditView audit logs
admin.permissionsManage permissions

User Roles​

Admin Role​

Full account access:

{
"role": "admin",
"permissions": [
"calls.*",
"voicemail.*",
"contacts.*",
"presence.*",
"devices.*",
"recordings.*",
"admin.*"
]
}

Manager Role​

Team management access:

{
"role": "manager",
"permissions": [
"calls.make",
"calls.receive",
"calls.transfer",
"calls.conference",
"voicemail.access",
"contacts.view",
"contacts.manage",
"presence.viewOthers",
"devices.view",
"recordings.access",
"admin.users"
]
}

Standard User Role​

Basic user access:

{
"role": "user",
"permissions": [
"calls.make",
"calls.receive",
"calls.transfer",
"voicemail.access",
"contacts.view",
"presence.view",
"devices.view"
]
}

Operator Role​

Receptionist/operator:

{
"role": "operator",
"permissions": [
"calls.make",
"calls.receive",
"calls.transfer",
"calls.conference",
"presence.viewOthers",
"devices.view"
]
}

Endpoints​

GET /v1/accounts/{accountId}/users/{userId}/permissions
POST /v1/accounts/{accountId}/users/{userId}/permissions
PATCH /v1/accounts/{accountId}/users/{userId}/permissions
GET /v1/accounts/{accountId}/roles
POST /v1/accounts/{accountId}/roles

Get User Permissions​

Retrieve permissions for a user.

Endpoint​

GET https://api.audian.com:8443/v2/accounts/{accountId}/users/{userId}/permissions

Example​

curl -X GET https://api.audian.com:8443/v2/accounts/acc_1234567890/users/user_123456/permissions \
-H "X-Auth-Token: YOUR_API_TOKEN"

Response​

{
"userId": "user_123456",
"role": "standard",
"roleDescription": "Standard User - Basic calling features",
"permissions": [
"calls.make",
"calls.receive",
"calls.transfer",
"voicemail.access",
"contacts.view",
"presence.view",
"devices.view"
],
"customPermissions": [],
"inheritedPermissions": [],
"lastModified": "2023-10-20T10:00:00Z"
}

Set User Permissions​

Assign permissions to a user.

Endpoint​

POST https://api.audian.com:8443/v2/accounts/{accountId}/users/{userId}/permissions

Request Body​

ParameterTypeRequiredDescription
rolestringYesRole name or "custom"
permissionsarrayNoCustom permission list

Example - Assign Role​

curl -X POST https://api.audian.com:8443/v2/accounts/acc_1234567890/users/user_123456/permissions \
-H "Content-Type: application/json" \
-H "X-Auth-Token: YOUR_API_TOKEN" \
-d '{
"role": "operator"
}'

Example - Custom Permissions​

curl -X POST https://api.audian.com:8443/v2/accounts/acc_1234567890/users/user_123456/permissions \
-H "Content-Type: application/json" \
-H "X-Auth-Token: YOUR_API_TOKEN" \
-d '{
"role": "custom",
"permissions": [
"calls.make",
"calls.receive",
"calls.transfer",
"calls.conference",
"voicemail.access",
"voicemail.manage",
"contacts.view",
"contacts.manage",
"presence.view",
"devices.view"
]
}'

Response​

{
"userId": "user_123456",
"role": "custom",
"permissions": [
"calls.make",
"calls.receive",
"calls.transfer",
"calls.conference",
"voicemail.access",
"voicemail.manage",
"contacts.view",
"contacts.manage",
"presence.view",
"devices.view"
],
"updated": true,
"lastModified": "2023-10-20T10:35:00Z"
}

Update Permissions​

Modify existing user permissions.

Endpoint​

PATCH https://api.audian.com:8443/v2/accounts/{accountId}/users/{userId}/permissions

Request Body​

ParameterTypeDescription
addPermissionsarrayPermissions to add
removePermissionsarrayPermissions to remove
rolestringChange to new role

Example - Add Permission​

curl -X PATCH https://api.audian.com:8443/v2/accounts/acc_1234567890/users/user_123456/permissions \
-H "Content-Type: application/json" \
-H "X-Auth-Token: YOUR_API_TOKEN" \
-d '{
"addPermissions": ["calls.record", "recordings.access"]
}'

Example - Remove Permission​

curl -X PATCH https://api.audian.com:8443/v2/accounts/acc_1234567890/users/user_123456/permissions \
-H "Content-Type: application/json" \
-H "X-Auth-Token: YOUR_API_TOKEN" \
-d '{
"removePermissions": ["admin.users"]
}'

Custom Roles​

Get All Roles​

curl -X GET https://api.audian.com:8443/v2/accounts/acc_1234567890/roles \
-H "X-Auth-Token: YOUR_API_TOKEN"

Response​

{
"defaultRoles": [
{
"name": "admin",
"description": "Administrator with full access",
"permissions": [/* all permissions */]
},
{
"name": "manager",
"description": "Team manager",
"permissions": [/* manager permissions */]
},
{
"name": "user",
"description": "Standard user",
"permissions": [/* user permissions */]
},
{
"name": "operator",
"description": "Operator/Receptionist",
"permissions": [/* operator permissions */]
}
],
"customRoles": [
{
"id": "role_custom_001",
"name": "Senior Agent",
"description": "Call center agent with supervisor rights",
"permissions": [/* custom permissions */]
}
]
}

Create Custom Role​

curl -X POST https://api.audian.com:8443/v2/accounts/acc_1234567890/roles \
-H "Content-Type: application/json" \
-H "X-Auth-Token: YOUR_API_TOKEN" \
-d '{
"name": "Senior Agent",
"description": "Call center agent with supervisor rights",
"permissions": [
"calls.make",
"calls.receive",
"calls.transfer",
"calls.conference",
"voicemail.access",
"contacts.view",
"presence.viewOthers",
"devices.view",
"recordings.access"
]
}'

JavaScript/Node.js Example​

const axios = require('axios');

async function setUserPermissions(accountId, userId, role, customPermissions) {
try {
const data = {
role: customPermissions ? 'custom' : role
};

if (customPermissions) {
data.permissions = customPermissions;
}

const response = await axios.post(
`https://api.audian.com:8443/v2/accounts/${accountId}/users/${userId}/permissions`,
data,
{
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_TOKEN'
}
}
);

console.log('Permissions updated:', response.data);
return response.data;
} catch (error) {
console.error('Error:', error.response.data);
}
}

// Usage
setUserPermissions('acc_1234567890', 'user_123456', 'operator');

Permission Best Practices​

  1. Principle of Least Privilege: Grant only necessary permissions
  2. Role-Based: Use predefined roles when possible
  3. Regular Review: Audit permissions quarterly
  4. Separation of Duties: Separate admin and operational roles
  5. Documentation: Document why specific permissions are granted
  6. Monitoring: Monitor permission usage and abuse

Permission Hierarchy​

Wildcard (*)
└── Granular Permissions
├── calls.*
│ ├── calls.make
│ ├── calls.receive
│ ├── calls.transfer
│ └── calls.record
├── voicemail.*
├── contacts.*
├── devices.*
└── admin.*

Status Codes​

CodeDescription
200Success
201Created
400Bad request
401Unauthorized
403Forbidden
404Not found
409Conflict
500Server error