Overview: #
The API aims to retrieve call reports from all the trunks within an organization. The purpose of this API is to offer detailed call data to authorized users, enabling them to monitor, analyze, and manage telecommunication activities effectively.
Purpose #
Enable authorized users to access detailed call reports from all trunks, facilitating effective analysis and decision-making processes.
Scope #
The scope of this API includes:
- Retrieving call details from all trunks.
- Filtering and sorting call data based on various parameters.
- Providing aggregated call statistics.
Data available #
- For Inbound or Outbound Calls
- Total Calls: Total calls (inbound and outbound)
- Agent Full name: Full name of the agent
- Agent Extension: Call extension of the agent
- Trunk: Trunk number used by the agent to make the call
- Call Date: Date and time the call was made or received
- Duration: Length of the call in seconds.
- Disposition: Disposition of a call, eg Answered/Unanswered/Busy
- Phone Number: Phone number of the caller for inbound calls or phone number of the recipient for outbound calls.
- Call Type: Type of a call e.g. inbound or outbound
- Wrap-up: Wrap-up value of the call.
- For Calls in queue:
- Trunk: Trunk number used by the agent to receive the call
- Date: Date and time of a call
- Caller ID: Shows the name of a queue with the caller’s phone number
- Source: Caller phone number
- Duration: Length of the call in seconds.
- Queue Name: Name of a queue
API Endpoints #
- Supported HTTP request method: GET
API Link:
- Mandatory Fields:
- token: A token will be provided by Voxcrow
- Optional Fields:
- trunk: A trunk number used by an agent.
- start_date : starting date of the call details of specific trunk
- end_date : end date of the call details of specific trunk
- disposition : disposition/outcome of a call eg: ANSWERED,NO ANSWER,MISSED,BUSY
- note: Higher date range could impact response time. For now, the date range can be set to a maximum of 1 month.These fields are optional but should be provided together if date filter is neededDatetime should be in 24 hour format
1. Get All (Inbound & Outbound) Call Report #
- Endpoint:
/getdesk/CallReportAPI?token=xxxx
/getdesk/CallReportAPI?trunk=xxx&token=xxxx
/getdesk/CallReportAPI?token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
/getdesk/CallReportAPI?trunk=xxx&token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
- Method: GET
- Description: Retrieves the total number of all calls (inbound and outbound) made in the last 30 days.
- Response:
{
"total_calls": 270,
"total_inbound_calls": 10,
"total_outbound_calls": 260,
"total_talk_time": "01:23:49",
"average_talk_time": "00:00:18",
"disposition_count": {
"ANSWERED": 101,
"NO ANSWER": 144,
"BUSY": 20,
"FAILED": 5
},
"call_details": [
{
"agent_fullname": "Michael D Santa",
"phone_number": "9820202020",
"agent_extension": "1001",
"trunk": "+97715970451",
"calldate": "2024-05-03 15:48:07",
"duration": 00:00:32,
"disposition": "ANSWERED",
"call_type": "outbound",
"wrapup_name": "",
"wrapup_note": null
},
{
"agent_fullname": "Trevor Philips",
"phone_number": "9810101010",
"agent_extension": "1001",
"trunk": "+97715970451",
"calldate": "2024-05-03 15:42:24",
"duration": 14,
"disposition": "NO ANSWER",
"call_type": "inbound",
"wrapup_name": "Session Time Out > Session Time Out > Session Time Out > Session Time Out",
"wrapup_note": "call retin"
}
...
]
}
2. Get Inbound Call Report #
- Endpoint:
/getdesk/CallReportAPI/inbound?token=xxxx
/getdesk/CallReportAPI/inbound?trunk=xxx&token=xxxx
/getdesk/CallReportAPI/inbound?token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
/getdesk/CallReportAPI/inbound?trunk=xxx&token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
- Method: GET
- Description: Retrieves the total number of inbound calls received in the last 30 days.
- Response:
{
"total_inbound_calls": 10,
"total_talk_time": "00:01:37",
"average_talk_time": "00:00:09",
"disposition_count": {
"ANSWERED": 9,
"NO ANSWER": 1
},
"call_details": [
{
"agent_fullname": "Trevor Philips",
"phone_number": "9810101010",
"agent_extension": "1001",
"trunk": "+97715970451",
"calldate": "2024-05-03 15:42:24",
"duration": 00:00:14,
"disposition": "NO ANSWER",
"call_type": "inbound",
"wrapup_name": "Session Time Out > Session Time Out > Session Time Out > Session Time Out",
"wrapup_note": "call retin"
}
...
]
}
3. Get Outbound Call Report #
- Endpoint:
/getdesk/CallReportAPI/outbound?token=xxxx
/getdesk/CallReportAPI/outbound?trunk=xxx&token=xxxx
/getdesk/CallReportAPI/outbound?token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
/getdesk/CallReportAPI/outbound?trunk=xxx&token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
- Method: GET
- Description: Retrieves the total number of outbound calls made in the last 30 days.
- Response:
{
"total_outbound_calls": 260,
"total_talk_time": "01:22:12",
"average_talk_time": "00:00:18",
"disposition_count": {
"ANSWERED": 92,
"NO ANSWER": 143,
"BUSY": 20,
"FAILED": 5
},
"call_details": [
{
"agent_fullname": "Michael D Santa",
"phone_number": "9820202020",
"agent_extension": "1001",
"trunk": "+97715970451",
"calldate": "2024-05-03 15:48:07",
"duration": 00:00:32,
"disposition": "ANSWERED",
"call_type": "outbound",
"wrapup_name": "",
"wrapup_note": null
}
...
]
}
4. Get Queue Call Report #
- Endpoint:
/getdesk/CallReportAPI/queue?token=xxxx
/getdesk/CallReportAPI/queue?trunk=xxx&token=xxxx
/getdesk/CallReportAPI/queue?token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
/getdesk/CallReportAPI/queue?trunk=xxx&token=xxxx&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
- Method: GET
- Description: Retrieves the total number of calls in queue made in the last 30 days.
- Note : Queue has single disposition for now so there is no disposition filter for queue
- Response:
{
"total_calls_in_queue": 12,
"disposition_count": {
"CALL ABANDONED": 9
"IVR ANSWERED": 3
},
"call_details": [
{
"trunk": "+97715970451",
"date": "2024-07-30 02:54:13 PM",
"caller_id": "\Software:"9860909237\" <9860909237>",
"source": "9860909237",
"duration": "00:00:00",
"disposition" : "CALL ABANDONED",
"queue_name": Software
},
...
]
}