Przejdź do głównej zawartości

Ringostat API. Tworzenie i dodawanie pracownika do działu

Metoda API do tworzenia i dodawania pracownika do działu

Napisane przez Valentyna Shevchuk

Ta metoda umożliwia automatyczne tworzenie nowych pracowników wraz z kontami SIP za pośrednictwem API.

Za pomocą tej metody możesz:

  • utworzyć nowego pracownika,

  • utworzyć konto SIP dla tego pracownika,

  • przypisać pracownika do jednego lub kilku działów.

Podstawowe parametry żądania:

  • Adres żądania API: https://api.ringostat.net/a/v2

  • Metoda: POST

  • Metoda Json-rpc: Api\V2\Staff.addStaff

  • Auth-key: klucz elektroniczny umożliwiający dostęp do projektu w Ringostat

  • projectId: identyfikator projektu

Nagłówki żądania:

  • Content-Type - application/json

  • auth-key - klucz elektroniczny umożliwiający dostęp do projektu w Ringostat

  • x-project-id - identyfikator projektu

Treść żądania:

Nazwa parametru

Typ danych

Wymagany

Opis

projectId

string

Tak

Identyfikator projektu (określony w bloku dostępu)

creatorId

string

Tak

Identyfikator użytkownika tworzącego pracownika

access

string

Tak

Poziom dostępu pracownika (1 - admin, 2 - analityk, 4 - menedżer)

wire

string

Tak

Imię i nazwisko pracownika

email

string

Tak

Adres e-mail pracownika

extensionNumber

string

Tak

Numer wewnętrzny pracownika (2-5 cyfr)

directions

object

Tak

Konfiguracja kierunków połączeń pracownika

departments

array

Tak. Może = null

Tablica nazw działów (bez rozróżniania wielkości liter)

isHasAccessToPowerDialer

boolean

Nie (domyślnie: false)

Dostęp do Power Dialer

language

string

Nie (domyślnie: język użytkownika creatorId)

Język interfejsu pracownika (ukr, eng, rus, bul, pol).

roleName

string

Nie (domyślnie rola jest określana na podstawie access)

Rola pracownika (systemowa lub niestandardowa). Rola systemowa musi odpowiadać wartości access (1 — admin, 2 — analyst, 4 — staff). Rola niestandardowa musi istnieć w projekcie.

Przykład dla 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: "Ivan Petrenko",
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) => {
thet 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();

Przykład dla 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: "Ivan Petrenko",
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);
});

Przykład dla 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": "Ivan Petrenko",
"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
}'

Wynik:

{
"jsonrpc": "2.0",
"result": {
"result": true
},
"id": 1
}

Ograniczenia:

  • Maksymalnie 6 kierunków połączeń na pracownika

  • Maksymalnie 3 konta SIP w kierunkach głównych

  • Maksymalnie 3 konta SIP w kierunkach dodatkowych

  • Maksymalnie 3 numery telefonów w kierunkach głównych

  • Maksymalnie 3 numery telefonów w kierunkach dodatkowych

  • Numer wewnętrzny: 2-5 cyfr

  • Hasło SIP: minimum 14 znaków

  • Imię i nazwisko: tylko litery i spacje

  • E-mail: prawidłowy format adresu e-mail

Czy to odpowiedziało na twoje pytanie?