A returns and warranty claim form has two audiences. Your team needs a complete claim with the right photos, and the customer wants to know what is happening without emailing to ask. In a shared inbox, neither happens: claims arrive in pieces and chasers pile up. This walkthrough sets up both in FormWork for Halden Home, a fictional appliance retailer that sells direct. It is a configuration pattern, not a case study.
Build the returns form
Three pages keep simple returns short and fault claims thorough.
Your order. A Name field, an Email question, and Order number as Text with a validation rule of Must match a pattern (regular expression), for example ^HH-[0-9]{6}$, with the message “Enter the order number from your confirmation email, like HH-204518”. A Date for delivery.
Product is a Dropdown whose options come from a Products data table with Name, Warranty months and Active columns, filtered under Only show rows where to rows where Active is true. A Hidden value field uses Look up from a dropdown to copy Warranty months from the chosen row, so your team sees it and the customer doesn’t.
What’s wrong. Reason is a Single choice: Change of mind, Faulty or damaged on arrival, or Fault under warranty. Conditional logic then shows only what applies:
- Change of mind: “Is it unused and in its original packaging?” as Yes or no.
- Either fault: a Long text description and the photos question below.
- Fault under warranty: an optional proof of purchase upload.
What you’d like. Refund, replacement or repair, and a collection Address.
The pattern only checks the format. FormWork doesn’t know your orders, so it can’t confirm an order exists unless you add a lookup with Send to webhook (GET only while someone fills in the form) to a system that answers it.
Collect photos with file uploads
The photos question is a File upload with these settings from files and uploads:
- Allowed file types:
image/*. Leave proof of purchase open to.pdfas well. - Allow multiple files, with Min files 1 and Max files 6. The limit is 20.
- Maximum file size: the default is 10 MB per file and the most is 100 MB. Test a photo from a recent phone.
Files that are too large or the wrong type are refused as they upload, with a message naming the file and the limit. Use the description to ask for “the whole item, the fault and the serial number label”.
Photos appear on the entry’s Answers and Files tabs and count towards your storage. Deleting a claim deletes its photos for good.
Set up triage and decision stages
On the form’s Process page, start from the Triage and resolve template, which turns on respondent status, and adapt it:
| Stage | Kind | Owner and due time | Moves on with |
|---|---|---|---|
| Triage | Open | The Customer care group, due within 1 day | Ask the customer (comment required), Accept, Refer to warranty team, Decline (comment required, with a confirmation question) |
| Waiting on customer | Waiting | Keep the current owner | Customer replied, back to Triage |
| Warranty approval | Waiting, needs approval | Keep the current owner | The decision: to Return arranged or Declined. Back to triage |
| Return arranged | Open | Keep the current owner, due within 14 days | Mark as resolved |
| Resolved, Declined | Closed | None |
Warranty approval asks the Warranty team group, with Any one approval needed and links that expire after 7 days. Tick only the answers approvers need under Choose what approvers can see. Approvers who open the email link see files by name only, so warranty staff in your account should open photos from the entry. See approvals.
Keep a return reference, the outcome and a triage note in team fields. When a customer emails more photos, the owner adds them with Edit answers, recorded in the entry’s history.
Let customers track their return with respondent status
Respondent status gives each claim one private, read-only status link. Turn on Let people who submit see progress? at the end of the Process page, then check What respondents see on each stage card.
| Stage | Kind | Neutral default | Label used here |
|---|---|---|---|
| Triage | Open | In progress | Being checked |
| Waiting on customer | Waiting | Being reviewed | Waiting for your reply |
| Warranty approval | Waiting | Being reviewed | Being checked |
| Return arranged | Open | In progress | Return arranged |
| Resolved | Closed | Completed | Completed |
| Declined | Closed | Completed | Closed: see our email |
Warranty approval deliberately shares Triage’s label. “When it last changed” only counts moves that change the label, so the customer doesn’t see an internal referral as an update. Give Declined its own label: a closed stage without one shows the label of the stage before it, which would leave “Being checked” on a finished claim.
How customers get the link. Turn on Email the person who filled it in in notifications, and the confirmation gets a See progress button. You can also insert Status link for respondents in the success message’s HTML template or in an automation’s email. When a customer phones, use Copy status link in the entry’s menu.
What they see. The form’s title, the current label and when it last changed, and when they submitted, in the form’s appearance. No answers, photos, owners, stage names or comments. Anyone with the link can see it, and the page says so.
When links stop working. 90 days after the claim enters a closed stage, when the page says “This status link has expired”. Also when you turn respondent status off for the form, turn the link off with Turn off status link, or delete the entry. Those show “This status link isn’t available” without giving a reason. After you turn a link off, the next email that includes it creates a new one.
Add automations for assignment and updates
Add these automations (see triggers and steps):
- Share out new claims. Form is submitted, then Assign with Next in a group for Customer care and Skip people marked away on.
- Tell the customer the decision. Stage changes with To set to Return arranged and Declined. An If on New stage sends one of two Send email steps: return instructions, or the decline reason with the Comment inserted. Include the status link in both, and write decline comments for the customer to read.
- Chase a reply. In a stage too long for Waiting on customer, longer than 5 days, then Send email to the customer’s email answer.
- Overdue triage. In a stage too long for Triage, 1 day, then Send email to the owner’s email. FormWork sends nothing on assignment or when an entry becomes overdue unless you add this.
FormWork doesn’t issue refunds or courier labels. To start them, add Send to webhook to automation 2, check automation runs and turn on Email admins when an automation run fails: a moved stage doesn’t prove the request worked.
Know the limits
- Everyone in the account can open every claim, including addresses and photos. Groups decide ownership, not access. See team members and roles.
- A claim is in one stage at a time, and due times count calendar time, so a Friday claim due within 1 day is overdue on Saturday.
- This setup doesn’t calculate whether a fault is still in warranty. Triage compares the delivery date with the warranty months on the entry.
- The status page is read-only. Customers reply by email.
Test these cases before you publish
- Each reason, and switching from a fault to change of mind after uploading photos. Hidden answers stay on the entry but aren’t checked or exported.
- A photo over 10 MB, a PDF in the photos question, and seven photos.
- A malformed order number and a product marked inactive.
- The status page at every stage, including a claim moved to Warranty approval, and a declined claim.
- A turned-off link, and a failed webhook.
Change it safely
Publish changes as a new form version. Claims keep the questions they were answered with, while stages, labels and automations follow the latest version, and the publish review asks where claims in a removed stage go. Product changes in the data table apply without publishing.
What success looks like
Each claim arrives with the photos triage needs, has an owner and a due time, and ends in Resolved or Declined with the reason recorded, while the customer could check progress without contacting you. Set your own response targets; this page doesn’t claim any.
Compare with application review, see pricing, or talk through your returns process.