- onecontact reporting rest api
Cette API permet la récupération des CDR d’interaction historiques (Inbound, Outbound et Manual) ainsi que les informations, les enregistrements qui leurs sont associés(appel, email et chat) . D’autres opérations sont aussi possibles sur les enregistrements disponibles telles que la mise à jour de certaines informations, leur suppression, ou le déploiement d’un rapport de statistique.
Dans cet article, nous allons présenter les blocs ci-dessous.
Inbound: plusieurs webservices sont disponibles pour recupérer les CDRs interaction entrantes du tenant
- POST /api/tenants/{tenantId}/Inbound:Search Get all inbound interactions
- POST /api/tenants/{tenantId}/Inbound/{sessionId}:Search Get interaction details
- POST /api/tenants/{tenantId}/Inbound/Recordings:Search Get recording information about all interactions
- POST /api/tenants/{tenantId}/Inbound/{sessionId}/Recordings:Search Get recording information about an inbound interaction
- POST /api/tenants/{tenantId}/Inbound/Recordings:Export Export inbound recordings
Outbound: plusieurs webservices sont disponibles pour demander des statistiques sur les agents d’une campagne ou demander des statistiques de toutes les campagnes pour un agent:
POST /api/tenants/{tenantId}/Outbound:Search Get all outbound interactions
POST /api/tenants/{tenantId}/Outbound/Recordings:Search Get recording information about all interactions
POST/api/tenants/{tenantId}/Outbound/{serviceID}/{contactID}/{contactListID}:Search Get interaction details
POST /api/tenants/{tenantId}/Outbound/{serviceID}/{contactID}/{contactListID}/Recording:Search Get recording information about an outbound interactiontails
POST /api/tenants/{tenantId}/Outbound/Recordings:Export Export outbound recordingsn
Manual: pour avoir des statistiques sur une campagne ou toutes campagnes entrantes:
- POST /api/tenants/{tenantId}/Manual:Search Get all manual interactions
- POST /api/tenants/{tenantId}/Manual/{interactionID}:Search Get interaction details
- POST /api/tenants/{tenantId}/Manual/{interactionID}/Recordings:Search Get recording information about an outbound interaction
- POST /api/tenants/{tenantId}/Manual/Recordings:Search Get recording information about all interactions
- POST /api/tenants/{tenantId}/Manual/Recordings:Export Export manual recordings
Recording: pour avoir des statistiques sur une campagne ou toutes campagnes sortantes, ainsi que sur une list de contacts:
- PUT /api/tenants/{tenantId}/Interactions/{interactionID}/Recordings Update information about a recording
- DELETE /api/tenants/{tenantId}/Interactions/{interactionID}/Recordings Update information about a recording being deleted
- GET /api/tenants/{tenantId}/AgentSessions/{agentSessionID}/Recordings Get recordings file location
- PUT /api/tenants/{tenantId}/AgentSessions/{agentSessionID}/Recordings Update information about a recording
- DELETE /api/tenants/{tenantId}/AgentSessions/{agentSessionID}/Recordings Update information about a recording being deleted
- POST /api/tenants/{tenantId}/Interactions/{interactionID}/Recordings/:FileCopied Update information about a recording being copied
- POST /api/tenants/{tenantId}/AgentSessions/{agentSessionID}/Recordings/:FileCopied Update information about a recording being copied
- POST /api/tenants/{tenantId}/StoreRecording Create recording
- GET /api/tenants/{tenantId}/GetRecordingByID/{id} Get recording information
- GET /api/tenants/{tenantId}/IMRecordingByID/{interactionId} Get IM recording information
- GET /api/tenants/{tenantId}/GetRecordingURL/{id} Get recording physical location
- DELETE /api/tenants/{tenantId}/Interactions/{interactionId}/Recordings/Audio/{recordId} Delete a audio recording
- DELETE /api/tenants/{tenantId}/Interactions/{interactionId}/Recordings/Audio Delete all audio recordings
- DELETE /api/tenants/{tenantId}/AgentSessions/{agentSessionId}/Recordings/Screen/{recordId} Delete a screen recording
- DELETE /api/tenants/{tenantId}/AgentSessions/{agentSessionId}/Recordings/Screen Delete all screen recordings
Important
Le paramètre URL ApiVersion est une obligation. Souvent c’est la dernière version indiquée dans le swagger qu’il faut utiliser. Dans certains cas, la dernière version n’est pas supportée par certains webservice, il faut changer la version pour que cela fonctionne.
Exemple : Le webservice « /api/tenants/{tenantId}/Services/{id}/Agents » nécessite le version 1.1 (pas la version 1.16)
Note 1 :
Filtres
Un certain nombreS de WebServices supportent l’application des filtres dans la requête pour cibler les données à retourner. Pour cela il faut utiliser le paramètres « $filter » dans le body et se servir des filtres disponibles :
- startDate: (date au format AAAA-MM-JJTHH24:MI:SS.000) date/heure début du filtre des enregistrements à retourner
- endDate:(date au format AAAA-MM-JJTHH24:MI:SS.000) date/heure fin du filtre des enregistrements à retourner
- mediaType: (entier de la liste des media type) id du mediaType à retourner.
En plus du paramètre « $filter » dans le body, d’autres paramètres peuvent aussi être utilisés pour adapter le résultat à retourner par le webservice, comme:
- $includesubitems: (true / false): Si les enregistrements retournés disposent de sous éléments et ce paramètre est positionné à true, ces sous éléments seront retournés.
- $commandtimeout: (entier) : timeout d’exécution de la requête
- $searchFirst: (true / false): ???
Note 2 :
Les retours des webServices
Globalement, en retour des WebServices, on obtient un objet entenant entre autre un tableau « values » qui contient de son tour une liste l’éléments. Les autres éléments retournés dans l’objet sont les suivants :
- @pageIndex: le numéro de page parmi une liste de pages en retour du WebService, la page suivante se trouve dans l’url contenu dans le paramètre \@nextPage ( (la valeur par défaut est 0, il peut être modifiée ou spécifiée en passant un paramètre [$pageIndex ] dans l’URL en envoyant la requête))
- @pageSize: le nombre d’éléments retournés dans la page dans la page (la valeur par défaut est 25, il peut être modifiée ou spécifiée en passant un paramètre [$pageSize] dans l’URL en envoyant la requête)
- @count: le nombre d’éléments disponibles globalement. Ce nombre sera répartiré par lot d’élements sur les pages retournées selon le nombre d’élements souhaité par page.
- @previousPage: l’url de la page précedente (contient null pour la première page 0)
- @nextPage: l’url de la page suivante (contient null pour la dernière page N)
Note 3
Pour tester l’API il faut avoir un token
Articles connexes :
Obtenir les CDRs des interactions entrantes
Obtenir le détail d’une interaction entrante
Obtenir les statistiques sur les agents d’une campagne