Customer satisfaction surveys (CSAT)
When a ticket is resolved, concorbit can email the contact a short survey asking how well the support went. The customer rates from one star to five (or thumbs up / down, your choice), optionally leaves a comment, and submits. Their rating shows up on the ticket detail page and in your helpdesk analytics.
Turning surveys on
Navigate to Helpdesk > Settings > Surveys. Tick Enable surveys and set:
Delay: how long after the ticket resolves before the survey email goes out. Default is 24 hours. Useful range is 4 to 72 hours; long enough that the customer has confirmed the fix worked, short enough that the experience is still fresh.
Rating type: stars (1 to 5) or thumbs (up / down).
Follow-up message: optional. Shown to the customer on the survey page after they submit. Use it to thank them by name, point them at a knowledge-base article, or invite them to a quarterly review.
Save. Surveys for already-resolved tickets that fit the delay window will be queued on the next hourly sweep (concorbit:send-satisfaction-surveys).
What the customer sees
The customer gets an email with the subject "How did we do on #{ticket_number}?". The body has five star buttons in a row. Each button is a direct link to the survey page with that rating pre-selected: one click to rate. They can optionally add a comment and submit, or leave the comment blank.
If you've enabled the follow-up message in settings, they'll see it on the success page after they submit.
What you see
Two surfaces:
Ticket detail page. When a customer rates a ticket, a Customer rating card appears on the ticket-show right rail showing the star rating, the comment (if they left one), and when they rated. Pre-rating there's no card visible. The absence isn't a UX failure, it just means the customer hasn't responded yet.
Helpdesk > Settings > Surveys. Aggregate stats: total sent, total responses, response rate, average rating, and a distribution histogram by rating. Filter by date range to compare months or quarters.
When a survey isn't sent
Surveys are only sent for tickets that:
Have a
contact_id(a known customer record; anonymous tickets are skipped)Have been resolved for at least the configured delay window
Haven't already had a successful survey dispatch (one successful send per ticket; no re-sends on re-resolution)
If the contact has no email address on file at the time the cron runs, the row is created but no email is dispatched. The cron retries the dispatch on every subsequent sweep; if you add an email to the contact later, the survey reaches them on the next pass.
A note on changing the rating type
If you switch Rating type from stars to thumbs (or vice versa) between sending a survey and the customer clicking through, the per-rating link in the email may not pre-fill the form correctly:
Stars → thumbs. A 2/3/4 star link silently fails to pre-fill on the survey page; the customer just sees the thumbs widget unfilled and can submit a thumb up or down.
Thumbs → stars. A thumb-1 or thumb-5 link pre-fills as star-1 or star-5 respectively. The customer can change before submitting.
Submission validation is gated on the new rating type, so a stale email link can never produce an off-contract value in the database. For best customer experience, avoid changing rating type between scheduled sweeps.
A note on email rendering
Outlook strips inline style attributes on <a> tags, so the styled rating buttons may render as plain blue underlined links rather than the boxed style. The click target still works: every link still leads to the survey page with the correct rating pre-filled. The fallback "open the rating page" plain-text link below the buttons covers any client that strips the styled buttons entirely.
Privacy and token security
The survey link uses a 64-character random token (Str::random(64)) tied to the specific survey row. Anyone with the link can submit a rating, so treat the email as bearer-token credentials. Each link can only be submitted once: re-visiting after submission shows the already-rated state, not the form.
There is no login required to rate a ticket: the customer simply clicks the link.