Этот метод позволит автоматизированно создавать новых сотрудников вместе с SIP-аккаунтами через API.
С помощью этого метода можно:
-создать нового сотрудника.
-создать SIP-аккаунт для этого сотрудника.
-связать сотрудника с одним или несколькими отделами
Основные параметры запроса:
Адрес API-запроса: https://api.ringostat.net/a/v2
Метод: POST
Метод Json-rpc: API\\V2\\Staff.addStaff
Auth-key: электронный ключ для доступа к вашему проекту в Ringostat.
projectId: ID проекта
Headers запроса:
Тип содержимого - application/json
auth-key - это электронный ключ для доступа к вашему проекту в Ringostat
x-project-id – ID вашего проекта
Body запроса:
Название параметра | Тип данных | Обязательный | Описание |
| string | да | Id проекта (указанный в блоке доступа) |
| string | да | ID пользователя, создаваемого сотрудником |
| string | да | Уровень доступа сотрудника (1 – админ, 2 – аналитик, 4 – менеджер) |
| string | да | ФИО сотрудника |
| string | да | Email сотрудника |
| string | да | Внутренний номер сотрудника (2-5 цифр) |
| object | да | Настройка направлений сотрудника |
| array | Да. Возможно = null | Массив названия отделов (не чувствительно к регистру) |
| boolean | Нет (по умолчанию: false) | Имеет ли доступ к Power Dialer |
Пример для Node.js:
const https = require('https');
const data = JSON.stringify({
jsonrpc: "2.0",
method: "Api\\V2\\Staff.addStaff",
params: {
projectId: "123",
creatorId: "456",
access: "user",
fio: "Іван Петренко",
email: "[email protected]",
extensionNumber: "1001",
directions: {
main: [
{
type: "sip",
direction: "1001",
password: "securePassword123",
enabledForAwd: true,
isMobile: false
}
],
additional: []
},
departments: ["Main"],
isHasAccessToPowerDialer: true
},
id: 1
});
const config = {
host: 'api.ringostat.net',
path: '/v2',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length,
'Auth-key': 'your_unique_auth_key'
}
};
const callback = (response) => {
let result = Buffer.alloc(0);
response.on('data', chunk => {
result = Buffer.concat([result, chunk]);
});
response.on('end', () => {
console.log(result.toString());
});
};
const request = https.request(config, callback);
request.write(data);
request.end();
Пример для Axios.js
const axios = require('axios');
axios({
url: 'https://api.ringostat.net/v2',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Auth-key': 'your_unique_auth_key'
},
data: {
jsonrpc: "2.0",
method: "Api\\V2\\Staff.addStaff",
params: {
projectId: "123",
creatorId: "456",
access: "user",
fio: "Іван Петренко",
email: "[email protected]",
extensionNumber: "1001",
directions: {
main: [
{
type: "sip",
direction: "1001",
password: "securePassword123",
enabledForAwd: true,
isMobile: false
}
],
additional: []
},
departments: ["Secondary"],
isHasAccessToPowerDialer: true
},
id: 1
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error.response?.data || error.message);
});
Пример для cURL
curl -X POST "https://api.ringostat.net/v2" \
-H "Content-Type: application/json" \
-H "Auth-key: your_unique_auth_key" \
-d '{
"jsonrpc": "2.0",
"method": "Api\\V2\\Staff.addStaff",
"params": {
"projectId": "123",
"creatorId": "456",
"access": "user",
"fio": "Іван Петренко",
"email": "[email protected]",
"extensionNumber": "1001",
"directions": {
"main": [
{
"type": "sip",
"direction": "1001",
"password": "securePassword1234!",
"enabledForAwd": true,
"isMobile": false
}
],
"additional": []
},
"departments": ["Main"],
"isHasAccessToPowerDialer": true
},
"id": 1
}'
Результат:
{
"jsonrpc": "2.0",
"result": {
"result": true
},
"id": 1
}
Ограничения:
Максимум 6 направлений на сотрудника
Максимум 3 SIP аккаунта в основных направлениях
Максимум 3 SIP аккаунта в дополнительных направлениях
Максимум 3 номера телефонов в основных направлениях
Максимум 3 номера телефонов в дополнительных направлениях
Внутренний номер: 2-5 цифр
Пароль SIP: минимум 14 символов
Имя: только буквы и пробелы
Email: валидный формат email