Returns and claims

Returns and warranty claim form with progress tracking

A returns and warranty claim form that collects order details and photos, routes each claim through triage and lets customers check progress by link.

What your team sees

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 .pdf as 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:

StageKindOwner and due timeMoves on with
TriageOpenThe Customer care group, due within 1 dayAsk the customer (comment required), Accept, Refer to warranty team, Decline (comment required, with a confirmation question)
Waiting on customerWaitingKeep the current ownerCustomer replied, back to Triage
Warranty approvalWaiting, needs approvalKeep the current ownerThe decision: to Return arranged or Declined. Back to triage
Return arrangedOpenKeep the current owner, due within 14 daysMark as resolved
Resolved, DeclinedClosedNone

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.

StageKindNeutral defaultLabel used here
TriageOpenIn progressBeing checked
Waiting on customerWaitingBeing reviewedWaiting for your reply
Warranty approvalWaitingBeing reviewedBeing checked
Return arrangedOpenIn progressReturn arranged
ResolvedClosedCompletedCompleted
DeclinedClosedCompletedClosed: 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):

  1. Share out new claims. Form is submitted, then Assign with Next in a group for Customer care and Skip people marked away on.
  2. 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.
  3. 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.
  4. 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.

More use cases

All use cases
Quotes and pricing

Accountancy quotes

A quote form that adapts its questions, prices bookkeeping, accounts, VAT and payroll as people answer, and hands each enquiry to an adviser.

Read the use case
Applications and approvals

Application review

Collect applications with conditional questions, move each one through review and approval stages, and keep the questions behind every response.

Read the use case
Onboarding

Client onboarding

Collect companies, contacts and documents, move each onboarding through your team's stages, and hand structured answers to another system.

Read the use case
Travel approvals

Travel requests

A travel request form that estimates the trip's cost, asks the budget holder to approve anything over £1,000 and hands the trip to the travel desk.

Read the use case
Spend approvals

Purchase approvals

A purchase approval form with line items and a calculated total that routes each request by spend limit to budget holders, finance and directors.

Read the use case
New starters

Employee onboarding

An employee onboarding form for hiring managers, with HR, IT and facilities stages, an equipment list and reminders timed from the start date.

Read the use case
Supplier due diligence

Supplier onboarding

A supplier onboarding form for due diligence that collects company, insurance and bank details, scores risk, routes approval and hands off to finance.

Read the use case
Scored assessments

Risk assessments

Build a scored risk assessment form that weights each answer, shows the project lead their risk level, routes high scores to review and emails a PDF.

Read the use case
Event bookings

Event registration

An event registration form that books several attendees at once, prices each place from a data table and takes payment through Stripe Checkout.

Read the use case
Sales leads

Lead qualification

A lead qualification form that scores each enquiry, shares sales-ready leads between reps in turn, chases first contact and hands leads to your CRM.

Read the use case