At Dialpad, I designed the first customer-facing experience for AI CSAT—an industry-first product that predicted satisfaction beyond sparse customer surveys. I took the dashboard through beta testing and launch, and helped build the Customer Intelligence system around it.
Product Design, User Research, Design Engineering, Analytics, AI

Beyond the 3%
Traditional customer-satisfaction surveys capture only a fraction of contact-center conversations. Dialpad reported response rates around 3%, often weighted toward customers with especially strong opinions. That left managers making coaching and quality decisions from an incomplete view.
AI CSAT used Dialpad's conversation intelligence to predict satisfaction when a customer did not complete a survey. That gave managers a much broader view, but the product still needed to make three things clear: which scores came from customers, which were predicted, and how much of the total conversation volume was actually scored.
Read Dialpad's launch announcementCustomer Testing
I designed the first customer-facing analytics experience for AI CSAT and worked with my PM, customer success reps, and the ML team to take it from beta testing through launch.
Testing showed that customers did not immediately understand what “AI CSAT” meant or how it related to scores submitted by customers. I introduced three clear labels—Customer, AI Predicted, and Customer + AI—and used them consistently across filters, metric cards, chart legends, and tooltips.
The layout changed with the language. Early concepts gave CSAT, survey response rate, and AI prediction rate equal weight. I reorganized the dashboard around one large combined score, supported by separate Customer and AI coverage cards.
Before testing
Three metrics with equal weight
After testing
One result, supported by two visible sources
Never show a score without its source and its coverage.
Survey response rate showed what share of calls had direct customer feedback. AI prediction rate showed what share of inbound answered calls received a predicted score, making it clear that the model did not score every call.
AI Didn’t Replace the Customer
AI CSAT launched within a broader Customer Intelligence feature set that also included new survey experiences. Together, the system let admins configure feedback, collect explicit ratings, supplement missing responses with AI predictions, and analyze both sources without conflating them.
The setup flows were designed around confidence before publish. SMS paired editable questions, response handling, and caller ID with a live message preview. Voice surveys turned text-to-speech, recording, uploaded audio, and response timing into a previewable caller journey.


Building With Dialtone
I helped implement the AI CSAT dashboard and built the front-end structure for the survey flows using Dialtone's Vue components and utility framework. Building the flows in code exposed responsive behavior, validation, preview states, and component constraints that were difficult to settle in static designs alone.
<template>
<section>
<header class="d-d-flex d-jc-space-between d-ai-center d-p24">
<h1>New SMS Survey</h1>
<dt-button importance="primary" @click="publishSurvey">
Publish survey
</dt-button>
</header>
<form
class="d-d-grid d-g24 d-g-cols2 d-p32"
@submit.prevent="publishSurvey"
>
<div class="d-d-grid d-g24">
<dt-select-menu
v-model="survey.callerId"
label="Apply Caller ID"
:options="callerIdOptions"
/>
<dt-input
v-model="survey.question"
label="SMS survey question"
description="Sent shortly after the call ends."
type="textarea"
:messages="questionMessages"
/>
<dt-input
v-model="survey.invalidResponse"
label="Invalid response message"
type="textarea"
/>
</div>
<survey-preview
:caller-id="survey.callerId"
:question="survey.question"
:invalid-response="survey.invalidResponse"
/>
</form>
</section>
</template>The implementation used shared inputs, buttons, validation behavior, spacing, and layout utilities so the experience inherited accessible interaction states and stayed consistent with the rest of Dialpad.
Contributing Back to Dialtone
Alongside AI CSAT, I contributed directly to Dialtone across multiple product initiatives. I worked with the Dialtone team in both Figma and code on components such as buttons, button groups, and inputs, as well as tokens for hover, focus, and related interaction states.
The work aligned design artifacts with shipped behavior and supported WCAG 2.1 AA requirements at the system level. Instead of resolving accessibility and consistency screen by screen, teams could inherit stronger defaults from the shared library.
Figma
Shared components, variants, and accessible interaction states
Vue
Production components and behavior reviewed with the Dialtone team
System
Tokens, utilities, and WCAG 2.1 AA guidance reused across products

Related Analytics Work
My broader Dialpad work included agent-status reporting, live operational dashboards, dashboard configuration, and advanced filtering. These surfaces extended the same emphasis on dense but scannable information and reusable product patterns.
Outcome
Dialpad launched AI CSAT as an industry-first, real-time predictive engine within its Customer Intelligence offering. In its launch announcement, Dialpad reported that early-access customers saw as much as a 15% improvement in CSAT within the first three weeks.
The project enforced that a prediction is only useful when people understand where it came from and how much they can trust it. For AI CSAT, that meant testing the language with customers, showing how much of the call volume the model actually scored, and carrying those rules through the design system.