
Data Tables is one of two tabs inside the Performance page. The other is the standard Performance charts view. Switch between them using the toggle in the top-right corner.
Quick Answers Data Tables Can Give You
Volume and Trends
How many calls came in today, this week, or this month? Which prompt version receives the most traffic?
Success and Outcomes
What percentage of calls result in an appointment booked? Which outcomes appear most often?
Quality and Sentiment
What is the negative sentiment rate by day? Are specific customer phone numbers consistently unhappy?
Operations and Failures
How often do calls end due to silence timeout or max duration? What is the voicemail rate by agent phone number?
What Is a View?
A view is a saved table configuration. Each view contains:| Component | Purpose |
|---|---|
| Name | Label shown as the tab (e.g., “Daily Success Rate”) |
| Description | Optional notes explaining the view’s purpose |
| Grouping | How rows are split (by time, phone number, or prompt version) |
| Metric columns | One or more formulas that calculate a value per group |
| Sort | Which column to sort by and in which direction |
| Targets | Optional thresholds for each metric to flag rows that miss a KPI |
Getting There
How the Page Is Organized
The data tables page is built around a saved view. At the top you see the date range and any global performance selector. Below that is the main data table with the active view tab, an Add view button, the Group selector, and the metric columns. Inside the table, the first column is the grouping column (e.g., dates or prompt versions). The remaining columns are metrics. An Add Column button in the header lets you create new metrics inline.Grouping Options
The Group selector determines how rows are split. Choose one:| Grouping | Row Represents | Best For |
|---|---|---|
| Every 15 min | A 15-minute time bucket | Intraday spikes and patterns |
| Hourly | One hour | Hourly load analysis |
| Daily | One calendar day | Day-over-day trending |
| Weekly | One calendar week | Weekly KPI tracking |
| Monthly | One calendar month | Month-over-month comparison |
| Prompt Version | A specific prompt version (e.g., v2.4) | A/B testing prompt changes |
| Customer Phone | A unique caller phone number | Per-caller analysis |
| Agent Phone | A Phonely phone number | Comparing lines or departments |

Time granularity options are filtered automatically based on your selected date range. For example, “Monthly” will not appear if the date range is only a few days.
Creating a View
Click + Add view to open the creation dialog. You have two paths:- AI-Assisted
- Manual
Type a natural language description of what you want to see. For example:
Show daily total calls, success rate, and negative sentiment ratePhonely generates a complete view configuration — name, grouping, and metric columns — from your description. A live preview appears so you can review and refine before publishing.You can also pick from AI-generated suggestion chips like:
- “Show total calls by day”
- “Track appointment booked rate by week”
- “Show avg duration by customer phone number”
- “Compare outcomes by day”


Metric Columns
Each column in the table (after the grouping column) is a metric defined by a name, a formula, and an optional target.Naming Metrics
The metric name is the column header. Make it descriptive enough that someone can understand the value without reading the formula.Formula Language
Formulas define how each metric is calculated per row group. They support arithmetic expressions with variable references. Operators:+ - * / % (modulo) ( ) parentheses
Max formula length: 500 characters.
When you click into the formula field, an autocomplete menu appears (triggered by @) showing all available variables organized by category.

Core Variables
Always available, regardless of agent configuration.| Variable | Returns | Description |
|---|---|---|
@total | Count | Total calls in the row group |
@duration | Average (seconds) | Average call duration |
@custom_call_outcome_value | Average | Average custom call outcome value |
@total_transfer_duration | Average (seconds) | Average total transfer duration |
Namespaced Variables
Namespaced variables count calls matching a specific metadata category within the row group. They return counts, making them ideal for percentages and ratios.Outcome Variables -- @outcome.value
Outcome Variables -- @outcome.value
Count calls that include a specific outcome from the agent’s latest published version. Only outcomes present in the published flows appear in the autocomplete.Example formulas:
Custom Call Outcome Variables -- @custom_call_outcome.value
Custom Call Outcome Variables -- @custom_call_outcome.value
Count calls matching a custom call outcome value. These are populated from observed values in your call data.Example formula:
Topic Variables -- @topic.value
Topic Variables -- @topic.value
Count calls tagged with a specific call topic currently configured for the agent. Only active topics appear in the autocomplete.Example formulas:
Sentiment Variables -- @sentiment.value
Sentiment Variables -- @sentiment.value
Count calls by sentiment classification. Three fixed values:
Example formula:
| Variable | Description |
|---|---|
@sentiment.positive | Positive sentiment count |
@sentiment.neutral | Neutral sentiment count |
@sentiment.negative | Negative sentiment count |
End Reason Variables -- @ended_reason.value
End Reason Variables -- @ended_reason.value
Count calls by how they ended.
Example formula:
| Variable | Meaning |
|---|---|
@ended_reason.assistant-ended-call | Assistant ended the call |
@ended_reason.assistant-forwarded-call | Assistant forwarded the call |
@ended_reason.customer-ended-call | Customer hung up |
@ended_reason.hangup-during-warm-transfer | Caller hung up during warm transfer |
@ended_reason.max-duration-reached | Hit maximum call duration |
@ended_reason.silence-timeout | Silence timeout triggered |
@ended_reason.voicemail | Call reached voicemail |
Block Variables -- @block.actionId__workflowId
Block Variables -- @block.actionId__workflowId
Count calls that passed through a specific workflow block. These are populated from the published inbound workflow’s action nodes.Example formula:
Exclusion Directives
Exclusions remove calls from the calculation before the metric is computed. Append them to the end of a formula.| Syntax | Effect |
|---|---|
-@{metadata_key} | Exclude calls with a specific custom metadata key |
[email protected] | Exclude calls with a specific outcome |
[email protected] | Exclude calls with a specific topic |
lead_id metadata key:
Exclusion shorthand:
[email protected] (no space, unary minus attached to a sentiment or end-reason variable) expands to (@total - @sentiment.negative). This is a subtraction, not an exclusion directive.Example Formulas
| Goal | Formula |
|---|---|
| Total calls | @total |
| Appointment booked rate (%) | (@outcome.Appointment_Confirmed / @total) * 100 |
| Negative sentiment rate (%) | (@sentiment.negative / @total) * 100 |
| Average duration in minutes | @duration / 60 |
| Voicemail rate (%) | (@ended_reason.voicemail / @total) * 100 |
| Customer hangup rate (%) | (@ended_reason.customer-ended-call / @total) * 100 |
| Combined escalation count | @outcome.Call_Escalated + @topic.callback_requested |
Targets
Targets let you compare a metric against a KPI threshold. When enabled, cells are highlighted green when they meet the target and red when they miss it. Each target has two parts:Direction: Above (>=)
The metric is on-target when the value is at or above the threshold.Use for: success rate, appointment rate, total calls.
Direction: Below (<=)
The metric is on-target when the value is at or below the threshold.Use for: negative sentiment rate, voicemail rate, avg duration.

75). If it returns minutes, set the target in minutes (e.g., 4).
Sorting
Click the sort icon on any column header to toggle between descending and ascending order. The sort preference is saved as part of the view configuration. For time-based groupings, the default sort is by date (newest first). For other groupings, the default sort is by the first metric (highest first).Drill-Down
Click any metric cell to open a slide-over panel showing the individual calls that produced that value.How drill-down filtering works
How drill-down filtering works
The drill-down extracts variables from the metric formula and uses them as filters:
- Simple formulas (no division): shows all calls matching any referenced variable
- Ratio formulas (with
/): shows only the numerator-side calls — the ones that drove the percentage
(@sentiment.negative / @total) * 100 drills into the negative-sentiment calls only, not every call in the denominator.The date range is scoped to the row’s time bucket, and group-based filters (prompt version, phone number) are applied automatically.What you can do from the drill-down panel
What you can do from the drill-down panel
- Review call summaries, timestamps, and durations
- Click any call to open the full Call Details modal
- Validate that a metric is counting the right calls
- Investigate spikes or drops in a rate
- Compare across groups by clicking different cells

Managing Views
Editing a View
Click the dropdown menu on any view tab to access Edit. You can update the view name and description. To modify grouping, columns, or formulas, use the inline controls directly in the table.Deleting a View
Click the dropdown menu on a view tab and select Delete. You cannot delete the last remaining view.Exporting to CSV
Click Export CSV in the view tabs bar. Phonely fetches all rows (not just the visible page) and downloads a CSV file named with the view name and a timestamp.Building Effective Views
Start simple
Begin with one grouping and one metric (e.g., Daily + Total Calls). Confirm the preview looks right before adding complexity.
Add metrics incrementally
Add one column at a time. Check the preview after each addition to catch formula errors early.
Set targets for KPIs
Only add targets for metrics tied to a real business goal. Too many targets create visual noise.
Use drill-down to validate
After publishing, click a few cells to confirm the underlying calls match your expectations.


