> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getsmartalex.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Analytics and reporting

> AI call analytics and voice agent reporting in SmartAlex: measure call volume, sentiment, lead quality, cost, and marketing attribution across every campaign.

## Overview

The Analytics dashboard turns every conversation your agents handle into AI call analytics you can act on. Open **Analytics** in your dashboard (the `/analytics` route) to see how your voice agents are performing across volume, sentiment, lead quality, cost, and marketing attribution.

Figures recompute from your raw call history each time you open the page, so the numbers always reflect your latest calls. Pick a date range at the top and every chart, table, and scorecard updates to that window.

<Note>
  Lead quality, quality scores, objectives, and conversation moments come from automatic post-call analysis. Where that analysis has not run yet on a call, those cards show an empty state rather than a wrong number.
</Note>

## How a call becomes a metric

```mermaid theme={null}
flowchart LR
  A[Call or web chat] --> B[Post-call analysis]
  B --> C[Saved to call history]
  C --> D[Dashboard aggregates in your browser]
  D --> E[Overview, Engagement, Customers, Outcomes, Attribution]
```

## What you can measure

Every metric below is captured per workspace for the date range you select.

| Metric                               | What it tells you                                                                  | Where you see it                 |
| ------------------------------------ | ---------------------------------------------------------------------------------- | -------------------------------- |
| **Conversations**                    | Total calls and web chats in the window                                            | Overview scorecard, summary line |
| **Conversation volume**              | Activity trend, bucketed by day, week, or month                                    | Overview area chart              |
| **Channel mix**                      | Where conversations come from (widget, web, inbound, campaign, callback, and more) | Engagement                       |
| **Sentiment**                        | Positive, neutral, and negative split, as a proportional bar                       | Overview                         |
| **Quality scores**                   | Overall, professionalism, compliance, and effectiveness, each 0 to 100             | Outcomes                         |
| **Leads captured**                   | Conversations that produced a lead or scored 40 and above                          | Overview, Outcomes               |
| **Bookings**                         | Appointments the agent scheduled on the call                                       | Overview, Outcomes               |
| **Objectives met**                   | Share of analysed calls that hit the agent's goal (yes, partially, no)             | Overview summary, Outcomes       |
| **Lead score distribution**          | How leads scored across five bands, 0 to 100                                       | Outcomes histogram               |
| **Conversation moments**             | Names captured, appointments set, agreements, objections, and concerns             | Customers                        |
| **Contacts, hot, and cooling leads** | Who to follow up and who is going quiet                                            | Customers                        |
| **Cost**                             | Total spent, cost per call, and share of spend by call type                        | Overview, Outcomes               |
| **Average length**                   | Mean call duration, shown as m:ss                                                  | Outcomes, campaign cards         |

<Note>
  There is no telephony "answer rate" or "connect rate". The closest signal is the per-campaign **success rate** (see [Per-campaign reporting](#per-campaign-reporting)), which is SmartAlex's own conversation-quality heuristic, not a dial-tone pickup rate.
</Note>

## The dashboard views

Analytics is split into focused tabs. Your active tab is saved in the URL (`?tab=`), so you can bookmark or share a view. On mobile the tabs collapse into a single dropdown.

| Tab             | What it covers                                                                                                                      |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **Overview**    | Scorecard (conversations, leads, bookings, spent), a plain-English summary line, the volume trend, and the sentiment bar            |
| **Engagement**  | The engagement funnel and channel mix                                                                                               |
| **Customers**   | Contact totals, hot leads, cooling leads, and conversation moments                                                                  |
| **Outcomes**    | Leads, qualified leads, bookings, objectives, quality scores, the lead-score histogram, cost by call type, and campaign performance |
| **Attribution** | Which traffic sources drove your conversations (see below)                                                                          |
| **Coming soon** | A read-only preview of reporting on the roadmap                                                                                     |

<Note>
  On inbound-only plans, the outbound and campaign call categories and the Attribution tab are hidden, because they do not apply.
</Note>

The **engagement funnel** runs from Conversations started, to Real conversations (longer than 30 seconds), to Converted (objective met or a booking made). Two upper stages, impressions and opens, are shown as inert "coming soon" steps, because widget impressions are not yet instrumented.

## Attribution

The Attribution tab answers "which channel drove this call?" It reads the marketing tags carried on each conversation when a visitor arrives at your widget from an ad or a campaign link. This is last-touch attribution on the individual conversation, not multi-touch modelling.

Each conversation is classified by source:

| Detected source      | How it is matched                            |
| -------------------- | -------------------------------------------- |
| **Google Ads**       | A Google Ads click identifier is present     |
| **Meta Ads**         | A Meta click identifier is present           |
| **Organic**          | A UTM source is present, with no ad click id |
| **Direct / Unknown** | None of the above                            |

Filter by source, campaign (`utm_campaign`), or medium (`utm_medium`), then read the **channel performance** table: conversations, qualified leads (score 60 and above), average lead score, average length, and confirmed conversions uploaded to the ad platform.

When conversion uploads are configured, a **conversion tracking** card shows delivered, failed, and pending counts, the delivered percentage, and the time of the last upload, with a link to your ad platform settings.

<Tip>
  No attribution data yet? Confirm your widget is deployed on the landing pages, that Google and Meta auto-tagging is on, and that ad traffic actually lands on a page carrying the widget. Then connect a platform under [Integrations](/integrations).
</Tip>

## Per-campaign reporting

The Outcomes tab includes a performance card for each outbound campaign, showing its conversations, average length, cost, and **success rate**.

Success rate here means a conversation that lasted more than 30 seconds and ended on a positive or neutral note, as a percentage of that campaign's calls. It is a conversation-quality heuristic, not a telephony pickup rate, so read it as "how many calls turned into real, non-negative conversations".

<Note>
  Analytics rolls up by campaign and call type (outbound, inbound, test, campaign), not by individual agent. For agent-level detail, filter the [Call Logs](/essentials/call-logs) page by agent.
</Note>

## Cost visibility

Cost is tracked on every call and shown in your workspace currency:

* **Spent** across the window, on the Overview scorecard.
* **Cost by call type** on Outcomes: total cost, cost per call, average length, and each type's share of spend, with a mini bar.

Usage runs from a prepaid wallet, shown in your billing as Tokens (1 token = \$0.01). For per-minute rates and what each plan includes, see [Pricing](/pricing).

## Date ranges, filters, and refresh

<AccordionGroup>
  <Accordion title="Date ranges">
    Presets are **7 days, 30 days, 90 days, and All**. A **Custom** calendar adds quick picks for this month, last month, the last 60 days, and the last 6 months. Future dates are disabled. The range scopes every tab.
  </Accordion>

  <Accordion title="Filters">
    In-tab filters live on the **Attribution** tab only (source, campaign, medium). The other tabs are scoped by the global date range.
  </Accordion>

  <Accordion title="Refresh">
    A manual **Refresh** button re-runs the query so you can pull the latest calls without reloading the page.
  </Accordion>
</AccordionGroup>

## Exporting data

The Analytics dashboard is for reading and comparing, not for export. To pull the underlying rows, use CSV export on the [Call Logs](/essentials/call-logs) page:

<Steps>
  <Step title="Apply your filters">
    Narrow to what you want, or export everything.
  </Step>

  <Step title="Choose a scope">
    Current view, all, incoming, or outgoing.
  </Step>

  <Step title="Download the file">
    You get a `call-logs-<scope>-<date>.csv` file.
  </Step>
</Steps>

Each row includes date and time, from, to, call type, duration, status, and cost (browser calls are masked to "Web"). Individual transcripts, recordings, and AI summaries also live on Call Logs, one call at a time.

## Acting on your analytics

* **Refine your agent.** Watch sentiment and quality scores after each prompt change. A dip usually points at a script line that frustrates callers.
* **Prioritise follow-up.** Work the **hot leads** first and re-engage **cooling leads** before they go cold. Push the best ones into [Deals](/essentials/deals) or schedule a [Callback](/essentials/callbacks).
* **Tune campaigns.** Compare success rate and cost across campaigns, then double down on the sequences that convert. See [Campaigns](/essentials/campaigns).
* **Shift ad spend.** Use Attribution to move budget toward the sources that produce qualified conversations, not just clicks.

## What is coming

The **Coming soon** tab previews reporting still in build: topic and question clustering, conversation depth, an ad "brain" for creative performance, estimated revenue impact, and predictive next-best-action. These tiles are read-only previews today, not live metrics, so treat any revenue or ROI figure you see there as illustrative until it ships.

## Related

<CardGroup cols={2}>
  <Card title="Call logs" icon="phone" href="/essentials/call-logs">
    Inspect any single call: transcript, recording, summary, and CSV export.
  </Card>

  <Card title="Campaigns" icon="bullhorn" href="/essentials/campaigns">
    Run outbound sequences that feed per-campaign reporting.
  </Card>

  <Card title="Contacts" icon="address-book" href="/essentials/contacts">
    Where captured leads and lead scores land for follow-up.
  </Card>

  <Card title="Integrations" icon="plug" href="/integrations">
    Connect Google and Meta ad platforms for attribution and conversion tracking.
  </Card>
</CardGroup>
