Перейти до основного контенту

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 запиту:

  • Content-Type - 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

Ви отримали відповідь на своє запитання?