Surveys & Assessments package

Customer satisfaction (CSAT / NPS) survey

A three-step survey page with star rating, 0-10 NPS slider, Likert matrix and rich-text comment; a decision table classifies each answer and detractors get a follow-up call with an SLA.

OfficialNo integrations neededStarts from a formIntermediate~5 min setupv1.0.0

About this package

What it does

Customer satisfaction (CSAT / NPS) survey is a complete feedback loop built only from UserTasks features and the official form controls. The survey page has three steps with a progress bar and a review step: a 1-5 star Rating, a 0-10 Slider for how likely the customer is to recommend you, a Likert matrix on speed, knowledge, ease and value (with N/A), and a Rich text comment.

Every answer starts the Survey response workflow. A decision table turns the scores into promoter, passive or detractor with NPS points (+100, 0, -100: their average is the NPS) and decides whether someone follows up and how fast. The response is saved in the Survey responses data table, which ships with six months of sample answers.

Detractors (and unhappy passives) become a follow-up task for the person who installed the package with a 24 or 48 hour SLA, reminders and escalation to their manager. The task shows the customer's answers on an Info card and records the root cause, a call rating, call notes and what was agreed, which is emailed to the customer. Everyone else gets a thank-you email.

The Survey results page is a small dashboard: a Chart of NPS by month and a doughnut of promoters, passives and detractors from the data table, the NPS by product area and the open follow-ups as Saved reports (workflow variables and task reports), and a button that emails a month's summary.

Starts from a form

Starts from a form page: share the Customer satisfaction survey page (/f/<id>) with signed-in customers or staff, or submit it from your own app through the forms API.

Someone fills in a form to start it: the workflow start form (Run dialog in the app, or your own portal posting to the API) or a standalone form page (/f/<id>) whose Form submitted trigger starts the workflow. People complete User Task forms along the way.

How forms work

The flow

Step by step

  1. 1

    Customer answers

    Three steps with a progress bar: star rating and 0-10 slider, a Likert matrix and the product area, then a rich-text comment and contact details, with a review step before sending.

  2. 2

    Classify

    A decision table turns the scores into promoter, passive or detractor, NPS points, and whether and how fast to follow up; the Likert answers become an experience score.

  3. 3

    Save

    The response goes into the Survey responses table with its month and NPS points.

  4. 4

    Follow up on low scores

    Detractors get a call task with an SLA, reminders and manager escalation; what was agreed is emailed to the customer. Everyone else gets a thank-you email.

  5. 5

    Watch the trend

    The Survey results page charts NPS by month and the category split, shows NPS by product area and the open follow-ups as saved reports, and emails a monthly summary.

Survey response — A customer answers the survey: the response is classified as promoter, passive or detractor by a decision table, saved, and low scores get a follow-up call with an SLA. The same canvas you get in the designer after installing.

Sub-workflow: Monthly NPS summary

From the Survey results page: counts promoters, passives and detractors for a month in the Survey responses table, works out the NPS and emails it to whoever asked.

Forms

The start form and the task forms

People start it from a form page (/f/<id>) with its own header, theme and buttons; submitting it starts the workflow. User Tasks show their fields and outcome buttons to the assignee.

Form page · /f/<id>

Customer satisfaction survey

How did we do? · own header and theme · Its own page: share the link or open it on a tablet

Overall, how satisfied are you with us? * overall · ut-rating
How likely are you to recommend us to a friend or colleague? * nps · ut-slider
How satisfied were you with… * experience · ut-likert
What was it about? * product_area · choice
BillingMobile appOnboardingSupportSomething else
How did you contact us? * channel · choice
EmailPhoneChatIn person
Anything you would like to tell us? comment · ut-rich-text
Your name * customer_name · text
Email customer_email · emailname@company.com
You may contact me about my answers may_contact · boolean
Send my answers

Form page · /f/<id>

Survey results

2-column grid · own header and theme · Its own page: share the link or open it on a tablet

How to read this page about · ut-info-card
NPS by month nps_trend · ut-chart
Responses by category by_category · ut-chart
NPS points by product area area_report · ut-saved-report
Open detractor follow-ups open_report · ut-saved-report
Email me the summary for * summary_month · text
Email me the summary

User Task

Call the customer

Follow up: {{form.customer_name}} ({{nps_category}}, {{form.nps}}/10) · 2-column grid · own header and theme

Customer c_name · textPrefilled: {{form.customer_name}}
Email c_email · emailPrefilled: {{form.customer_email}}
Scores c_scores · textPrefilled: {{form.overall}} of 5 · {{form.nps}} of 10 · {{nps_category}}
About c_area · textPrefilled: {{form.product_area}} · {{form.channel}}
What they said said · ut-info-card
Comment c_comment · textareaPrefilled: {{form.comment.text}}
Root cause * root_cause · choice
Slow responseWrong answerProduct defectBilling errorPriceOther
How did the call go? call_rating · ut-rating
Call notes call_notes · ut-rich-text
What we agreed (sent to the customer) * agreed_action · textarea
ResolvedCould not reach

Form controls

7 official form controls, installed with it

The forms use these controls from the gallery. They come inside the package and install into Extensibility → Form controls, sandboxed and signed like every official control: nothing else to download.

From your code

Start a run over the API

Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.

REST

shell
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
  -H "Authorization: Bearer $USERTASKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id":"<workflow id>","variables":{"overall":2,"nps":3,"experience":{"speed_of_our_response":2,"knowledge_of_the_person_who_helped_you":3,"ease_of_getting_what_you_needed":1,"value_for_money":0},"product_area":"Billing","channel":"Email","comment":{"html":"<p>I was charged twice and it took three emails to get a refund.</p>","text":"I was charged twice and it took three emails to get a refund."},"customer_name":"Avery Example","customer_email":"avery.example@example.com","may_contact":true}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input overall=2 --input nps=3 --input experience='{"speed_of_our_response":2,"knowledge_of_the_person_who_helped_you":3,"ease_of_getting_what_you_needed":1,"value_for_money":0}' --input product_area=Billing … --wait

What's included

20 assets, ready to adapt

TypeNameDetails
Email templateFollowing up on your feedbackSent to the customer after someone has called them about a low score and agreed what happens next.
Email templateMonthly NPS summaryThe summary someone asks for from the Survey results page.
Email templateThanks for your feedbackSent to the customer after they answer the survey (when they gave an email address).
Data tableSurvey responsesEvery customer satisfaction response: the 1-5 rating, the 0-10 likelihood to recommend, the NPS category and points (+100 promoter, 0 passive, -100 detractor: their average is the NPS), the experience score and the follow-up status.
Decision tableNPS category and follow-up5 rules — Turns the 0-10 likelihood to recommend and the 1-5 overall rating into the NPS category, its points, and whether (and how fast) someone follows up. Change the thresholds or the follow-up hours here; the workflow reads the outputs.
Retention policySurvey responses: 24 monthsSurvey answers name the customer: purge response rows 24 months after they were created. Apply it to the Survey responses table after install.
ReportNPS points by product areaAverage NPS points per product area from the survey runs (workflow variables): above 0 means more promoters than detractors.
ReportOpen detractor follow-upsFollow-up calls for low scores that are not closed yet, with their due dates (the Survey response workflow's tasks).
ReportSurvey responses by monthResponses and average rating per month from the survey runs (workflow variables).
Form controlChartBar, line, area, pie or doughnut chart of static data, another field's rows, lookup results or a saved report. Keyboard-navigable points, a data table view, and optional point selection.
Form controlInfo cardA callout or key / value card: an info, success, warning, error or neutral message that can show up to six other form values ({{field1}} … {{field6}}), formatted for the reader.
Form controlLikert scaleSurvey matrix: rate several statements on one scale (agree / disagree, satisfaction, frequency or your own labels), with optional N/A. A matrix on wide screens, one card per statement on phones.
Form controlRatingStar, heart or circle rating from 1 to 10 with optional labels (Poor … Excellent). Mouse, touch and keyboard.
Form controlRich textA rich-text editor with bold, italic, underline, headings, lists, quotes and links, a character counter and strict sanitising of everything typed, pasted or dropped.
Form controlSaved reportShows a saved report as a sortable, paginated table or a chart, run with the permissions of the person filling in the form. Optionally pick a row as the field's value.
Form controlSliderA range slider for numbers (0 to 100, $0 to $5,000, 1 to 10) with a value bubble, mark labels such as Low / Medium / High and an optional box for exact entry.
FormCustomer satisfaction surveyThe customer survey page: a 1-5 star rating, how likely they are to recommend you (0-10), a Likert matrix on the experience and a comment. Each answer starts the Survey response workflow.
FormSurvey resultsThe internal results page: NPS trend and category split from the Survey responses table, NPS by product area and the open follow-ups from saved reports, and a button that emails a month's summary.
WorkflowMonthly NPS summary9 steps — From the Survey results page: counts promoters, passives and detractors for a month in the Survey responses table, works out the NPS and emails it to whoever asked.
WorkflowSurvey response15 steps — A customer answers the survey: the response is classified as promoter, passive or detractor by a decision table, saved, and low scores get a follow-up call with an SLA.

Survey responses · 30 sample rows

ReferenceSubmittedMonthCustomerEmailProduct areaChannelOverall ratingLikelihood to recommendNPS categoryNPS pointsExperience scoreCommentFollow-upStatus

Requirements

What you connect it to

Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.

Needs

  • Email (optional) — Email delivery configured for the instance (EMAIL_PROVIDER), used for notifications.

After installing

  1. Nothing to configure: install it and open Forms → Customer satisfaction survey (share its /f/ link) and Forms → Survey results.
  2. The Rating, Slider, Likert scale, Rich text, Info card, Chart and Saved report controls install with the package (Extensibility → Form controls).
  3. Follow-up calls go to the person who installed the package: change the step's assignee in the designer to a team or a Person field if someone else should call.
  4. Edit the NPS category and follow-up decision table to change the thresholds or the follow-up hours; delete the sample rows in Survey responses when you go live.
  5. Optional: apply the "Survey responses: 24 months" retention policy, and set EMAIL_PROVIDER so the thank-you and follow-up emails are delivered (the console provider logs them).

Asked for on install

Nothing: it installs complete.

Install

Install it in your workspace

Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.

In the app

  1. Download csat-nps-survey-1.0.0.utpkg.
  2. Open Automations → Packages and drag the file onto the page (or choose Import package). Browse gallery there lists every gallery package without downloading by hand.
  3. Pick the file. The wizard verifies the checksum, every file hash and the signature, and shows the readme.
  4. Review the changes (what is created) and the data rows.
  5. Fill in the requirements, or tick Keep incomplete and finish later with Complete setup.
  6. Done: the workflow is published and active once setup is complete.

With the CLI

shell
curl -fLO https://usertasks.com/gallery/csat-nps-survey-1.0.0.utpkg
usertasks packages inspect csat-nps-survey-1.0.0.utpkg       # offline: checksum, hashes, signature
usertasks packages install csat-nps-survey-1.0.0.utpkg --dry-run
usertasks packages install csat-nps-survey-1.0.0.utpkg       # prompts for each requirement
usertasks packages install csat-nps-survey-1.0.0.utpkg --keep-incomplete --yes   # in CI; finish with:
usertasks packages complete csat-nps-survey -f values.yaml

Verify the download

File SHA-256
26c2cfab5ffd8f4835af7782419465bcd00f0a55d368a7753e514ce0167539c3
Package checksum (what is signed)
sha256:21f5de5a94e5a0dc6a2cdd3d5bd4cf01e7632460433740dc09483fd438245f47
Signer
UserTasks Gallery · 49:f3:04:90:47:02:4d:07:28:61:3d:dc:bb:aa:db:11

shasum -a 256 csat-nps-survey-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.0

  1. v1.0.02026-10-31First release.

Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work

More packages

Related

Browse the whole gallery