> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt. # Analytics > Use the analytics dashboard to track call volume, call outcomes, sentiment, and agent performance across your workspace and your subaccounts. ![Analytics dashboard overview](https://storage.googleapis.com/granular-changelog/doc-images/analytics_1.png) The analytics dashboard answers the questions you would otherwise assemble by hand: how many calls ran, how they ended, which agents are performing, and whether quality is trending up or down. Open it with **Analytics** in the left sidebar. Data refreshes every hour. If your workspace has [subaccounts](/subaccounts), the same dashboard [covers every account you manage](#subaccounts-usage). To get the same numbers into a BI tool or a report of your own, [pull them through the API](#export-data). ## Metrics Each card answers a different question about the calls in your current filter. | Card | What it tells you | | ------------------------------ | ------------------------------------------------------------------------------------------------------ | | **Duration metrics** | Total calls, total minutes, and average duration for the selected range | | **Assistant performance** | How assistants compare on minutes used, calls handled, success rate, and [prompt reuse](#prompt-reuse) | | **Call status over time** | Completed, voicemail, left voicemail, failed, and no answer statuses plotted with trend lines | | **Call status overview** | Aggregate totals for each status | | **Reasons behind ended calls** | Why calls ended, such as Address Incomplete, Voicemail, or Forbidden | | **Failed calls** | Contact, date, status, duration, and agent for every call that failed | | **Executed actions** | How often a selected action ran, over time | | **Sentiment** | The share of positive interactions and how it moves over time | To get from a number to the conversation behind it, open [Logs](/logs), which holds the full record of each individual call. > **Tip** > > Sentiment and end-call reasons surface quality problems, like a misfiring action or a bad handoff, earlier than call volume does. Check both on a regular cadence, not only when volume drops. ## Prompt reuse ![Agents Performance card on the prompt reuse tab, showing one agent at 74% and another at 3%](https://storage.googleapis.com/granular-changelog/doc-images/prompt_cache.png) The **Prompt Reuse** tab in **Agents Performance** shows how much of each agent's prompt the [AI model](/general-configuration#ai-model) reused instead of reading it again (also known as prompt caching), across the calls in your current filter. [Logs](/logs#call-logs) show the same figure for each call. A call is made of turns. A turn is one exchange: the caller says something and the agent answers. On every turn, the AI model goes through your prompt and the conversation so far before it replies, which is why long prompts cause higher **latency**. Text that starts the same way as on the previous turn does not need to be read again: the model reuses it and only reads what is new. The agent's answers are always generated fresh. For example, an agent at 74% could have a 9,000-character prompt and four-turn calls, with each exchange adding about 250 characters to the conversation: | Turn | What the model reads | Reused | | -------------- | ----------------------------------------------- | --------------------------- | | 1 | Your prompt: 9,000 characters | None | | 2 | Your prompt and turn 1: 9,250 characters | 9,000 characters | | 3 | Your prompt and turns 1 and 2: 9,500 characters | 9,250 characters | | 4 | Your prompt and turns 1 to 3: 9,750 characters | 9,500 characters | | **Whole call** | **37,500 characters** | **27,750 characters (74%)** | A few things shape the score: * **Longer calls score higher.** Each turn reuses everything before it, and the first turn has nothing to reuse. * **[Flow Designer](/flow-designer) agents score lower than prompt-based agents.** This comes from how Synthflow builds their prompts, not from anything you wrote. * **A short prompt on a short call shows 0%.** Neither the prompt nor the conversation is long enough to be reused, which is normal. However, a short prompt on a long call can score above 0%, because the conversation grows long enough to be reused. ## Subaccounts usage If your workspace manages subaccounts, you can see how each one is performing without leaving your own workspace. Set the **All accounts** filter to open the subaccount view. ![Analytics dashboard filtered to All accounts, showing a table of subaccounts by total minutes](https://storage.googleapis.com/granular-changelog/doc-images/analytics_subaccounts.png) The view opens on a table of every subaccount you manage: * **Total minutes**: call minutes used in the selected time range, with the change against the previous period * **Calls**: number of calls handled * **Average duration**: mean call length Compare rows to see which accounts are ramping up and which have gone quiet. Select a subaccount to load its full dashboard in place, with the same cards and filters scoped to that account. Set **All accounts** again to return to the overview or switch to another subaccount. > **Note** > > Minutes in the subaccount table come from call analytics, not from billing. Billable usage excludes some activity, such as credits used during call transfers, so the two figures can differ. For invoicing and rebilling, see [Usage and billing](/usage#subaccount-usage-and-pricing). Whether a subaccount can open the analytics dashboard inside its own workspace is controlled by the **Analytics** [permission](/manage-subaccount-permissions). ## Export data Analytics are exported through the API, not from the dashboard. Use the [Export analytics data](/api-reference/platform-api/analytics/analytics-export) endpoint to pull the same aggregated metrics into Power BI, Tableau, Google Data Studio, a warehouse, or a scheduled report of your own. Each request is capped at a 120-day range and defaults to the past 7 days when no range is given. For longer histories, page through the range in consecutive requests. The endpoint returns aggregated analytics. For call-level records, see [Export call data](/export-call-data). ## FAQ #### How often does the dashboard update? Every hour. If your data still looks stale after that, refresh the page and double-check your filters. #### Can I see analytics for my subaccounts? Yes. Set the **All accounts** filter to open the [subaccount view](#subaccounts-usage), which lists every subaccount with its total minutes, calls, and average duration. Select one to load its full dashboard. #### Why don't the minutes in analytics match my invoice? Analytics reflects call activity, while the [Usage dashboard](/usage#usage-dashboard) reflects billable credits only. Credits used during call transfers are excluded from billing, which can cause the two views to differ. #### Can a subaccount see its own analytics? Only if it has the **Analytics** permission. See [Manage subaccount permissions](/manage-subaccount-permissions) for the full permission list. #### Can I export analytics from the dashboard? No. Analytics are exported through the [Export analytics data](/api-reference/platform-api/analytics/analytics-export) endpoint. For call-level records instead of aggregated metrics, see [Export call data](/export-call-data). #### My export came back empty. What happened? There was most likely no activity in the requested range, or the filters in the request were too narrow. Widen the range, keeping it under 120 days, and try again. > Track call volume, outcomes, sentiment, and agent performance across your workspace and subaccounts