Start form
Complaint handling
Filled in by whoever starts the process
Customer & Sales package
Agents log a complaint; the customer tier and an SLA matrix set response and resolution targets, with escalation, compensation approval and CRM case resolution.
About this package
Complaint handling with SLAs gives every complaint a clear target and an owner. A service agent logs the complaint from a form: customer email, order number, category, severity, description and channel.
The workflow finds the customer in your CRM (tier and lifetime value) and evaluates the Complaint SLA matrix decision table, which sets the first-response hours, resolution days, handler level and how much compensation a handler can offer. It opens a case in the CRM, starts a resolution SLA and sends the customer an acknowledgement with the case number and response target.
The handler investigates in a User Task due on the resolution date, with reminders and escalation to a supervisor if it sits untouched. They record the root cause, resolution and compensation. Compensation over the handler's limit (or a "needs supervisor" outcome) goes to a supervisor, who can approve or send it back. The case is resolved in the CRM and the customer receives the resolution email. Adapt the matrix, limits and CRM paths.
Starts from a form: a service agent logs the complaint (Run dialog in the app, or your contact-centre tool posting it to the start API or an inbound webhook).
Someone fills in a form to start it: the workflow inputs are the start form (Run dialog in the app, or your own portal posting to the API), and people complete User Task forms along the way.
The flow
Complaint logged
The agent enters the customer email, order number, category, severity, description and channel.
Find the customer
The CRM returns the customer name, tier and lifetime value.
Set the targets
The Complaint SLA matrix sets the first-response hours, resolution days, handler level and compensation limit; a case is opened and an SLA started.
Acknowledge
The customer gets the case number, the response target and the expected resolution date.
Investigate and resolve
The handler records the root cause, resolution and compensation, with reminders and escalation to the supervisor.
Approve and close
Compensation over the limit goes to a supervisor; the case is resolved in the CRM and the customer is emailed.
Forms
The workflow inputs are the start form: the Run dialog renders them, and your own portal can post the same fields. User Tasks show their fields and outcome buttons to the assignee.
Start form
Filled in by whoever starts the process
User Task
{{case_number}}: {{category}} complaint from {{customer_name}} ({{severity}}, {{tier}})
User Task
Approve resolution for {{case_number}} ({{customer_name}}): compensation {{compensation_amount}}
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_email":"taylor.brooks@example.net","order_number":"SO-558201","category":"delivery","severity":"high","description":"Order arrived nine days late and the box was damaged. One of the three items is missing.","channel":"phone"}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input customer_email=taylor.brooks@example.net --input order_number=SO-558201 --input category=delivery --input severity=high … --waitInbound webhook
usertasks webhooks create <workflow id> # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
-H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
-d '{"customer_email":"taylor.brooks@example.net","order_number":"SO-558201","category":"delivery","severity":"high","description":"Order arrived nine days late and the box was damaged. One of the three items is missing.","channel":"phone"}'What's included
| Type | Name | Details |
|---|---|---|
| Email template | Complaint acknowledgement | Sent to the customer as soon as the complaint is logged, with the case number and response target. |
| Email template | Complaint resolved | Sent to the customer when the case is resolved. |
| Integration | CRM | |
| API reference | Create case | POST /cases — Open a complaint case on the customer record with the category, severity and SLA targets. |
| API reference | Find customer by email | GET /customers — Look the customer up by email: id, name, tier and lifetime value. |
| API reference | Resolve case | POST /cases/{{case_id}}/resolution — Close the case with the root cause, resolution summary and any compensation. |
| Decision table | Complaint SLA matrix | 9 rules — Response and resolution targets, handler level and compensation limit by category, severity and customer tier. First matching rule wins. |
| Workflow | Complaint handling | 25 steps — A service agent logs a complaint; the CRM tier and the SLA matrix set response and resolution targets, a handler investigates under an SLA with reminders and escalation, larger compensation needs supervisor approval, and the case is resolved in the CRM. |
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.
Integration “CRM”Required
Workflow “Complaint handling” assigneesRequired
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/complaint-handling-sla-1.0.0.utpkg
usertasks packages inspect complaint-handling-sla-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install complaint-handling-sla-1.0.0.utpkg --dry-run
usertasks packages install complaint-handling-sla-1.0.0.utpkg # prompts for each requirement
usertasks packages install complaint-handling-sla-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete complaint-handling-sla -f values.yamlVerify the download
shasum -a 256 complaint-handling-sla-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
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
Sales reps submit a quote; a discount authority table sets who approves, and each approver can approve, reject or counter before the CPQ is updated.
Needs:REST APIAssigneesEmail
Customer & Sales
Enrich each inbound lead, score it with a routing table, create it in the CRM with its territory owner, and alert sales or start nurture.
Needs:REST APIInbound webhook