Log in to get this Skill or upvote it.

Customer Experience Score

Note from the creator

Why I built it

“I built this as a way to score conversations with the intention of tracking change over time.”
Ardian Djeka's avatarArdian Djeka

What it does

This skill applies a standardized Customer Experience (CX) score on call transcripts and Intercom chats. It enriches a Rippit worksheet with three independent 1–5 sub-scores — Resolution Quality, Sentiment, and Service Quality — and combines them into a weighted composite CX Score.. Results are presented back to the user, with optional side-by-side team/period comparisons.

How it works

  1. 1

    Reads the interactions

    Reads call and chat transcripts from a Rippit worksheet, splitting call and chat sources by channel.

  2. 2

    Scores each interaction

    Enriches every row with three 1–5 sub-scores and computes a weighted composite, marking rows N/A when evidence is insufficient.

  3. 3

    Reports the scores

    Presents sub-score distributions, means, composite CX Score, and N/A-rate flags back to the user in chat.

How It Looks

See the reply this Skill builds, before you download it.

CX Score Report — Lilypad Pond SupportRippit connector · on
Run cx score report on last week.
▸RippitReads Intercom chat conversations through the Rippit connector, filtered to true conversations✓
▸RippitBuilds a worksheet and enriches each row with resolution, sentiment, and service sub-scores, then computes the weighted composite✓
▸ClaudePresents sub-score distributions, means, composite CX Score, and N/A-rate flags to the user in the chat✓
CX Score Report — Lilypad Pond Support

Scored 312 interactions (calls + chats) for Pond Support across #pond-support and #fly-delivery, Mar 1–14. Grouped by team. CX Score is customer-facing and is kept fully separate from AI QA Score.

  • Composite CX Score: 3.7 — numeric rows only
  • Rows scored: 312 — calls + chats
  • N/A rate: 11% — below 20% flag
Sub-score means (excluding N/A)
Sub-scoreMeanN/A rate
Resolution Quality (×0.40)3.89%
Service Quality (×0.35)4.07%
Sentiment (×0.25)3.212%
By team
TeamCompositeΔ vs pop.N/A
Bullrush Bank pod4.1+0.48%
Marsh & Reed pod3.70.010%
Tadpole Academy pod3.2-0.516%
Read first: Sentiment drags the composite on the Tadpole Academy pod — resolution is fine but customers end frustrated. Edge-case scores should still get a human QA pass.
Reply to Claude…
+⚙Claude Opus 4.8 ▾↑
Claude can make mistakes. Please double-check responses.

Illustrative preview, generated from the generic version of this Skill. The layout is real; the pond-side data is made up.

Churn & RetentionQuality & QAAnalytics & Insights#sentiment#qa#enrichment#cx#scoring#contact-center

The Skill

Skill contents

# CX Score Generator

Score customer experience on contact-center calls and chats using a standardized, three-component rubric applied through Rippit worksheet enrichment.

## First run — make it yours

Before doing any work, interview the user to establish the bindings, one short question at a time:

1. **Data source** — "Which interactions do you want to score — calls, chats, or both — and where do they live in your Rippit workspace ({{data_source}})? This tells me which sources and channels to read."
2. **Scope filters** — "How should I scope the population — which teams, channels, and date range should the CX Scores cover ({{scope_filters}})?"
3. **Comparison grouping** — "Do you want results broken out or compared across any grouping such as teams, agents, channels, or time periods, or reported as a single population ({{comparison_grouping}})?"
4. **Sample size** — "Should I run a small validation sample first before scoring the full population, and if so how many rows ({{sample_size}})?"

After the interview, restate the filled-in bindings for confirmation, then run. On later runs, reuse the established bindings unless the user asks to change them.

## Critical principle: CX Score ≠ AI QA Score

These are fundamentally different measures and must never be conflated, blended, or averaged. CX Score evaluates the customer's experience (customer-facing); AI QA Score evaluates agent adherence to a QA rubric (agent-facing). A call can score high on CX and low on QA, or vice versa. Never combine them into one number.

## CX Score components

The CX Score is a composite of three sub-scores, each on a 1–5 scale.

### 1. Resolution Quality (1–5)
Whether the customer's issue was actually resolved by the end.

**Enrichment prompt:**
```
Rate the RESOLUTION QUALITY of this interaction on a 1-5 scale from the customer's perspective.
5 = Fully Resolved — issue completely addressed, clear confirmation or definitive action taken
4 = Mostly Resolved — primary issue addressed, minor loose ends remain
3 = Partially Resolved — some progress but key parts still open
2 = Minimally Resolved — attempt made but core issue unresolved
1 = Unresolved — no meaningful progress, hang-up, dead transfer, or complete mismatch
If the transcript is too short, garbled, or ambiguous to assess resolution, respond with "Not Enough Information" — do not guess.
Respond with ONLY the number (1-5) or "Not Enough Information".
```

### 2. Sentiment (1–5)
The customer's emotional state and tone trajectory.

**Enrichment prompt:**
```
Rate the CUSTOMER SENTIMENT of this interaction on a 1-5 scale. Focus on the customer's emotional tone and trajectory — not the agent's.
5 = Very Positive — gratitude, relief, or enthusiasm; ends clearly happier
4 = Positive — satisfied and cooperative throughout, no frustration
3 = Neutral / Mixed — matter-of-fact, or frustrated-then-recovered
2 = Negative — frustration or dissatisfaction not recovered by end
1 = Very Negative — angry, hostile, escalation, hang-up in frustration
If the transcript is too short, garbled, or ambiguous to assess sentiment, respond with "Not Enough Information" — do not guess.
Respond with ONLY the number (1-5) or "Not Enough Information".
```

### 3. Service Quality (1–5)
Professionalism, clarity, effort, and empathy — independent of resolution.

**Enrichment prompt:**
```
Rate the SERVICE QUALITY of this interaction on a 1-5 scale. Evaluate the agent's professionalism, clarity, effort, and empathy — independent of whether the issue was resolved.
5 = Exceptional — proactive, empathetic, thorough, anticipated needs
4 = Good — professional, responsive, clear, met expectations
3 = Adequate — acceptable but unremarkable, minor gaps in clarity or warmth
2 = Below Average — unclear, dismissive, slow, or missed obvious opportunities to help
1 = Poor — rude, disengaged, or created additional problems
If the transcript is too short, garbled, or ambiguous to assess service quality, respond with "Not Enough Information" — do not guess.
Respond with ONLY the number (1-5) or "Not Enough Information".
```

## N/A propagation rule

If ANY of the three sub-scores returns "Not Enough Information," the overall CX Score is N/A. Do not compute a partial composite.

## Composite CX Score calculation

When all three sub-scores are numeric (1–5):
```
CX Score = (Resolution Quality × 0.40) + (Service Quality × 0.35) + (Sentiment × 0.25)
```
Round to one decimal place (e.g., 3.7).

## How to apply this skill

### Step 1: Identify the target worksheet
Use the user's existing worksheet ID, or create one with `create_worksheet` using the {{scope_filters}} the user gave (team, date range, channel). Keep related worksheets in a single workbook via `workbookId`.

### Step 2: Run enrichments
Use `enrich_worksheet` to apply all three sub-score prompts as separate columns so each score is independently reviewable. Recommended names: `cx_resolution_quality`, `cx_sentiment`, `cx_service_quality`.

### Step 3: Poll for completion
After each `enrich_worksheet` call, poll `get_enrich_status` until the job completes. Read `answerAggregates` for the distribution directly.

### Step 4: Validate N/A rates
Before computing composites, check the "Not Enough Information" rate across all three columns. If N/A rate exceeds 20%, flag it — likely a data quality issue (very short calls, IVR-only interactions, transcript gaps).

### Step 5: Report results
Present: distribution of each sub-score (1–5 + N/A), mean of each sub-score (excluding N/A), composite CX Score mean (only for fully-numeric rows), N/A rate and flags. If {{comparison_grouping}} is set, show side-by-side with deltas.

## Rippit-specific considerations

- **10K row cap**: If the population exceeds 10,000 rows, slice by week using `aggregate_table` with `dateTrunc: 'week'`, then one worksheet per week within the same workbook.
- **Date boundaries**: Align date boundaries to the user's timezone offset.
- **Channel separation**: Use the `source` column to split call sources from chat sources per the {{data_source}} the user specified.
- **Workbook hygiene**: Always pass `workbookId` to `create_worksheet`.
- **Cost awareness**: Enrichment consumes credits. Checkpoint before enriching large populations. If {{sample_size}} is set, run that validation sample first.

## What this skill does NOT do

- It does not generate AI QA Scores — that is a separate rubric.
- It does not prescribe remediation; the CX Score is descriptive.
- It does not replace human QA review; edge-case scores should still be reviewed.

Built something clever?
Share it.

Publish a Skill, climb the leaderboard, and get Rippit rewards

+ Submit a Skill