Metric Matrix and Nested Rows Tables
Most widgets answer a question about one thing: how many tickets are in the Billing queue, how many agents hold the Spanish skill. The questions that actually drive routing decisions cross two things at once — how many tickets are waiting in Billing and need Spanish, and whether anyone in the Frontline group can take them.
Qvasa has two widgets for exactly that, built on the same data:
Metric Matrix — one metric crossed by two objects, drawn as a grid. Queues down the side, skills across the top, one number in every cell.
Nested Rows Table — one pair of objects with many metrics, drawn as expandable rows. Queues as parent rows, the skills inside each queue nested underneath, and a column for every metric that crosses queue with skill.
Same two objects, two different shapes. Use a matrix when you care about one number across every combination; use a nested table when you care about several numbers for the same pair.
Before You Start
You need edit access to the dashboard you are adding widgets to.
These widgets read omnichannel queue, skill, group and agent-status data. The pairs offered to you depend on what your account has connected — an account without agent skills will not see the skill pairings.
A Nested Rows Table exists for a pair only when at least two metrics cross that pair. With a single metric there is nothing to put in a second column, so that pairing appears as a Metric Matrix only.
If you do not see either widget type in the picker, ask your Qvasa contact to enable it for your account.
Step 1: Add a Metric Matrix
Open your dashboard, click Edit, then Add Widget on the row you want it on. Choose Metric matrix in the Widget Types column. The middle column lists every available matrix as metric — object × object, so picking one is picking both the number and the two things it is crossed by:
Pick one — for example Live Tickets In Queue — Queue × Skill — and click Add Widget.
Step 2: Read the Matrix
Every cell is the metric for that row-and-column combination. The Total row and Total column are true totals for the whole row or column, not just the cells you can see:
Four controls live on the grid itself:
Swap rows and columns — the ⇄ icon in the top-left corner cell flips which object runs down the side. Nothing is re-queried; the grid redraws.
Sort — click a column header to sort the rows by that column's values, or a row label to sort the columns by that row's. The corner cell and the column caption sort alphabetically instead, and your choice is saved with the widget.
Inspect a cell — click any cell to open the tickets or agents behind that exact combination.
Hide rows or columns you do not care about — the trash icon on a row or column label opens Include / Exclude, a checklist of that object's values. Unchecked values leave the grid and its totals. The selection sticks to the object rather than the axis, so it survives a rows/columns swap.
One thing worth knowing: a pruned axis stays pruned. A queue or skill created after you made that selection stays hidden until you check it in the same lightbox.
Step 3: Add a Nested Rows Table
Back in Edit mode, click Add Widget again and choose Nested Rows Tables. This list is shorter, because here you are picking only the two objects — the metrics come later, as columns:
Choose Queue × Skill Nested Table and click Add Widget. The table arrives with a couple of columns already on it so you can see it working.
Step 4: Add the Columns You Want
Columns are added on the table itself, not in the widget picker. In edit mode, the + in the corner cell adds a column at the front and the + after the last header adds one at the end; both open a searchable list of every metric that crosses these two objects. Column headers can also be renamed, dragged into a new order, resized, and removed.
Here is the same queue-and-skill pairing carrying five metrics at once — the live count, the skills those tickets demand, matches, mismatches, and match accuracy:
Only the parent rows show at first. That is the point: four queues, five metrics, one screen.
Step 5: Expand a Row
Click the chevron beside a parent row to reveal the second object nested underneath it. Expanding Billing breaks its 14 waiting tickets down by the skill each one needs, with every column recomputed at that level:
The ⇄ icon in the corner cell flips the nesting — skills become the parent rows and queues nest underneath. Like the matrix swap, this needs no reload.
The rest of the grid behaves the way the matrix does: click a column header to sort by it, click a cell to inspect the tickets or agents behind it, and use the trash icon on a row label to drop rows you do not want.
What Done Looks Like
A matrix that shows one number for every combination of two objects, with real totals on both margins.
A nested table on the same pairing whose parent rows collapse to a summary and expand to the detail, with one column per metric you chose.
Both widgets respond to the dashboard's date range and filters like any other widget.
Good to Know
A parent row can be less than the sum of the rows under it. A parent counts each ticket or agent once across the whole group, while a ticket that demands three skills appears in three of the nested rows. That is not a rounding error — the two lines answer different questions.
Every column crosses the same two objects. That is what lets one set of rows serve them all, and it is why the column picker only ever offers metrics valid for this pairing.
A column that disappears was retired or is not available on your account. The table tells you which one rather than dropping it silently, so you can remove it from the widget.
An empty grid usually means no data, not a broken widget. A queue with nothing waiting in it is a row of zeros, and a pairing your account has no data for renders an empty grid.
Adding or reordering columns needs edit mode. Outside edit mode the table is read-only — expanding rows and sorting still work.
If you have any questions, reach out to the Qvasa team — we are happy to help.





