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.
O sesiune API CRM parcurge următoarele etape:
- Deschidere conexiune;
- Autentificare;
- Răspuns autentificare;
- Obținere informații suplimentare (opțional);
- Notificări apeluri trimise de server;
- Închidere conexiune.
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
sauoutgoingCall
; - 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
sauno
) 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"}