Auto attendant and Call queue historical reports

Important

GCC High and DoD customers need to use Auto attendant and call queue historical reports for GCC High and DoD.

This Power BI template provides three reports that allow organizations to report on the number of calls processed by Auto attendants and Call queues. It also provides agent performance insights.

V3.1.8 published on August 12, 2024

The Teams Auto Attendant & Call Queue Historical Report Power BI template provides the following three reports:

  • The Auto Attendant report shows analytics for calls coming into your Auto attendants.
  • The Call Queue report shows analytics for calls coming into your Call queues.
  • The Agent Timeline report shows a timeline view of agents being active in Call queue calls.

These reports use data from the Voice Applications Analytics Collector (VAAC) service.

V3.x.x prerequisites

Power BI Desktop

You need to have Power BI Desktop installed. You can install and use the free version from the Microsoft Windows Store.

Important

Power BI Desktop is updated and released on a monthly basis, incorporating customer feedback and new features. Only the most recent version of Power BI Desktop is supported. Customers who contact support for Power BI Desktop are asked to upgrade to the most recent version. You can get the most recent version of Power BI Desktop from the Windows Store, or as a single executable containing all supported languages that you download and install on your computer.

Power BI Service

These reports can be published to the Power BI service.

Once the report is published:

  1. Go to the dataset Settings.
  2. Expand the Data source credentials section.
  3. Select Edit credentials.
  4. Set the Authentication method to OAuth2.
  5. Ensure Skip test connection is enabled.
  6. Select Sign in and provide your credentials.

When completed, you're able to configure a scheduled refresh of the dataset.

Access permissions

Use one of the following methods to control access to the historical reports:

  • Voice applications policy

    To control which Auto attendants, Call queues, and Agents users can report on without providing them access to Teams admin center, create a voice applications policy that grants them access to historical reporting and assign them as an Authorized user to the appropriate Auto attendants and Call queues. As an admin, you can create a voice applications policy in the Team admin center or with PowerShell.

    For more information about creating a voice applications policy, see Manage voice applications policies in Microsoft Teams.

    Tip

    Using the voice applications policy to control access is the recommended approach. With the voice applications policy and Authorized users it is possible to control which Auto attendants, Call queues, and Agents a user can report on. If necessary, the policy still allows a user to report on all Auto attendants, Call queues, and Agents without providing access to Teams admin Center.

  • Call Quality Dashboard (CQD) pipeline [legacy]

    If you want the user to report on all the Auto attendants, Call queues, and Agents in the tenant and you want to grant the user access to Teams admin center to run other Usage reports, assign the user a CQD access role with both View Reports and View EUII fields set to Yes.

    For more information, see CQD access role.

    Note

    If a user is assigned a CQD access role and a voice applications policy, the CQD role takes precendence and the user can see all the Auto attendants, Call queues, and Agents in the tenant.

V3.x.x desktop installation

The following steps assume the Power BI Desktop client is installed on your computer and that your account has the necessary permissions to access the CQD data pipeline.

Perform the following steps:

  1. Download and save the Teams Auto Attendant & Call Queue Historical Reports V3.1.8.zip file on your computer.

  2. Open the zip file.

  3. Open the Teams Auto Attendant & Call Queue Historical Reports V3.1.8.pbit template file. Power BI Desktop should launch.

  4. Select the DataSource, Report Level, and UTC Offset.

    Screenshot showing the DataSource, Report Level, and UTC Offset selections.

    • DataSource: Select the api.interfaces.records.teams.microsoft.com entry.
    • Report Level:
      • Select Per Call (default) to retrieve all the individual call records.
      • Select Per Day to retrieve an aggregated total for each day.
    • UTC Offset: Select the UTC offset that represents the time zone the reports are presented in. Only valid when the Report Level is set to Per Call

    Per Day vs Per Call

    • Per Call reporting retrieves the individual call records for each Auto attendant, Call queue, and Agent the user is authorized for and makes them available in the Power BI client. Per Call reporting also allows call records to be displayed in the local time zone selected by the user. For some customers, especially those using the CQD access role to control access, Per Call reporting might result in hitting the 90,000 default or 200,000 per query record limit. In this case, the Per Day reporting option should be selected.

    • Per Day reporting retrieves one daily summary record for each Auto attendant, Call queue, and Agent. This results in fewer records being returned to the client, reducing the possibility of hitting the 90,000 default or 200,000 per query record limit. Per Day reporting is based on a UTC-00:00 day (00:00:00-23:59:59 UTC) only and any UTC offset supplied by the user is ignored.

  5. Sign in with your Teams account.

    • Select File, then Options and settings, and then Data source settings.
    • Select Edit Permissions, and then Edit.
    • Select Organizational account, and then Sign in.
    • Select Save, then OK, and then Close.

    Screenshot showing sign-in for V3.x.x.

  6. Select Refresh, in the ribbon bar and the data refreshes.

Data latency for Auto attendant and Call queue analytics

The data is typically available within 30 minutes of the call being completed, but there are cases where it can take several hours for the data to appear.

You have to refresh the report to see any new data.

Auto attendant and Call queue historical reports

Cloud Auto Attendant Analytics report

Interpret the report

Screenshot showing sample cloud auto attendant analytics report.

Callout Title Description
1 Date The start and end date of the report.
Use this slider to select the date range to report on.

See Known Issues
2 Time Range The start and end hour of the report. The report spans all dates/times from start date/start hour to the end date/end hour.
Use this slider to select the time range to report on.
3 Auto Attendant Resource Accounts The Resource Accounts to be reported on. To see the calls for a specific Auto attendant, select all the resource accounts assigned to that Auto attendant. If the full Resource Account name is aa_test@microsoft.com, then this value is: aa_test
Default: All
4 Quick Stats -> Incoming Calls The breakdown shows the total number of calls received between the start date/start hour and end date/end hour.

TIP: Hover over any metric in this section to display a tooltip with the individual calls that make up the total.
5a Quick Stats -> Usage Statistics The breakdown shows the average call duration in the Auto Attendant and the average number of caller actions.
5b Caller Action Count The breakdown on the number of caller actions (key presses, voice commands)
6 Quick Stats -> Directory Search Method The breakdown shows how the Directory Search option was used by callers.
This section of the report is blank if the Auto Attendant isn't configured for this service or if callers don't use it.

Directory Search Method Legend Definitions:
  • DTMF - Caller used the telephone dial pad to search for the user's name
  • Voice - Caller used voice input to search for the user's name
7 Call Results The breakdown shows the call treatment received by callers.

Call Results Legend Definitions:
  • Terminated (No Caller Action) - Call was disconnected - the caller didn't make any selections
  • Terminated (With Caller Action) - Call was disconnected - the caller made selections
  • Terminated (Disconnected) - Call was disconnected per the auto attendant configuration
  • Terminated (No Operator) - Call was disconnected as there was no operator to transfer the call to
  • Terminated (Transfer Failed) - Call was disconnected as the configured transfer failed
  • Transferred (AA) - Call was transferred to another Auto Attendant
  • Transferred (CQ) - Call was transferred to a Call Queue
  • Transferred (Operator) - Call was transferred to the Operator
  • Transferred (Voicemail) - Call was transferred to Shared Voicemail
  • Transferred (External) - Call was transferred to an External Number
  • Transferred (User) - Call was transferred to a Person in the organization
  • Other - Some other condition occurred

TIP: Hover over any metric in this section to display a tooltip with the individual calls that make up the total.
8 The breakdown shows the caller paths through the auto attendant and the final call result.

Column definitions:
  • MM-DD - The month and day the call
  • Start Hour - The hour the call started
  • Name - The Resource Account name
  • Call flow - The call flow the call followed. See Auto Attendant dimensions -> AutoAttendantCallFlow
  • Call Type - The connectivity method for the call. CalllingPlan or DirectRouting
  • Call Result - The end result of the call (see #7 Call Results)
  • Call Count - The number of calls that followed this same path
  • Average Call Duration (seconds) - The average number of seconds the call spent in the Auto Attendant

TIP: Hover over any metric in this section to display a tooltip with the individual calls that make up the total.

Known issues

  1. Only the calls and caller actions in the first Auto attendant that answers the call are reported on. Calls and caller actions in chained Auto attendants (when one Auto attendant transfers to another Auto attendant) aren't reported on.
  2. The Auto attendant resource account ID's name instead of Auto attendant name is shown. To show all the traffic for an Auto attendant, you must select all the resource accounts assigned to the Auto attendant.
  3. Only 28 days of call history are available. Auto attendant data is considered personal data and is subject to data privacy retention policies.
  4. The Date selector sometimes shows dates outside the range of available data resulting in a blank report. Change the dates to be within the last 28 days to resolve the issue.

Cloud Call Queue Analytics report

Interpret the report

Screenshot showing sample cloud call queue analytics report.

Callout Title Description
1 Date The start and end date of the report.
Use this slider to select the date range to report on.

See Known Issues
2 Time Range The start and end hour of the report. The report spans all dates/times from start date/start hour to the end date/end hour.
Use this slider to select the time range to report on.
3 Call Queue Resource Accounts The Resource Accounts to be reported on. To see the calls for a specific Call queue, select all the resource accounts assigned to that Call queue. If the full Resource Account name is cq_test@microsoft.com, then this value is: cq_test
Default: All
4 Quick Stats -> Incoming Calls The breakdown shows the total number of calls received between the start date/start hour and end date/end hour.

TIP: Hover over any metric in this section to display a tooltip with the individual calls that make up the total.
5 Quick Stats -> Average Wait Time (seconds) The breakdown shows the average call duration in the Call Queue before a caller is answered or they abandon.
6 Call Results The breakdown shows the call treatment received by callers.

Call Results Legend Definitions:
  • Abandoned - Caller disconnected before an agent answered or before Call Timeout occurred
  • Agent Answered - Caller was answered by an agent
  • Overflowed - The Call Overflow exception handling condition occurred
  • Timed Out - The Call Timeout exception handling occurred
  • No Agents - The No Agent exception handling condition occurred
  • Other - Some other condition occurred

TIP: Hover over any metric in this section to display a tooltip with the individual calls that make up the total.
7 Call Volume, Abandoned Calls, Agent Opt-in Count The breakdown shows the number of calls received and abandoned per hour and the maximum number of agents that were opted into the call queue at that time
8 Average Session Length (seconds) The breakdown shows how long calls waited before each call result.

  • Agent Answered (Call) - for calls answered by an agent
  • Agent Answered (Callback) - for callbacks answered by an agent
  • Abandoned - for calls abandoned before an agent answered or before Call Timeout occurred
  • Overflowed (Disconnect) - for calls where the Call Overflow exception handling occurred and the treatment was to disconnect
  • Overflowed (Xferred) - for calls where the Call Overflow exception handling occurred and the treatment was to transfer the caller to a Person in the organization or externally
  • Overflowed (Voicemail) - for calls where the Call Overflow exception handling occurred and the treatment was to send the call to shared voicemail
  • Timed Out (Disconnect) - for calls where the Call Timeout exception handling occurred and the treatment was to disconnect
  • Timed Out (Xferred) - for calls where the Call Timeout exception handling occurred and the treatment was to transfer the caller to a Person in the organization or externally
  • Timed Out (Voicemail) - for calls where the Call Timeout exception handling occurred and the treatment was to send the call to shared voicemail
  • No Agents (Disconnect) - for calls where the No Agents exception handling occurred and the treatment was to disconnect
  • No Agents (Xferred) - for calls where the No Agents exception handling occurred and the treatment was to transfer the caller to a Person in the organization or externally
  • No Agents (Voicemail) - for calls where the No Agents exception handling occurred and the treatment was to send the call to shared voicemail
  • Other - for calls where some other condition occurred
9 Call Overflow/Timeout/No Agents Destinations The breakdown shows where the calls that received the Call Overflow, Call Timeout or No Agents exception handling treatment were sent.

  • ApplicationEndpoint - call was transferred to another Auto Attendant or Call Queue
  • Mailbox - call was transferred to shared voicemail
  • Other - some other condition occurred
  • Phone - call was transferred externally
  • User - call was transferred to a Person in the organization

Known issues

  1. Only the calls and caller actions in the first Call queue that answers the call are reported on. Calls in chained Call queues (when one Call queue transfers to another Call queue) aren't reported on.
  2. The Call queues resource account ID's name instead of Call queue name is shown. To show all the traffic for a Call queue, you must select all the resource accounts assigned to the Call queue.
  3. Only 28 days of call history are available. Call queue data is considered personal data and is subject to data privacy retention policies.
  4. The Date selector sometimes shows dates outside the range of available data resulting in a blank report. Change the dates to be within the last 28 days to resolve the issue.

Cloud Call Queue Agent Timeline report

Interpret the report

Screenshot showing sample cloud call queue agent timeline report.

Callout Title Description
1 Date The start and end date of the report.
Use this slider to select the date range to report on.

See Known Issues
2 Agent Username The agents to report on. If the full username is user@microsoft.com, then this value is: user
Default: All
3 Call Queue Resource Accounts The Resource Accounts to be reported on. To see the calls for a specific Call queue, select all the resource accounts assigned to that Call queue.
Default: All
4 Quick Stats -> Incoming Calls The breakdown shows the total number of calls answered, the average number of calls answered per agent and the average call length of answered calls handled.

TIP: Hover over any metric in this section to display a tooltip with the individual calls that make up the total.
5 Calls Answered (by date) The breakdown shows the number of agent-answered calls by date
6 The breakdown shows how many calls each agent in the queue answered and the average call duration for those calls.
7 Calls Answered (by hour) The breakdown shows the number of agent-answered calls by hour
8 The breakdown shows the number of calls answered by agent, by Call Queue.

Column definitions:
  • MM-DD - The month and day the call
  • Hour - The hour the call was answered
  • CQ Name - The Resource Account name
  • Agent Name - The URI name of the agent who answered the call
  • Calls Answered - The number of calls answered by this agent from this Call Queue
  • Average Call Duration (Seconds) - The average call duration of each call in seconds
  • Total Call Duration (Minutes) - The total call duration for all calls
  • Total Call Duration (HH:MM:SS) - The total call duration for all calls

Known issues

  1. Only 28 days of call history are available. Call queue and Agent data is considered personal data and is subject to data privacy retention policies.
  2. The Call queues resource account ID's name instead of Call queue name is shown. To show all the traffic for a Call queue, you must select all the resource accounts assigned to the Call queue.
  3. The Agent's UPN name instead of their name is shown.
  4. The Date selector sometimes shows dates outside the range of available data resulting in a blank report. Change the dates to be within the last 28 days to resolve the issue.
  5. In some scenarios, the agent answered call count might be different than the number of calls shown in the Teams client call history. The Teams client call history is correct. Support is investigating, but there's no estimated time to repair available at this time.
  6. When an agent answers a call in a different call queue due to redirection through Call Overflow exception handling, the call is counted in the original call queue where the exception occurred instead of the one they answered the call in.
  7. Callback calls handled by agents aren't captured resulting in a discrepancy between the number of calls answered on the Call Queue report and the Agent Timeline report.
  8. The agent tooltip which shows the individual calls for the agent shows all calls instead of only the calls within the selected date range.

Auto attendant and Call queue historical reports field definitions

fAutoAttendant table field description

Name Data Type Description
AA Name Text Name of the resource account attached to the Auto Attendant

If the full Resource Account name is aa_test@microsoft.com, then this value is: aa_test
AA Start Date Local Date Auto Attendant call start date - Local (based on selected UTC Offset)
AA Start Hour Whole Number Auto Attendant call start hour - Local (based on selected UTC Offset)
AA Start Time Local Date/time Auto Attendant call start time - Local (based on selected UTC Offset)
AA Start Time UTC Date/time Auto Attendant call start time - UTC
AACallerActionCount Whole number Summarize: Sum
Count of actions selected by caller in Auto Attendant during the call
AACallerActionCountAverage (Measure) Whole number Average of AACallerActionCount - zero instead of blank
AACallFlow Text See Auto Attendant dimensions -> AutoAttendantCallFlow
AACallResult Text See Auto Attendant dimensions -> AutoAttendantCallResult
AACallResultLegend Text Legend items for on AACallResult. Possible values are:
  • Terminated (No Caller Action) - Call was disconnected - the caller didn't make any selections
  • Terminated (With Caller Action) - Call was disconnected - the caller made selections
  • Terminated (Disconnected) - Call was disconnected per the auto attendant configuration
  • Terminated (No Operator) - Call was disconnected as there was no operator to transfer the call to
  • Terminated (Transfer Failed) - Call was disconnected as the configured transfer failed
  • Transferred (AA) - Call was transferred to another Auto Attendant
  • Transferred (CQ) - Call was transferred to a Call Queue
  • Transferred (Operator) - Call was transferred to the Operator
  • Transferred (Voicemail) - Call was transferred to Shared Voicemail
  • Transferred (External) - Call was transferred to an External Number
  • Transferred (User) - Call was transferred to a Person in the organization
  • Other - Some other condition occurred
AAChainDuration Decimal number Summarize: Sum
Duration of call in Auto Attendant
AAChainDurationAverage (Measure) Decimal number Average of AAChainDuration - zero instead of blank
AAChainIndex Whole Number
AAConnectivityType Text See Common dimensions -> PSTNConnectivityType
AACount Whole Number Summarized: Sum
Number of Auto Attendants involved in call
AADirectorySearchMethod Text See Auto Attendant dimensions -> AutoAttendantDirectorySearchMethod
AADirectorySearchMethodCountDTMF (Measure) Whole number Count of calls that used DTMF to search the directory - zero instead of blank
AADirectorySearchMethodCountVoice (Measure) Whole number Count of calls that used Voice to search the directory - zero instead of blank
AADirectorySearchMethodLegend Text Legend items for AADirectorySearchMethod. Possible values are:
  • DTMF - Caller used the telephone dial pad to search for the user's name
  • Voice - Caller used voice input to search for the user's name
AATransferAction Text See Auto Attendant Dimensions -> AutoAttendantTransferAction
Call Duration Seconds Whole number Call duration
Call End Time Local Date/time Call end time - Local (based on selected UTC Offset)
Call End Time UTC Date/time Call end time - UTC
Call Start Time Local Date/time Call start time - Local (based on selected UTC Offset)
Call Start Time UTC Date/time Call start time - UTC
ConferenceID (Per Day only) Text Used for troubleshooting purposes - provide this information when opening a ticket
DialogID (Per Day only) Text Used for troubleshooting purposes - provide this information when opening a ticket
DocumentID (Per Day only) Text Used for troubleshooting purposes - provide this information when opening a ticket
MM-DD Text Auto Attendant call month-day
PSTNMinutes Whole number Summarize: Sum
Total minute usage
TotalCallCount Whole number Summarize: Sum
Always 1 - used to provide sum of all calls
TotalCallCountSum (Measure) Whole number Sum of TotalCallCount

Cloud Call Queue Analytics report

fCallQueueAnalytics table field description

Name Data Type Description
Call Count Whole number Summarize: Sum
Number of calls
Call Count Abandoned Whole number Summarize: Sum
Number of abandoned calls
Call Count Sum (Measure) Whole number Call Count Sum - zero instead of blank
Call Count Sum Abandoned (Measure) Whole number Call Count Abandoned - zero instead of blank
Call Duration Seconds Whole number Summarize: Sum
Call duration
Call Duration Seconds AVG (Measure) While number Average Call Duration Seconds
Call End Time Local Date/time Call end time - Local (based on selected UTC Offset)
Call End Time UTC Date/time Call end time - UTC
Call Queue Agent Count Whole number Summarize: Sum
Number of agents configured in the Call queue
Call Queue Agent Opt In Count Whole number Summarize: Sum
Number of agents opted-in to the Call queue
Call Queue Call Result Text See Call Queue Dimensions -> CallQueueCallResult
Call Queue Call Result Legend Text Legend items for Call Queue Result. Possible values:
  • Abandoned - the caller hung up before an agent could answer or before timeout occurred
  • Agent Answered - the caller was answered by an agent
  • Overflowed - the call overflow exception occurred
  • Timed Out - the call timeout exception occurred
  • No Agents - the no agents exception occurred
  • Other - some other condition occurred
Call Queue Target Type Text See Call Queue Dimensions -> CallQueueTargetType
Call Queue Target Type Legend Text Legend items for Call Queue Target Type. Possible values:
  • Abandoned - the caller hung up before an agent could answer or before timeout occurred
  • Agent Answered (Call) - the caller was answered by an agent
  • Agent Answered (Callback) - the callback was answered by an agent
  • Overflowed (Application) - the call overflow exception occurred - call routed to another application
  • Overflowed (Disconnect) - the call overflow exception occurred - call disconnected
  • Overflowed (External) - the call overflow exception occurred - call was transferred externally
  • Overflowed (User) - the call overflow exception occurred - call was transferred to a Person in the organization
  • Overflowed (Voicemail) - the call overflow exception occurred - call was transferred to shared voicemail
  • Timed Out (Application) - the call timeout exception occurred - call routed to another application
  • Timed Out (Disconnect) - the call timeout exception occurred - call was disconnected
  • Timed Out (External) - the call timeout exception occurred - call was transferred externally
  • Timed Out (User) - the call timeout exception occurred - call was transferred to a Person in the organization
  • Timed Out (Voicemail) - the call timeout exception occurred - call was transferred to shared voicemail
  • No Agents (Application) - the no agents exception occurred - call was routed to another application
  • No Agents (Disconnect) - the no agents exception occurred - call was disconnected
  • No Agents (External) - the no agents exception occurred - call was transferred externally
  • No Agents (User) - the no agents exception occurred - call was transferred to a Person in the organization
  • No Agents (Voicemail) - the no agents exception occurred - call was transferred to shared voicemail
Call Start Time Local Date/time Call start time - Local (based on selected UTC Offset)
Call Start Time UTC Date/time Call start time - UTC
ConferenceID (Per Call only) Text Used for troubleshooting purposes - provide this information when opening a ticket
CQ Name Text Name of resource account attached to Call Queue

If the full Resource Account name is cq_test@microsoft.com, then this value is: cq_test
CQHour Whole Number Call queue call start hour
Date Date/time Call queue call start date and time (hour)
DateTimeCQName Text Unique key for filtering on fCallQueueFinalStateAction
DialogID (Per Call only) Text Used for troubleshooting purposes - provide this information when opening a ticket
DocumentID (Per Call only) Text Used for troubleshooting purposes - provide this information when opening a ticket
PSTN Connectivity Type Text See Common Dimensions -> PSTNConnectivityType
PSTN Total Minutes Whole number Summarize: Sum
Total minutes usage for PSTN calls

fCallQueueFinalStateAction table field description

Name Data Type Description
Average Call Duration (Seconds) Decimal number Summarize: Sum
Average call duration in seconds for abandoned calls
Average Call Duration (Seconds) Average (Measure) Whole number Average of Average Call Duration (Seconds) - zero instead of blank
Average Call Queue Duration (Sec) Decimal number Summarize: Sum
Average waiting time in seconds for answered calls
Average Call Queue Duration (Sec) (Measure) Whole number Average of Average Call Queue Duration (Sec) - zero instead of blank
Call Count Whole number Summarize: Sum
Number of calls
Call Queue Call Result Text See Call Queue Dimensions -> CallQueueCallResult
Call Queue Call Result Legend Text Legend items for Call Queue Call Result. Possible values:
  • Abandoned - the caller hung up before an agent could answer or before timeout occurred
  • Agent Answered (Call) - the caller was answered by an agent
  • Agent Answered (Callback) - the callback was answered by an agent
  • Overflowed (Disconnect) - the call overflow exception occurred - call disconnected
  • Overflowed (Xferred) - the call overflow exception occurred - call was transferred externally
  • Overflowed (Voicemail) - the call overflow exception occurred - call was transferred to shared voicemail
  • Timed Out (Callback) - the callback timed out - callback didn't occur
  • Timed Out (Disconnect) - the call timeout exception occurred - call was disconnected
  • Timed Out (Xferred) - the call timeout exception occurred - call was transferred externally
  • Timed Out (Voicemail) - the call timeout exception occurred - call was transferred to shared voicemail
  • No Agents (Disconnect) - the no agents exception occurred - call was disconnected
  • No Agents (Xferred) - the no agents exception occurred - call was transferred externally
  • No Agents (Voicemail) - the no agents exception occurred - call was transferred to shared voicemail
Call Queue Final State Action Text See Call Queue Dimensions -> CallQueueFinalStateAction
CQ Name Text Name of resource account attached to Call Queue

If the full Resource Account name is cq_test@microsoft.com, then this value is: cq_test
CQHour Number Hour that the call took place in
Date Date/time Call Queue call start date and time (hour)
DateTimeCQName Text Unique key for filtering on fCallQueueFinalStateAction
IsAbandoned True/false True if the caller hangs up before the agent answers
Local Date Date/time Local date/time (based on selected UTC Offset)
UTC Date Date/time UTC date/time

Cloud Call Queue Agent Timeline report

fAgentTimelineAnalytics table field description

Name Data Type Description
Agent Name Text User UPN
If the full username is user@microsoft.com, then this value is: user
AgentTimelineAnalyticsSummaryLink Text Used to link with fAgentTimelineAnalyticsSummary for the pop-up tooltip
Call Duration (HH:MM:SS) Text Call Duration (Minutes) converted to HH:MM:SS
Call Duration (Minutes) Whole number Summarize: Sum
Total call duration of answered Call queue calls in minutes
Call Duration (Second) Whole number Summarize: Sum
Total call duration of answered Call queue calls in seconds
Call End Time Local Date/time Call end time - Local (based on selected UTC Offset)
Call End Time UTC Date/time Call end time - UTC
Call Start Time Local Date/time Call start time - Local (based on selected UTC Offset)
Call Start Time UTC Date/time Call start time - UTC
ConferenceID Text Used for troubleshooting purposes - provide this information when opening a ticket
CQ Name Text Name of resource account attached to Call Queue

If the full Resource Account name is cq_test@microsoft.com, then this value is: cq_test
DateTime DateTime Date of call
DialogID Text Used for troubleshooting purposes - provide this information when opening a ticket
DocumentID Text Used for troubleshooting purposes - provide this information when opening a ticket
Hour (Measure) Whole number Hour of call
Total Call Count Whole number Summarize: Sum
Number of calls presented to agent

fAgentTimelineAnalyticsSummary table field description

Name Data Type Description
Agent Name Text User UPN
If the full username is user@microsoft.com, then this value is: user
AgentTimelineAnalyticsLink Text Used to link with fAgentTimelineAnalytics for the pop-up tooltip
Average Call Duration (Seconds) Decimal number Summarize: Sum
The average duration of answered Call queue calls in seconds
Average Call Duration (Seconds) - zero instead of blank (Measure) Whole number Average Call Duration (Seconds) - zero instead of blank
CQ Name Text Name of resource account attached to Call Queue

If the full Resource Account name is cq_test@microsoft.com, then this value is: cq_test
Date Date Date of call
Hour Whole number Hour of call
MM-DD Text Month and day of call
Total Call Count Whole number Summarize: Sum
Number of calls presented to agent
Total Call Count divided by Count of Agent Name (Measure Whole number Average call count per agent
Total Call Count Sum (Measure) Whole number Sum of Total Call Count - zero instead of blank
Total Call Duration (HH:MM:SS) Text Call Duration (Minutes) converted to HH:MM:SS
Total Call Duration (Minutes) Whole number Summarize: Sum
Total call duration of answered Call queue calls in minutes

Data Limits

Each report tab retrieves data for all Auto attendants, Call queues, or agents the user is authorized for in the tenant for the selected date range. This data retrieval occurs regardless of the specific Resource Accounts or Agent selected on the report. Filtering to show only the requested information occurs locally.

Each report tab is restricted to retrieving 90,000 rows.

If there's a large number of calls being processed each day, it's possible that the report won't show all calls for all days within the selected date range. There's no notification when this exclusion occurs. Try shortening the date range to avoid this issue.

If shortening the date range isn't sufficient, it's possible to increase the number of rows that can be retrieved by modifying the report as follows:

  1. Select Transform data in the ribbon bar to open the Power Query Editor.
  2. Select LimitResultRowsCount on the left-hand side.
  3. Change the value in the field to the right to a larger number.
  4. Close the Power Query Editor window.
  5. Select Yes when prompted to apply the changes now. The report should automatically refresh.
  6. Save your report.

The maximum number of rows that can be returned is 200,000.

Setting the value to a number higher than 200,000 has no effect as this value is a hard-coded limit on the server.

Increasing the limit results in longer execution and response times.

Report Execution Time Limits

Increasing the maximum number of rows that can be returned results in longer execution and response times meaning the report might time out before the data can be returned. The report execution time can be increased by modifying the report as follows:

  1. Select on the Transform data in the ribbon bar to open the Power Query Editor.
  2. Select on ReportExecutionMinutes on the left-hand side.
  3. Change the value in the field to the right to a larger number.
  4. Close the Power Query Editor window.
  5. Select Yes when prompted to apply the changes now. The report should automatically refresh.
  6. Save your report.

Customization

You can customize certain visualization aspects of the reports, such as adding or removing fields to be shown in the various visualizations, changing chart type, and more.

Change color schema

The following steps assume you already completed the installation steps.

Perform the following steps:

  1. Select View tab on the ribbon.

    Screenshot selecting view tab to change color scheme.

  2. Select the color schema from the drop-down list.

    Screenshot showing various color schemes.

Dimensions and measurements

The following dimensions and measurements are available to be used.

Common dimensions

These dimensions are common to both Auto attendants and Call queues:

Name (Type) Possible Values Description
ConferenceId
(Text)
GUID Call identifier
Date
(DateTime)
Date of call (UTC)
DialogId
(Text)
GUID Call identifier
DocumentId
(Text)
GUID Call identifier
Duration
(Whole Number)
Duration of call, in seconds
EndTime
(DateTime)
Time call ended (UTC)
FirstIsCaller
(Boolean)
First and Second endpoint classification
FirstUPN
(Text)
The user principal name (UPN) of the first endpoint's user
Hour
(Text)
Hour call started (UTC)
Minute
(Text)
Minute call started (UTC)
PSTNCallDuration
(Whole Number)
Duration of the call
PSTNCallType
(Text)
External Call is coming from outside the tenant
Internal Call is coming from within the tenant
PSTNConnectivityType
(Text)
CallingPlan The call arrived on a Calling Plan number
DirectRouting The call arrived on a Direct Routing number
ACS Call The call arrived from the web (click2call)
Second
(Text)
Second call started (UTC)
SecondUPN
(Text)
The user principal name (UPN) of the second endpoint's user
TenantId
(Text)
Tenant ID
Timestamp
(DateTime)
Time record was written (UTC)
UserStartTimeUTC
(DateTime)
Time call started (UTC)

Auto attendant dimensions

Name (Type) Possible Values Description
AutoAttendantCallFlow
(Text)
Encapsulates the different states of Auto Attendant call
abs_search A dial-by-name search occurred
announcement An announcement was played
automatic_menu Default call routing
call_termination Call was ended, see AutoAttendantCallResult
call_transfer Call was transferred, see AutoAttendantCallResult
first_level_menu Transition state - can be ignored
main_menu Greeting message was played
speech_input_confirmation Caller used voice input
user_selection Caller used touch tone key entry
AutoAttendantCallResult
(Text)
Final call result
failed_to_establish_media The media portion of the call couldn't be established
failover_to_operator Call transferred to operator typically due to a system error
oaa_chain_too_long Too many legs in the AA
oaa_session_too_long AA session lasted too long
service_declined AA didn't accept the call
service_terminated AA configuration disconnects the call or call hung up
terminated_automatic_selection AA configuration disconnects the calls
terminated_no_operator All terminated due to error no operator defined
terminated_transfer_failed Call terminated as transfer failed - typically to external number
transfer_in_progress AA->AA transfer
transferred_to_operator Call was transferred to operator
transferred_to_cq Call was transferred to Call queue
transferred_to_receptionist Same as transferred_to_operator
transferred_to_self Call was returned to the start of the AA
transferred_to_shared_voicemail Call was transferred to shared voicemail
transferred_to_user Call was transferred to a user
unknown An unknown condition occurred
user_terminated Caller hung up
AutoAttendantCallerActionCounts
(Whole Number)
The number of actions (touch tone key or voice entries) the caller performed
AutoAttendantChainDurationInSecs
(Real Number)
The number of seconds the call remained in this portion of the call flow
AutoAttendantChainIndex
(Whole Number)
AutoAttendantChainStartTime
(DateTime)
The start time of this portion of the call flow
AutoAttendantCount
(Whole Number)
How many auto attendants the call transitioned through
AutoAttendantDirectorySearchMethod
(Text)
Directory search method
abs_search_dtmf Touch tone
abs_search_voice Voice
AutoAttendantId
(Text)
Auto Attendant GUID
AutoAttendantIdentity
(Text)
Resource account URI the call arrived on
AutoAttendantTransferAction
(Text)
Call transfer target type
AA Transferred to an AA
CQ Transferred to a CQ
external_pstn Transferred to an external number
shared voicemail Transferred to shared voicemail
Unknown Unknown action
HasAA
(Boolean)
Is AA involved in call

Call queue dimensions

Name (Type) Possible Values Description
CallQueueAgentCount
(Whole Number)
Number of agents in Call queue
CallQueueAgentOptInCount
(Whole Number)
Number of agents opted-in to Call queue
CallQueueCallResult
(Text)
Call queue call final state
agent_joined_conference Call answered - conference mode CQ
callback_call_timed_out Call back call timed out
declined
disconnected
error
failed
invalid
overflown Overflow condition met
timed_out Timeout condition met
no_agent No Agent condition met
transferred_to_agent Call answered - transfer mode CQ
transferred_to_callback_caller Callback call answered by agent
CallQueueDurationSeconds
(Real Number)
Call duration in the Call queue
CallQueueFinalStateAction
(Text)
Call queue final action
disconnect time_out calls
disconnect_with_busy overflown calls
failed_to_accept_call Call queue couldn't accept the call
forward Call was forwarded to a Person in the organization or externally
shared_voicemail Call was sent to shared voicemail
other Some other condition occurred
voicemail Call was sent to personal voicemail
CallQueueId
(Text)
Call queue GUID
CallQueueIdentity
(Text)
Resource account URI the call arrived on
CallQueueTargetType
(Text)
Call redirection target
ApplicationEndpoint Another voice applications
Mailbox Shared voicemail
Other Some other condition occurred
Phone External transfer
User User in the tenant
HasCQ
(Boolean)
Is CQ involved in call
TransferredFromCQId
(Text)
Call queue GUID call was transferred from
TransferredFromCallQueueIdentity
(Text)
Resource account URI the call was transferred from

Measurements

Name (Type) Possible Values Description
AvgAutoAttendantChainDurationSeconds
(Real Number)
The average call duration within each portion of the auto attendant call flow
AvgCallDuration
(Real Number)
The average call duration in seconds
AvgCallQueueDurationSeconds
(Real Number)
The average call queue duration in seconds
PSTNTotalMinutes
(Real Number)
Total call duration in minutes
TotalAudioStreamDuration
(Real Number)
TotalCallCount
(Whole Number)
Total number of calls

Constructing a valid query

A valid query consists of several attributes in a JSON object:

{
   "Filters":[
      {
         "DataModelName":"Date",
         "Value":"2022-04-01",
         "Operand":4
      },
      {
         "DataModelName":"Date",
         "Value":"2022-04-30",
         "Operand":6
      }
   ],
   "Dimensions":[
      {
         "DataModelName":"AutoAttendantIdentity"
      },
      {
         "DataModelName":"AutoAttendantDirectorySearchMethod"
      }
   ],
   "Measurements":[
      {
         "DataModelName":"PSTNTotalMinutes"
      },
      {
         "DataModelName":"TotalCallCount"
      }
   ],
   "Parameters":{
      "UserAgent":"Power BI Desktop"
   },
   "LimitResultRowsCount":100000
}

Required fields

  • Filters: used to filter data returned by VAAC

    • DataModelName should be one of the supported dimensions
    • Value should be in the correct format (datetime, string, number etc.)
    • Operands:
      • 0 - Equals
      • 1 - Not Equals
      • 2 - Contains
      • 3 - Begins With
      • 4 - Greater Than
      • 5 - Greater Than or Equal To
      • 6 - Less Than
      • 7 - Less Than or Equal To
      • 8 - Does Not Contain
      • 9 - Does Not Begin With
  • Dimensions:

    • DataModelName should be one of the supported dimensions
  • Measurements:

    • DataModelName should be one of the supported measurements
  • Parameters: Currently only UserAgent is supported.

  • LimitResultRowsCount: the max count of rows returned by VAAC

Note

When you submit a query that searches by Date, and the search criteria includes both date and time (ISO 8601 format), the time portion is ignored.

Accessing VAAC outside of Power BI

Any application that can access RESTful web services can use the VAAC API to retrieve historical data. In the following example, Postman is used.

Preparation

  1. Download Postman.
  2. Import the folder postman in the downloaded zip file instructions into Postman.

Screenshot showing import completed

Accessing VAAC using Postman

  1. Select VAAC - msit on the top right No Environment drop-down.

  2. Select Environments on the left hand rail menu.

  3. Select VAAC - msit under Globals.

  4. Replace userName, password, and tenantId with the applicable credentials.

  5. Select Reset All in the top right corner.

  6. Select Save.

    Screenshot showing username, password and tenant ID fields configured

  7. Select Collections on the left hand rail menu.

  8. Select Config API Access Token - Prod and navigate to the Body tab.

  9. Select Send.

    An access token is returned.

    Screenshot showing result with access token returned.

    If an access token isn't returned, check your credentials to make they have sufficient permissions.

  10. Select VAAC ConfigAPI Prod and navigate to the Params tab.

  11. Fill in your query string.

  12. Select Send.

Reading the result

After you submit your input, there are a couple of possible results:

  • If the input is invalid, an error message with the actual reason is returned

  • If the input is valid, the result looks like this:

    Screenshot showing query result with dataResult field

    In this case, the data is in the "dataResult" field in the same order requested in the query dimension and measurements attributes.

Compress the JSON query

The VAAC API only accepts GZip-compressed or Base64-encoded strings as input.

Find any website to compress the JSON blob using GZIP or Base64.

GZIP output should look like this:

H4sIAAAAAAAACq2SQWsCMRCF7/6KkLNC3EoPe9u6FISuFbW9lB4GM9TQbEaSCSLif+9mV4uCBwXnMkze5L0vkH1PCCFfjWX0QeZfaWxqf+xJLIGhIo12CjXKPM0o+2cLn2BjEjKVZQM1Gqjhhfy+QQ9Oy3x0PDz0H5HypK6nPJ9SUv9uV2RpanTBkLvxiUVkKpjRaXA80ejY8E7eg3/hUBqPKya/WyD41bpCXpP+tzvjrBBC9NjA8o2ks8VyuiQGWxkXGcNdkO3FMVg7puj4GtAMfLPa/Y2Tk/wI6IufhjHl0xa9eJmIEsMv06Y16cLlm6kNzzFEy3Pahi4kH6pUvcMfrAhUU3oCAAA=

Base64 output should look like this:

ew==
IkZpbHRlcnMiOls=
ew==
IkRhdGFNb2RlbE5hbWUiOiJEYXRlIiw=
IlZhbHVlIjoiMjAyMi0wNC0wMSIs
Ik9wZXJhbmQiOjQ=
fSw=
ew==
IkRhdGFNb2RlbE5hbWUiOiJEYXRlIiw=
IlZhbHVlIjoiMjAyMi0wNC0zMCIs
Ik9wZXJhbmQiOjY=
fQ==
XSw=
IkRpbWVuc2lvbnMiOls=
ew==
IkRhdGFNb2RlbE5hbWUiOiJBdXRvQXR0ZW5kYW50SWRlbnRpdHki
fSw=
ew==
IkRhdGFNb2RlbE5hbWUiOiJBdXRvQXR0ZW5kYW50RGlyZWN0b3J5U2VhcmNoTWV0aG9kIg==
fQ==
XSw=
Ik1lYXN1cmVtZW50cyI6Ww==
ew==
IkRhdGFNb2RlbE5hbWUiOiJQU1ROVG90YWxNaW51dGVzIg==
fSw=
ew==
IkRhdGFNb2RlbE5hbWUiOiJUb3RhbENhbGxDb3VudCI=
fQ==
XSw=
IlBhcmFtZXRlcnMiOns=
IlVzZXJBZ2VudCI6IlBvd2VyIEJJIERlc2t0b3Ai
fSw=
IkxpbWl0UmVzdWx0Um93c0NvdW50IjoxMDAwMDA=
fQ==

URL-Encode the compressed JSON query

The GZIP or Base64 compressed JSON query must be URL encoded.

GZIP URL encoded output looks like this:

H4sIAAAAAAAACq2SQWsCMRCF7%2F6KkLNC3EoPe9u6FISuFbW9lB4GM9TQbEaSCSLif%2B9mV4uCBwXnMkze5L0vkH1PCCFfjWX0QeZfaWxqf%2BxJLIGhIo12CjXKPM0o%2B2cLn2BjEjKVZQM1Gqjhhfy%2BQQ9Oy3x0PDz0H5HypK6nPJ9SUv9uV2RpanTBkLvxiUVkKpjRaXA80ejY8E7eg3%2FhUBqPKya%2FWyD41bpCXpP%2BtzvjrBBC9NjA8o2ks8VyuiQGWxkXGcNdkO3FMVg7puj4GtAMfLPa%2FY2Tk%2FwI6IufhjHl0xa9eJmIEsMv06Y16cLlm6kNzzFEy3Pahi4kH6pUvcMfrAhUU3oCAAA%3D

Base64 URL encoded output looks like this:

%0Aew%3D%3D%0AIkZpbHRlcnMiOls%3D%0Aew%3D%3D%0AIkRhdGFNb2RlbE5hbWUiOiJEYXRlIiw%3D%0AIlZhbHVlIjoiMjAyMi0wNC0wMSIs%0AIk9wZXJhbmQiOjQ%3D%0AfSw%3D%0Aew%3D%3D%0AIkRhdGFNb2RlbE5hbWUiOiJEYXRlIiw%3D%0AIlZhbHVlIjoiMjAyMi0wNC0zMCIs%0AIk9wZXJhbmQiOjY%3D%0AfQ%3D%3D%0AXSw%3D%0AIkRpbWVuc2lvbnMiOls%3D%0Aew%3D%3D%0AIkRhdGFNb2RlbE5hbWUiOiJBdXRvQXR0ZW5kYW50SWRlbnRpdHki%0AfSw%3D%0Aew%3D%3D%0AIkRhdGFNb2RlbE5hbWUiOiJBdXRvQXR0ZW5kYW50RGlyZWN0b3J5U2VhcmNoTWV0aG9kIg%3D%3D%0AfQ%3D%3D%0AXSw%3D%0AIk1lYXN1cmVtZW50cyI6Ww%3D%3D%0Aew%3D%3D%0AIkRhdGFNb2RlbE5hbWUiOiJQU1ROVG90YWxNaW51dGVzIg%3D%3D%0AfSw%3D%0Aew%3D%3D%0AIkRhdGFNb2RlbE5hbWUiOiJUb3RhbENhbGxDb3VudCI%3D%0AfQ%3D%3D%0AXSw%3D%0AIlBhcmFtZXRlcnMiOns%3D%0AIlVzZXJBZ2VudCI6IlBvd2VyIEJJIERlc2t0b3Ai%0AfSw%3D%0AIkxpbWl0UmVzdWx0Um93c0NvdW50IjoxMDAwMDA%3D%0AfQ%3D%3D

Important

The VAAC API is limited to returning a maximum of 200,000 rows per query.

Requests into the system are throttled based on the IP address making the call, the recognized tenant identity in the auth header, as well as the calling service in order to prevent a single client, tenant, or service from monopolizing the resources.

Version 3.x.x history and support status

Refer to: Teams Auto Attendant & Call Queue Historical Reports - Change Log.docx in the downloaded zip file for a detailed list of changes.

Version Date Published Supported Filename Description
3.1.8 August 12, 2024 Yes Teams Auto Attendant & Call Queue Historical Reports V3.1.7 Bug fix for Date slicer on Call Queue tab
3.1.7 July 15, 2024 No Teams Auto Attendant & Call Queue Historical Reports V3.1.7 Improved support for authorized users, removed original reporting templates
3.1.6 April 15, 2024 No Teams Auto Attendant & Call Queue Historical Reports V3.1.6 Support click2call, callback, authorized users, and some visuals changed due to deprecation
3.1.5 January 29, 2024 No Teams Auto Attendant & Call Queue Historical Reports V3.1.5 Corrected an error with the Per Day query logic for fAgentTimelineAnalytics and fAgentTimelineAnalyticsSummary
3.1.4 January 24, 2024 No Teams Auto Attendant & Call Queue Historical Reports V3.1.4 Per day reporting for large volume customers, accessibility improvements for screen readers