К основному содержимому

API Ringostat. Создание и добавление сотрудника в отдел

API метод для создания и добавления сотрудника в отдел

Автор: Olga Kalchenko

Этот метод позволит автоматизированно создавать новых сотрудников вместе с 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 запроса:

Название параметра

Тип данных

Обязательный

Описание

projectId

string

да

Id проекта (указанный в блоке доступа)

creatorId

string

да

ID пользователя, создаваемого сотрудником

access

string

да

Уровень доступа сотрудника (1 – админ, 2 – аналитик, 4 – менеджер)

fio

string

да

ФИО сотрудника

email

string

да

Email сотрудника

extensionNumber

string

да

Внутренний номер сотрудника (2-5 цифр)

directions

object

да

Настройка направлений сотрудника

departments

array

Да. Возможно = null

Массив названия отделов (не чувствительно к регистру)

isHasAccessToPowerDialer

boolean

Нет (по умолчанию: false)

Имеет ли доступ к Power Dialer

language

string

Нет (по умолчанию: язык пользователя creatorId)

Язык интерфейса сотрудника (ukr, eng, rus, bul, pol).

roleName

string

Нет (по умолчанию роль определяется по access)

Роль сотрудника (системная или пользовательская). Системная роль должна соответствовать значению access (1 — admin, 2 — analyst, 4 — staff). Пользовательская роль должна существовать в проекте.

Пример для Node.js:

const https = require('https');

const data = JSON.stringify({
jsonrpc: "2.0",
method: "Api\\V2\\Staff.addStaff",
params: {
projectId: "123",
creatorId: "456",
access: "1",
fio: "Іван Петренко",
email: "[email protected]",
extensionNumber: "1001",
language: "ukr",
roleName: "admin",
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: "1",
fio: "Іван Петренко",
email: "[email protected]",
extensionNumber: "1001",
language: "ukr",
roleName: "admin",
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": "1",
"fio": "Іван Петренко",
"email": "[email protected]",
"extensionNumber": "1001",
"language": "ukr",
"roleName": "admin",
"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

Нашли ответ на свой вопрос?