Reports
The most relevant endpoints are located at https://api-nguc.weblink.se/swagger/#/Report.
How to get required data
- Get the different report types that can be specified: GET /company/report/type
The "group" key gives a hint about what optional data can be used.
Example request:
curl \ -H "Authorization: Bearer {TOKEN}" \ "https://api-nguc.weblink.se/company/report/type"Success response:
[ { "id": "1", "name": "Queue - Missed", "description": null, "group": "queue", "added": "2015-06-24 00:00:00", "class_name": "ReportQueueMissed" }, ] - Get which fields can be used for configuring the report: GET /company/report/argument/fields
The key of the returned object is the id of the report type except "any" which are fields that're valid for all report types.
Example request:
curl \ -H "Authorization: Bearer {TOKEN}" \ "https://api-nguc.weblink.se/company/report/argument/fields"Success response:
{ "all": [ { "key": "format", "description": "The format of the emailed file?", "mandatory": "1", "type": "enum('html', 'csv', 'xlsx', 'pdf')" }, { "key": "email", "description": "The email to send the report to?", "mandatory": "1", "type": "email" }, { "key": "only_when_data", "description": null, "mandatory": "0", "type": "bool" }, { "key": "report_language", "description": "Not doing anything, yet", "mandatory": "0", "type": "enum('en_GB')" } ], "1": [ { "key": "queue_id", "description": null, "mandatory": "0", "type": "pbx_queue" }, { "key": "option", "description": null, "mandatory": "0", "type": "enum('missedCalls', 'queueRapportPerDay', 'memberRapportPerHour')" } ],
How to get optional data for certain reports
- Get the values that are valid for certain types fields: (The id is used in the different argument calls)
- pbx_app_callback_destination: Get callback destinations
- pbx_queue: Get company queues
- pbx_user: Get company users
Valid formats:
- csv
- html
- xlsx
Valid intervals:
- hour
- day
- week
- month
List existing reports GET /company/report
It's possible to set the GET variables "limit" and "limit_from" to change how many results are returned.
Example request:
curl \
-H "Authorization: Bearer {TOKEN}" \
"https://api-nguc.weblink.se/company/report?limit_from=0&limit=5"
Success response:
{
"count": "21",
"limit": 1,
"limit_from": 20,
"reports": [
{
"arguments": {
"format": [
{
"id": "25341",
"value": "csv",
"added": "2024-09-02 14:26:51"
}
],
"email": [
{
"id": "25342",
"value": "test@example.com",
"added": "2024-09-02 14:26:51"
}
]
}
}
]
}
Commonly used endpoints
Body:
{
"interval": "hour",
"active": 0,
"name": "",
"description": "",
"email_link_only": 0,
"report_type_id": "1",
"arguments": [
{
"key": "format",
"value": "csv"
},
{
"key": "email",
"value": "test@example.com"
}
]
}
Example:
curl \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d \
'{
"interval": "hour",
"active": 0,
"name": "",
"description": "",
"email_link_only": 0,
"report_type_id": "1",
"arguments": [
{
"key": "format",
"value": "csv"
},
{
"key": "email",
"value": "test@example.com"
}
]
}' \
"https://api-nguc.weblink.se/company/report"
If successful the JSON {"id":"2613"} is returned with the id the report got in the system.
Example:
curl \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d \
'{
"key": "option",
"value": "missedCalls"
}' \
"https://api-nguc.weblink.se/company/report/2613/argument"
If successful the JSON {"id":"25343"} is returned with the id the argument got in the system.
Same body as create report without the bottom two keys.
Example:
curl \
-X PATCH \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d \
'{
"interval": "hour",
"active": 0,
"name": "Test",
"description": "",
"email_link_only": 0
}' \
"https://api-nguc.weblink.se/company/report/2613"
Returns an empty array.
Same jsonBody as create report argument.
Example:
curl \
-X PATCH \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d \
'{
"key": "option",
"value": "queueRapportPerDay"
}' \
"https://api-nguc.weblink.se/company/report/2613/argument/25343"
Example:
curl \
-X DELETE \
-H "Authorization: Bearer {TOKEN}" \
"https://api-nguc.weblink.se/company/report/2613"
Example:
curl \
-X DELETE \
-H "Authorization: Bearer {TOKEN}" \
"https://api-nguc.weblink.se/company/report/2613/argument/25343"
The e-mails used are the once that're assigned to the report as "email" arguments.
Example:
curl \
-H "Authorization: Bearer {TOKEN}" \
"https://api-nguc.weblink.se/company/report/2613/send"
Example:
curl \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d \
'{
"interval": "hour",
"report_type_id": "1",
"arguments": [
{
"key": "format",
"value": "csv"
},
{
"key": "email",
"value": "test@example.com"
}
]
}' \
"https://api-nguc.weblink.se/company/report/download/csv"
Example:
curl \
-H "Authorization: Bearer {TOKEN}" \
"https://api-nguc.weblink.se/company/report/{id}/download/{format}"