Customer feedback (CSAT)

Capture a 1-5 star rating + comment from customers when a ticket is resolved.

When a ticket reaches Resolved or Closed status, the customer sees a "How did we do?" prompt on their portal view of that ticket. They pick 1-5 stars, optionally add a comment, and click submit. That's CSAT — the simplest, most direct measure of whether your support actually helped.

What the customer sees

Open the ticket from the customer portal (acme.nura24.com/tickets/<ref>). Below the conversation, a panel appears:

How did we do? Your feedback helps us improve the support we provide. ★ ★ ★ ★ ★

Hovering a star highlights everything up to it in amber. Clicking sets the rating and reveals a comment box plus a Submit button. The customer can:

  • Click submit with just the star rating (comment is optional).
  • Add a short note before submitting (max 2000 characters).
  • Walk away without rating — no nag, no email reminder. The prompt stays available until they decide.

Once submitted, the panel switches to read-only: their stars in amber, their comment in italics, and a brief "Thanks for your feedback!" header.

One rating per ticket

A customer can only rate a ticket once. The form disappears after they submit; an attempt to POST the rate endpoint a second time silently no-ops. The ticket's csat_rated_at timestamp gates this — agents never see two ratings for the same ticket.

If they want to change their rating, they need to contact you out-of-band; we don't expose an "edit my rating" button.

What agents see

Three places:

  • The ticket detail page in the agent inbox grows an amber "Customer feedback" card in the sidebar showing the rating (1-5 stars), the comment if any, and how long ago they rated.
  • The ticket inbox list adds a small amber star chip next to the row's priority badge. The chip shows the score (e.g. ★ 5) with a tooltip explaining "Customer rating: 5 / 5".
  • CSV export appends three columns to every row: csat_rating, csat_comment, csat_rated_at.

What CSAT is good for

  • Per-agent quality signal. Filter the inbox by assignee + sort by rating; the agent with consistently 4-5 star ratings is doing something right.
  • Spotting unhappy customers. A 1-2 star rating with a long comment is a flag — follow up directly, don't let it become a churn signal.
  • Marketing. Once you have a few hundred ratings, you can publish your average ("Our customers rate us 4.7/5" on the homepage). Real number, real signal.
  • Closing the loop. Combine CSAT comments with KB gap analysis — both surface "places customers were unhappy".

What CSAT is NOT

  • It's not a per-reply rating. One rating covers the whole ticket, not individual messages.
  • It's not anonymous. We know which requester left the rating (it's tied to their ticket). We just don't surface their identity prominently in the agent UI — but the data is there if you need it.
  • It's not NPS. NPS is "would you recommend us to a friend?" sent periodically to all customers. CSAT is "did this specific resolution help?" right after the resolution. Both are valid; we only do the second one today.

When ratings disappear

A rating stays on the ticket forever. If you Reopen a Resolved ticket because the customer replied, the old rating is still visible but the customer can't rate again for the new round of work. This is a known trade-off — re-rating would be useful but adds enough complexity that we kept the simpler "one rating per ticket" rule.

Disabling the feature

There's no global off-switch today. If you don't want CSAT prompts to appear:

  • Don't enable the Customer Ticket Portal module. Email-only ticket workflows never show the prompt because customers never visit the portal.
  • Or wait for the next iteration — a per-workspace toggle is on the roadmap.