· Prakash Natarajan · Reliability · 16 min read

Customer-Facing Analytics: What to Show Each Tenant

Customer-facing analytics for an AI agent means real numbers scoped to one customer, not a copy of your internal dashboard. What to show, hide, and build.

Customer-facing analytics for an AI agent means real numbers scoped to one customer, not a copy of your internal dashboard. What to show, hide, and build.

Customer-facing analytics means putting a live, scoped view of your product’s real behavior directly inside the software your own customer already uses, instead of asking them to trust a claim on your website or wait for a monthly export. For an AI SaaS product built on an agent, that view has to answer one specific question honestly: what did my agent actually do for me this week, and what did it cost. Most guides to customer-facing analytics are written for generic dashboards and stop at the data warehouse question. This one is written for the AI-agent case specifically, because an agent’s raw output includes prompts, tool calls, and other tenants’ data that a generic embedded chart never has to worry about, and getting the “show this, hide that” line wrong is a real trust problem, not a cosmetic one.

What is customer-facing analytics for an AI agent product?

Customer-facing analytics for an AI agent is a scoped, simplified view of an agent’s real activity, shown to the end customer whose business it ran for, embedded inside the product they already log into rather than delivered as a separate report.

customer facing analytics for ai agents

The word “customer” here does double duty, which is exactly where this gets confusing if you skip past it. You, the AI SaaS builder, have your own customers, the businesses that bought your product. Each of those businesses runs its own agent instance and has its own end users. Customer-facing analytics is what you show your customer, the business, about the agent that runs on their behalf, scoped to only their own data and simplified down to the handful of numbers that actually tell them whether the thing they’re paying for is working. That’s a different audience and a different depth of detail than the internal dashboard your own engineering team uses to debug the agent itself, and conflating the two is the single most common mistake teams make when they first build this.

The request for this usually shows up the same way, whichever product you’re building. A customer who has been paying for a support copilot or a sales assistant for a month or two starts asking, in a renewal call or a support ticket of their own, some version of “what is this actually doing for us.” Answering that with a sales deck slide or a screenshot from your internal admin panel reads as evasive even when the number itself is good, because it looks like you’re choosing what to show rather than letting them see it directly. A live, scoped view inside the product they already use answers the same question without the defensive framing, and it keeps answering it automatically every time they log in, instead of only on the days someone remembers to ask.

How is this different from embedded analytics or internal BI?

Embedded analytics and internal BI both put charts inside a product, but the resemblance stops at the container. The difference is depth and audience, not delivery mechanism.

embedded analytics compared to internal bi for ai agents

Internal BI is built for someone whose job is to read it: an analyst or an engineer who wants every series, every filter, and every edge case exposed, because catching the one weird outlier is the whole point. A generic embedded analytics tool, the kind most guides on this topic describe, takes that same dense instinct and just moves it inside a product’s UI, still assuming the viewer wants to explore. Customer-facing analytics for an agent product inverts that assumption entirely. Your customer isn’t exploring data, they’re checking whether their agent earned its keep this month, and a wall of filterable charts actively works against that goal. The right customer-facing view answers the question before the customer has to ask it: one honest number for how much work the agent handled without a human, one honest number for what it cost, and one honest number for how well it actually resolved things when it did act. Depth belongs in the internal tool. Clarity belongs in the customer-facing one, and building the second as a stripped-down copy of the first is how teams end up shipping something a customer opens once and never returns to.

What can you safely show an end customer from their AI agent?

You can safely show anything that’s a summary derived from the agent’s activity and scoped to that one customer’s own data, which in practice means three numbers most support and sales copilots should already be tracking: deflection rate, cost per resolution, and resolution rate.

the safe ai agent metrics to show a customer

Deflection rate tells a customer how much of their contact volume the agent handled without a human touch, and it’s the number most AI SaaS builders lead with because it maps directly to headcount they didn’t have to hire. Cost per resolution turns that same activity into a dollar figure their finance team can actually use, and it only holds up if it includes the real cost of every escalated conversation, not just the API spend on the ones the agent finished alone. Resolution rate is the honesty check sitting underneath both of the others: it measures whether the conversations the agent handled actually got solved, as opposed to merely ending, which matters because a high deflection rate paired with a low resolution rate usually means customers gave up rather than got helped. Showing all three together, not just the flattering one, is what turns a customer-facing dashboard into something a customer trusts instead of something they learn to discount.

A trend line for each of these three numbers matters as much as the current value, because a single snapshot can’t tell a customer whether their agent is getting better, getting worse, or just having a normal week. Refresh the underlying aggregates at least daily, since a customer checking in after a product launch or a marketing push wants to see that week’s activity reflected, not last month’s cache. None of the three numbers needs to update in real time the way an internal debugging trace does; a customer reading their dashboard once a week gets just as much value from a number that’s a few hours old as one that’s a few seconds old, and treating this as a real-time streaming problem is usually wasted engineering effort spent on a freshness bar nobody asked for.

What should never reach a customer-facing dashboard?

The raw trace, meaning the literal sequence of prompts, model outputs, and tool call payloads behind a single agent run, should never reach a customer-facing view unredacted, because that trace routinely contains information that belongs to someone else or shouldn’t leave your system at all.

redacting sensitive spans from an ai agent trace

A support agent’s trace can include your own system prompt, the exact retrieval results it pulled from your knowledge base, and occasionally a fragment of another customer’s data if a retrieval step or a shared cache misfired upstream. None of that is what your customer is asking for when they want to know how their agent is doing, and showing it anyway trades a real risk for a feature nobody requested. The fix isn’t hiding that a trace exists, it’s showing the shape of it while masking the contents: a customer can see that a run made three tool calls and took four seconds without seeing the literal arguments passed to each one. If a customer genuinely needs the full trace for a specific incident, that’s a deliberate, logged, one-off disclosure your own team makes after review, never a default view rendered automatically to every customer for every run. Draw that line once, in the data layer, and every dashboard built on top of it inherits the same protection instead of each new chart needing its own manual redaction pass.

The same caution applies to anything that reveals how the underlying model was prompted or which vendor and version you’re running behind the scenes, even when none of it is technically a privacy leak. A customer who sees your exact system prompt can copy it into a competing product; a customer who sees your model routing logic can start reverse-engineering your cost structure or your fallback behavior. Neither is a security incident, but both hand away product decisions you made on purpose, so the same redaction boundary that protects another tenant’s data should also strip vendor names, model identifiers, and prompt text out of anything a customer can see by default.

How does the double multi-tenant model change the architecture?

A normal multi-tenant SaaS product only needs one boundary: your customer’s data stays separate from every other customer’s data. An AI SaaS product built on an agent needs a second boundary nested inside the first, because your customer’s own end users generate the agent activity your customer is looking at.

double multi-tenant boundary for ai agent analytics

The outer boundary is the one every SaaS product already has to get right: your org’s data stays walled off from every other org on the platform, enforced at the database layer, not just filtered in a query. The inner boundary is specific to a product where your customer is themselves running something for a crowd of end users, whether that’s their own support customers, their own sales leads, or their own internal teams. A single shared events table with only an org ID column solves the outer boundary and silently ignores the inner one, which is exactly how a customer’s dashboard ends up aggregating activity across their own sub-accounts or end users in a way they never asked for and can’t turn off. The fix is tagging every trace and every metric event with both identifiers, the org and the specific end-customer or sub-account it belongs to, from the moment it’s captured, so a dashboard query can scope to either level cleanly instead of computing one aggregate and hoping nobody needs a narrower slice.

A marketing agency reselling an AI sales assistant to its own clients is a clean example of why this matters in practice. The agency is your customer, the org, and each of the agency’s own clients is the inner tenant, each expecting to see only their own campaign’s agent activity when the agency shares a dashboard link with them. Get the outer boundary right and the agency’s data stays separate from every other agency on your platform. Skip the inner boundary and the agency’s dashboard, or worse, a dashboard link they forward to one specific client, quietly shows that client every other client’s numbers too, which is a far worse trust failure than a slow chart or a missing metric, because it’s the exact kind of leak a customer notices immediately and can’t unsee.

How do you implement this without building a BI stack from scratch?

You implement it with an embed token that scopes a pre-built, white-label dashboard component to exactly one tenant’s data, rather than standing up a general-purpose analytics platform and reinventing tenant isolation on top of it.

embed token connecting a white label dashboard to a host app

A short-lived, tenant-scoped token, generated server-side and passed to a dashboard component embedded in your product’s own UI, does two jobs at once: it authenticates the request and it defines exactly which tenant’s data that request is allowed to touch, so there’s no separate authorization check that a future code change could accidentally skip. The dashboard component itself renders as a native part of your interface rather than an iframe pointing at someone else’s domain, carrying your own colors and layout so it reads as part of your product instead of a bolted-on third-party widget. This is the specific gap a generic embedded-analytics platform leaves you to fill yourself: most were built for internal BI use cases and treat “one tenant per token” as a customization you bolt on, not a default. A tool built for AI agent analytics specifically starts from the double multi-tenant model as the default case, which is the difference between an afternoon of integration work and a multi-week project reinventing isolation logic your analytics vendor should have shipped.

Where should you start if you are shipping this for the first time?

Start with the three numbers, not the dashboard. Get deflection rate, cost per resolution, and resolution rate computing correctly and scoped to a single tenant before you spend any time on layout, color, or which chart library renders the prettiest ring.

Most teams do the opposite: they build a polished-looking dashboard first and only later discover the underlying numbers were wrong, doubled-counted, or leaking across tenants, which means redoing the trust-critical part after a customer has already seen the bad version. Once the numbers are right and provably scoped to one tenant, embedding them cleanly is the easy part, and it’s the part a white-label component genuinely solves for you rather than the part you should spend engineering time reinventing. If you’re building the kind of AI SaaS product where your own customers will eventually ask to see what their agent is doing, AiAgRe ties tracing, the double multi-tenant boundary, and a white-label dashboard component together from the start, so the number you show a customer on day one is the same number you’d stand behind in a support call six months later.

Frequently asked questions

What is customer-facing analytics?

Customer-facing analytics is a scoped, simplified view of a product’s real activity, embedded directly inside the software a paying customer already uses, built for someone checking an outcome rather than exploring raw data. For an AI agent product, that means showing the customer what their own agent did, not a copy of the internal dashboard the builder’s own team uses to debug it.

Is customer-facing analytics the same as embedded analytics?

They overlap but aren’t the same thing. Embedded analytics describes the delivery mechanism, charts placed inside a product’s UI instead of a separate portal. Customer-facing analytics describes the audience and the depth: fewer, simpler numbers built for a customer checking a result, as opposed to an analyst exploring a full dataset.

What AI agent metrics are safe to show a customer?

Deflection rate, cost per resolution, and resolution rate are the three core numbers most support and sales agent products should surface, since all three are summaries derived from the agent’s own activity and can be cleanly scoped to one customer’s data. Show them together rather than leading with only the most flattering one.

Can a customer see their AI agent’s raw trace?

Not by default, since a raw trace can contain your own system prompt, retrieval results, and occasionally a fragment of another tenant’s data if something misfired upstream, none of which belongs in a default customer-facing view. Show the shape of a trace, like how many tool calls a run made, while masking the actual contents, and treat a full trace disclosure as a deliberate, reviewed exception rather than a standard feature.

What is the double multi-tenant model?

It’s the two nested data boundaries an AI SaaS product needs that a normal SaaS product only needs one of: an outer boundary separating one org’s data from another’s, and an inner boundary separating that org’s own end customers or sub-accounts from each other. A shared table with only an org ID column solves the outer boundary and misses the inner one.

Do I need to build my own analytics platform for this?

No, not if you use an embed token that scopes a pre-built, white-label dashboard component to exactly one tenant’s data, since that does the authentication and the tenant-scoping in one step, avoiding the multi-week project of reinventing double multi-tenant isolation on top of a general-purpose BI tool that was never built for the AI-agent case.

Related reading: multi-tenant analytics covers the tenant isolation models this piece builds on, deflection rate covers the formula behind the first metric most customers see, and AI agent observability covers the tracing layer this dashboard is built on top of. See pricing for how AiAgRe’s white-label dashboards fit into your stack.

Back to Blog