Form page · /f/<id>
Log a complaint
2-column grid · own header and theme · Its own page: share the link or open it on a tablet
Customer & Sales package
Log complaints against a simple customer CRM; tier and category set the priority and SLA, the customer is acknowledged and handlers resolve or escalate.
About this package
Complaints tracker is a complete complaints process with its own lightweight CRM. The Customers table holds each account with its main contact, tier (Platinum, Gold, Silver, Standard), account manager and a count of open complaints; seven sample customers are included.
Customer care logs a complaint on the Log a complaint form page. Picking the customer fills in the contact, email, tier and account manager; the agent adds the category, channel, a summary, the details, the order number and what the customer wants, and chooses the handler and an escalation contact as Persons.
The workflow sets the priority and SLA hours with the Complaint priority decision table (staff conduct and Platinum customers are P1 within 24 hours, and so on), starts the SLA, logs the complaint in the Complaints table, acknowledges the customer by email and alerts the account manager for high-priority cases. The handler gets a resolution task with Resolve and Escalate buttons, a reminder four hours before the deadline and escalation to their manager after a day. Escalate hands the complaint to the team lead, who can resolve it or return it. Resolving records the root cause and any goodwill credit and emails the customer. No integrations needed.
Starts from a form page: customer care opens the Log a complaint form (/f/<id>); each complaint starts the workflow.
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.
The flow
Log it
Customer care picks the customer (contact, tier and account manager fill in) and records what happened and who handles it.
Priority and SLA
The Complaint priority decision table sets the priority, resolution hours and call-back time from tier and category; the run gets an SLA.
Acknowledge
The complaint is logged in the Complaints table and the customer gets an acknowledgement with the target date.
Account manager
High-priority complaints and escalations email the account manager.
Resolve or escalate
The handler resolves it or escalates to the team lead; unanswered tasks escalate to the handler's manager.
Close the loop
Resolving records the root cause and goodwill credit and emails the customer the outcome.
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>
2-column grid · own header and theme · Its own page: share the link or open it on a tablet
User Task
{{priority}} complaint: {{company}} · {{form.summary}} · 2-column grid · own header and theme
User Task
Escalated {{priority}} complaint: {{company}} · {{form.summary}} · 2-column grid · own header and theme
From your code
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
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":{"customer":"C-10034","contact_name":"Tom Becker","contact_email":"tom.becker@example.com","category":"Delivery","channel":"Phone","summary":"Gloves delivery missed for the third time","details":"The weekly delivery of nitrile gloves did not arrive on Tuesday; the clinic had to buy locally at retail prices.","order_ref":"SO-48812","desired_outcome":"Credit","handler":"$owner","team_lead":"$owner"}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input customer=C-10034 --input contact_name="Tom Becker" --input contact_email=tom.becker@example.com --input category=Delivery … --waitWhat's included
| Type | Name | Details |
|---|---|---|
| Email template | Complaint acknowledgement | Sent to the customer as soon as the complaint is logged. |
| Email template | Complaint alert for the account manager | Sent to the account manager for high-priority complaints and escalations. |
| Email template | Complaint resolved | Sent to the customer when the complaint is resolved. |
| Data table | Complaints | Every complaint: customer, category, priority, SLA, who handled it and how it was resolved. |
| Data table | Customers | A simple CRM: each customer account with its main contact, tier and account manager. The complaint form looks customers up here. |
| Decision table | Complaint priority | 7 rules — Priority and SLA hours by customer tier and category. First matching rule wins; the last rule is the default. |
| forms | Log a complaint | Customer care logs a complaint against a customer account; the customer's details, tier and account manager fill in from the Customers table. |
| Workflow | Complaint handling | 33 steps — A complaint is logged against a customer: priority and SLA from tier and category, the customer is acknowledged, and the handler resolves or escalates it to the team lead. |
Complaints · 2 sample rows
ReferenceAccountCompanyContact emailTierCategorySummaryPriorityReceivedResolve byAccount managerStatusRoot causeResolutionGoodwill creditResolved
Customers · 7 sample rows
Account numberCompanyMain contactContact emailPhoneTierAccount managerAccount manager emailRegionCustomer sinceOpen complaintsActive
Requirements
Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.
Nothing: it installs complete.
Install
Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.
curl -fLO https://usertasks.com/gallery/complaints-tracker-1.0.0.utpkg
usertasks packages inspect complaints-tracker-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install complaints-tracker-1.0.0.utpkg --dry-run
usertasks packages install complaints-tracker-1.0.0.utpkg # prompts for each requirement
usertasks packages install complaints-tracker-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete complaints-tracker -f values.yamlVerify the download
shasum -a 256 complaints-tracker-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.
Versions
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
Customer & Sales Official
Agents log a complaint; the customer tier and an SLA matrix set response and resolution targets, with escalation, compensation approval and CRM case resolution.
Needs:REST APIAssigneesEmail
Customer & Sales Official
Account managers register a new business customer; KYC screening, a credit report and a risk rating set the tier and limit before the account is opened.
Needs:REST APIAssigneesEmail
Customer & Sales Official
A themed registration form with an event lookup, capacity check and waitlist, confirmation emails and an organiser task for special requests.
Nothing to configure: works as soon as it is installed