Performance Management Results Analysis Report
Shared Explore API patternThis report is exposed through the same shared Explore API report-job pattern used by other report types (WFM, QM, CSAT, etc.). It is not a dedicated new endpoint.
Overview
The Performance Management (PM) Results Analysis report is available through the existing Explore API report-job workflow. This lets customers extract PM results data into their own data warehouse or BI tooling instead of manually exporting the report from the product UI.
This report belongs to Talkdesk Performance Management and is exposed through the same shared Explore API pattern used by other report types.
Use this report when you need recurring, programmatic access to agent measure results for analytics, dashboards, or downstream performance review workflows.
Typical use cases include:
- Syncing agent performance measure results into an external data warehouse on a schedule.
- Building custom dashboards that combine PM data with operational or business data.
- Automating performance review inputs without manually downloading report files.
Business Problem-Solving Context
What can I achieve with this API?
- Pull agent-level measure results — Request the Results Analysis report for a given period using the report-job API.
- Track report generation status — Poll the job by ID until processing finishes, then download the generated file.
What business problems does this API solve?
- Manual export elimination — Removes the need to log in, run the report, and manually send exported files to a data team.
- Data warehouse integration — Supports scheduled ingestion of PM data alongside other Explore exports.
- Consistency with existing tooling — Reuses the same Explore job pattern customers may already use for WFM, QM, CSAT, and other report types.
What does this API support, and what are its limitations?
- A maximum of 15 simultaneous report jobs per account is allowed across all report types.
- Supported output formats are
csv,json, andjson_bulk. - Time filtering is defined with
timespan.fromandtimespan.tousing ISO 8601 date-time values. - This report uses the shared Explore API job model rather than a custom PM-specific execution flow.
- The simultaneous job quota is shared at the account level across Explore report types, not reserved specifically for
pm_result_analysis.
Use Case: Pulling the Results Analysis Report into a Data Warehouse
A workforce analytics team wants to track agent measure results outside of Talkdesk:
- Create a report job with
POST /data/reports/pm_result_analysis/jobs, providing a timespan and optional output format such ascsv. - Poll the job status using
GET /data/reports/pm_result_analysis/jobs/{id}until the report reaches a final state. - When the job is complete, call
GET /data/reports/pm_result_analysis/files/{id}to retrieve the generated file through a redirect to a pre-signed download URL.
Usage
The pm_result_analysis report is retrieved through the shared Explore API job endpoints:
POST /data/reports/pm_result_analysis/jobs— Creates a new report jobGET /data/reports/pm_result_analysis/jobs/{id}— Retrieves job execution statusGET /data/reports/pm_result_analysis/files/{id}— Retrieves the generated report file
Create a Report Job
POST /data/reports/pm_result_analysis/jobs
POST https://api.talkdeskapp.com/data/reports/pm_result_analysis/jobs
Content-Type: application/json
Creates a new report job for the authenticated account.
Request Body
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | None | Label for the report job. Does not affect report contents. |
| format | string | No | csv | Output format: csv, json, or json_bulk. |
| timezone | string | No | None | IANA timezone applied to the provided timespan. |
| timespan.from | string (date-time) | No | None | Start of the reporting period. |
| timespan.to | string (date-time) | No | None | End of the reporting period. |
Response: 202 Accepted
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "created"
}Error Responses
| HTTP Status | Description |
|---|---|
| 400 | Bad Request — invalid input, invalid timespan, or invalid timezone |
| 401 | Unauthorized |
| 403 | Inputs Misconfiguration, such as a missing required scope |
| 429 | Too Many Requests — the account-level simultaneous job quota has been reached |
| 503 | Unable to audit operation |
Retrieve Job Status
GET /data/reports/pm_result_analysis/jobs/{id}
GET https://api.talkdeskapp.com/data/reports/pm_result_analysis/jobs/{id}
Retrieves the current execution state of a report job.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | The unique identifier of the report job returned by the create-job request. |
Response
Returns 200 OK while the job is in progress, or may return a redirect when the report is already available.
Job Status Lifecycle
| Status | Description |
|---|---|
| created | The job was accepted and created. |
| processing | The report is being generated. |
| uploading | The generated file is being prepared for retrieval. |
| done | The report is complete and available for download. |
| failed | The report job ended unsuccessfully. |
| canceled | The report job was canceled. |
| deleted | The report job was deleted. |
Error Responses
400, 401, 403, 404 (job not found), 503
Retrieve the Report File
GET /data/reports/pm_result_analysis/files/{id}
GET https://api.talkdeskapp.com/data/reports/pm_result_analysis/files/{id}
Retrieves the generated report file for a completed job.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | The identifier of the completed report job whose output file should be downloaded. |
Response: 302 Found
The response redirects to a pre-signed download URL in the Location header.
Error Responses
400, 401, 403, 404 (file not found), 503
Report Field Schema
Synthetic example data onlyThe example values below are synthetic placeholders. Real captured output may contain personally identifiable information and should not be copied into public documentation.
The CSV column headers use the report's display labels in Title Case rather than raw internal field IDs.
Agent,Agent ID,Agent Email,Agent Name,Measure Name,Team ID,Team Name,Queue Type,Queue Name,Volume,Result Value,Goal Value,Mean Value,Interval Type,LeaderBoard Date
AGENT-PLACEHOLDER-001 ([email protected]) [AGENT-ID-PLACEHOLDER-001],AGENT-ID-PLACEHOLDER-001,[email protected],AGENT-NAME-PLACEHOLDER-001,SCHEDULE ADHERENCE,TEAM-ID-PLACEHOLDER-001,Example Team,All,,63000,17.14,31.25,15.21,Monthly,2026-02-01| Column Header | Description |
|---|---|
| Agent | Composite display value in the format Name (Email) [Agent ID]. |
| Agent ID | Unique identifier of the agent. |
| Agent Email | Email address of the agent. |
| Agent Name | Display name of the agent. |
| Measure Name | Name of the performance measure used to calculate the result, such as SCHEDULE ADHERENCE or AVERAGE HANDLE TIME. |
| Team ID | Unique identifier of the team associated with the row when team-scoped. |
| Team Name | Name of the team associated with the row when team-scoped. |
| Queue Type | Indicates whether the result applies to All queues or a Specific queue. |
| Queue Name | Name of the queue when Queue Type is Specific. |
| Volume | Number of interactions or events used to calculate the result. |
| Result Value | The agent's measured result for the period. |
| Goal Value | The target value defined for the measure during the period. |
| Mean Value | The average result across agents for the measure during the period. |
| Interval Type | Aggregation interval of the record, such as Daily, Weekly, or Monthly. |
| LeaderBoard Date | Reference date of the entry in YYYY-MM-DD format. |
Authentication & Authorization
This API requires OAuth 2.0 authentication using a Bearer token with the client credentials grant.
| Scope | Required for |
|---|---|
data-reports:write | POST requests that create report jobs |
data-reports:read | GET requests that retrieve job status or files |
Subscription Limits
- Maximum of 15 simultaneous report jobs per account, shared across all Explore report types.
- Rate limit of 25 requests per second per account on the
/data/reports/**route. - Pre-signed download URLs remain valid until expiration, according to the shared Explore file delivery behavior.
Updated about 7 hours ago