Mod de funcționare pentru API CRM extern

API CRM oferă doar sistemul de notificare asupra unui apel primit sau atunci când a fost format un numar de telefon. Modul în care aceasta notificare este gestionată intră în sarcina dumneavoastră. Daca doriți, vă putem oferi consultanță pentru implementarea sistemului pe aplicațiile CRM utilizate de dumneavoastră.

Pentru inițializarea unei conexiuni este necesar id-ul unic corespunzător agentului. Acesta se regăsește în câmpul CRM Extern, afișat în containerul TELEFON din interfața agentului.

Locație câmp CRM Extern
Locație câmp CRM Extern

O sesiune API CRM parcurge următoarele etape:

Deschidere conexiune

Conexiunea cu serverul este realizată folosind web-sockets. Informațiile transmise sunt formatate conform standardului JSON. Cererile se vor transmite către adresa wss://client.voipit.ro:14327.

Autentificare

Dupa inițializarea conexiunii aplicația de CRM trebuie să transmită către serverul Accolades un pachet pentru autentificare.

{"type":"authRequest", "idCrm":"f8cb549544"}

Pachetul conține doi parametrii:

"type":"authRequest"
definește tipul pachetului: authRequest (cerere de autentificare);
"idCrm":"f8cb549544"
definește ID-ul agentului care se va monitoriza.

Răspuns cerere autentificare

Urmare a cererii de autentificare, serverul va răspunde cu un mesaj care conține statusul cererii.

{"type":"authSucces", "version":"X.X.X"}

{"type":"authFailed", "reason":"MOTIV"}

Pachetul de tip "authSucces" confirmă realizarea conexiunii. Pachetul conține versiunea curenta a API, în parametrul "version".

Pachetul de tip "authFailed" notifică o eroare de autentificare, furnizând, de asemenea, un motiv:

ID_NOT_FOUND
id-ul furnizat nu există;
IP_MISSMATCH
IP-ul agentului conectat nu corespunde cu IP-ul de la care a fost inițializata cererea;
CONNECTION_EXISTS
agentul deja are o conexiune API CRM deschisă.

Obținere informații suplimentare

În procesul de utilizare a serviciilor call center, aplicația Accolades utilizează 3 tipuri de entități:

telefonul
reprezintă telefonul (fie ca este vorba de un aparat fizic sau o aplicație software) utilizat;
contul
reprezintă contul de corespunzător telefonului utilizat;
agentul
reprezintă agentul care utilizează telefonul.

Folosind interfața Accolades, pentru fiecare din aceste entități, se poate salva un text de maximum 2000 de caractere (vezi tabul API din fișa fiecărei entități). Cu ajutorul acestei metode este posibilă "încărcarea" unor variabile în aplicația conectată la API (de exemplu, se poate salva un text în format JSON, XML, CSV sau orice alt format).

Pentru a se obține informațiile suplimentare, aplicația CRM trebuie să transmită către serverul Accolades pachetul urmator:

{"type":"configuration"}

Serverul Accolades va răspunde cu informațiile despre cont, telefon și agent sub forma unui pachet de tipul:

{
  "type": "configuration",
  "account": {
    "id": "15",
    "data": "INFO_ACCOUNT"
  },
  "phone": {
    "id": "27",
    "data": "INFO_PHONE"
  },
  "agent": {
    "id": "321",
    "data": "INFO_AGENT"
  },
}

Pachetul conține următoarele proprietăți:

type
reprezintă tipul pachetului: configuration;
account, phone, agent
reprezintă un set de proprietăți corespunzator uneia din cele 3 entități descrise mai sus: cont, telefon și agent din call center;
id
reprezintă id-ul numeric unic pe care entitatea îl are în baza de date;
data
reprezintă textul corespunzător entității (asa cum a fost salvat folosind interfața grafică).

Id-urile entităților sunt unice la nivel de entitate. Adică nu vor exista niciodată doi agenți cu id-ul 15, însă este posibil ca un agent sa aibă id-ul 15 și un cont să aiba id-ul 15.

Notificare apel

În cazul în care autentificarea a fost realizată cu succes, serverul Accolades va notifica aplicația CRM atunci când agentul urmează să primească un apel. Notificarea se realizează cu un pachet de tipul:

{
  "type": "incomingCall",
  "phoneNumber":"0211234567",
  "uniqueId":"1608743891.1344"
  "callCenter":"yes"
}

Pachetul conține trei parametrii:

type
definește tipul pachetului și poate avea valorile incomingCall sau outgoingCall;
phoneNumber
numărul de telefon corespunzător apelului;
uniqueId
id-ul unic pe care îl are apelul, în formatul număr.număr;
callCenter
(yes sau no) dacă parametrul are valoarea "yes" atunci apelul a fost realizat prin intermediul sistemului call-center (un apel de intrare venit pe o coadă de așteptare sau un apel de ieșire inițializat urmare a unei campanii), valoarea "no" indică un apel direct (aparatul telefonic a fost apelat direct sau cineva a format direct de la aparat).

Verificare versiune

În prezent API are versiunea 1.1.0. Sistemul de versionare implementat utilizeaza modelul Sequence-based identifiers (major.minor.patch), inclusiv din punct de vedere al compatibilitatii.

Pentru a se verifica versiunea care ruleaza pe server, clientul trebuie să transmită către server pachetul urmator:

{"type":"version"}

Urmare a pachetului transmis mai sus, serverul va răspunde cu un pachet de tipul:

{"type":"version", "value":"1.1.0"}

Închidere conexiune

În cazul în care serverul Accolades decide închiderea conexiunii, din diverse motive (de exemplu, agentul nu mai are interfața Accolades deschisă) atunci serverul va transmite un pachet care anunță acest lucru, dupa care va închide conexiunea:

{"type":"connectionClosed"}