Use caseWorkflow automationDocument AI

Warranty claims triaged from photos, serial numbers and receipts before anyone opens them

Warranty intake that reads serials from photos and dates from receipts, checks your ERP and terms, and drafts the RMA for a person to approve.

A blueprint, not a client story. The business described is illustrative; the architecture, integrations and trade-offs are real, and this is how I would build it. By Ergini, .

The short version

A warranty intake workflow for brands selling durable goods such as e-bikes, appliances or furniture. It reads the serial from a label photo and the seller and date from the receipt, looks the unit up in NetSuite or Business Central and the order in Shopify, and applies the statutory guarantee and the brand's warranty as separate rules in code. A vision model classifies the fault and asks for anything missing. A person approves every outcome; safety cases skip the queue.

Best for
Brands selling durable goods direct and through dealers, where every claim means checking a serial, a receipt and photos first.
Connects to
Freshdesk or Zendesk, Shopify, NetSuite or Business Central, Vision model, Google Cloud Vision web detection, Sendcloud or a carrier API
The AI does
Reads serials, receipts and damage photos, maps the fault to your defect catalog, and asks precisely for whatever is missing.
People do
Decide repair, replacement, refund or a paid repair, take safety cases at once, and handle claims the rules cannot place.
Built as
AI Workflow Automation, usually $15K - $30K

A hundred and fifty claims a week, each one a small investigation

Picture an e-bike brand selling in Germany, the Netherlands and France, direct through its Shopify store and through about sixty dealers. Three people run the service desk in Freshdesk, and around 150 warranty claims arrive each week, each one an email, a few photos and a line like 'the motor cuts out on hills'.

None can be decided from the email alone. The frame number has to be read off a photo of the bottom bracket, often upside down and muddy, and half the claims need a sharper photo, the receipt or a video before anyone can judge them. The answer arrives days later, sometimes in a new thread, while a battery that 'smelled hot while charging' waits in the same queue as a scratched mudguard.

The fix is a workflow that does the checking before a person opens the claim: AI workflow automation with a vision model for reading, rules in code for anything that commits the brand, and a person for every decision. It never tells a customer no.

Six jobs inside every claim, all done by hand

What the desk does by hand, per claim:

  1. Find the photo that shows the frame number, read it, guessing between O and 0 or 8 and B, and try it in the ERP until something matches.
  2. Note model year, production date and battery serial, and check the battery lot against the sheet of known issues.
  3. Find proof of purchase: the Shopify order, or a dealer receipt, which usually means asking for it.
  4. Work out which clock applies: the brand's warranty for that component, the statutory guarantee against the seller, or neither.
  5. Guess the fault from the photos, often by asking for another photo or a video.
  6. Decide, create the RMA, order the part, arrange a pickup or brief the dealer, and write to the customer in their language.

Each step is reasonable. At 150 claims a week in three languages they are the job, and the decision gets what time is left.

From an email with photos to a claim a person can decide

A model reads and classifies. Code decides coverage by applying the brand's terms and the law as versioned data, and the outcome is a person's call.

  1. 01 Trigger · Freshdesk webhook

    A claim arrives

    Through the website's claim form, which asks for the frame number, photos and receipt, or as a plain email. Both become a Freshdesk ticket, whose webhook starts the workflow.

  2. 02 Plain code

    Safety words stop the line

    Before anything else, keyword rules in every language the brand serves look for fire, smoke, heat, swelling, a cracked frame or fork, a crash or an injury. A hit pages the named safety person.

  3. 03 AI model · Vision model, structured output

    Read the claim

    A vision model reads the frame number with a confidence per character, extracts seller, date, amount and any serial from the receipt, and maps photos and description to the brand's defect catalog. It also repeats the safety check.

  4. 04 System · SuiteQL or a Business Central API page, Shopify Admin API

    Look up the unit and the sale

    The serial goes to the ERP for model, production date, component serials and the dealer it shipped to. Direct sales match through the ERP's shipment record, which carries the Shopify order number, because Shopify has no native serial field.

  5. 05 Plain code · Perceptual hashing, Cloud Vision web detection

    Test the evidence, then apply the terms

    Photos are hashed, compared with every earlier claim and searched on the web. Then rules compute three separate answers: the brand's warranty for this component on this date, the statutory position and who owes it, and whether the brand serves the country of sale.

  6. 06 Decision

    Where the claim goes next

    Code routes on the results. The model's confidence can send a claim to a person, never away from one.

    • Complete, covered, and a fault type in the catalog then a decision packet in the service queue, with a proposed outcome
    • Something is missing or unreadable then a precise request in the customer's language, sent automatically once that request type has earned it in draft mode
    • A reused or published photo, a serial the ERP does not know, or a market the brand does not serve then a person, with the evidence side by side
    • Outside the brand's warranty then a person, with the statutory position shown and a repair quote drafted
  7. 07 Person

    A service agent decides

    Repair, replacement, refund or a paid repair. The packet shows photos, serial record, receipt, rule results with their version, and a drafted reply to edit or approve.

  8. 08 Result · ERP, Sendcloud

    RMA and shipment, created once

    On approval, code creates the RMA in the ERP with the claim number as idempotency key, so a retry finds the existing RMA instead of opening a second. A part on backorder becomes a purchase order to chase, as in supplier expediting.

Claim 20417: a muddy frame number, a dealer receipt and a motor that cuts out

A Dutch customer, three photos and a receipt. All of this ran before anyone opened the ticket.

Freshdesk, ticket 20417, Tuesday 07:48

  1. Customer · Email, Dutch

    Goedemorgen, sinds vorige week valt de motor steeds uit als ik een helling op fiets, en het display geeft E21. Gekocht in april 2025 bij de dealer in Utrecht. Foto's en de bon zitten in de bijlage. Groet, Joost

  2. screen_safety(ticket: 20417)no fire, smoke, heat, swelling, crack, crash or injury terms / model check agrees
  3. read_serial(photo: "IMG_2231.jpg")WB24-O08813 / position 6 is O or 0, and the format allows only digits there / WB24-008813 / confidence 0.93
  4. erp_lookup_serial(serial: "WB24-008813")City 7 / produced 14 Nov 2024 / motor M-551902, battery B-771240, cell lot L2409, no open issue / shipped to dealer D-0412, Utrecht, 3 Mar 2025
  5. read_receipt(file: "bon.pdf")seller matched to dealer D-0412 by VAT number / sold 12 Apr 2025 / City 7 / EUR 2,899.00 / no serial printed
  6. check_photos(ticket: 20417)3 photos / no perceptual match in earlier claims / no full or partial matches on the web / no EXIF data
  7. apply_terms(model: "City 7", component: "motor", sold: "2025-04-12", country: "NL", seller: "dealer")brand warranty on motor: 2 years, runs to 12 Apr 2027 / statutory: owed by the dealer as seller, NL sets no fixed period / repair extension: not applicable, sold before 31 Jul 2026 / market served / rules v19
  8. classify_fault(ticket: 20417)catalog F-212, speed sensor signal loss / matches E21 in the service manual / confidence 0.81
  9. Packet posted: diagnosis and sensor replacement at dealer D-0412 under the motor warranty. Nothing to ask the customer.
  10. Reply, approved by Lena · Email, Dutch

    Hallo Joost, bedankt voor je foto's en de bon. Je City 7 valt nog onder onze garantie op de motor. Je dealer in Utrecht krijgt het onderdeel en neemt contact met je op voor een afspraak. De reparatie is kosteloos. Groet, Lena

  11. RMA 55120 created in Business Central, keyed on claim 20417; the sensor ships to the dealer under that number.
The model read the photo, the receipt and the fault. Coverage came from rules over the ERP record and the receipt date, the serial format settled O or 0, and Lena decided.

Batteries, fires and falls are safety cases before they are warranty claims

Some claims describe a hazard, and for those the warranty question can wait. The claim leaves the warranty queue, the named safety person is paged with the photos and production history, and the customer at once gets a message that person approved in advance: stop using and charging the battery, keep it away from anything flammable, expect a call today.

The EU General Product Safety Regulation requires manufacturers to notify accidents caused by their products through the Safety Business Gateway, without undue delay, to the authorities of the country where the accident happened. Whether a claim describes one is a judgement, so the workflow's job is getting it to the right person within minutes. For products outside the EU's harmonized rules, such as most furniture, the regulation also requires manufacturers to investigate safety complaints and keep an internal register of them, which flagged claims feed directly.

Batteries also change the RMA. A damaged or defective lithium-ion battery is dangerous goods in transport and cannot go in an ordinary parcel on a standard label, so battery claims never get an automatic one. After approval they become a swap at a dealer that takes old batteries back, or a collection by a carrier that handles damaged ones.

The statutory guarantee is owed by whoever sold the product: for dealer sales, the dealer. The rules compute it on every claim anyway, because the EU Sale of Goods Directive makes every commercial warranty statement say the buyer's legal remedies are unaffected, and 'your warranty has expired' on its own ignores them. As of September 2026:

GermanyTwo years from deliveryOne yearThe remedy chosen, for the EU's 12-month extension after a repair on sales from 31 July 2026, as German law applies it
FranceTwo years from deliveryTwo years for new goods, one for usedA further 12 months when the customer chose repair
NetherlandsNo fixed period: as long as the product can reasonably be expected to lastOne yearThe date the fault was first reported, because Dutch claims lapse two years after that notice
The brand's warranty is a separate rule set per component. Outside every guarantee the answer is still not a flat no: e-bikes, as goods with light-means-of-transport batteries, are on the Right to Repair Directive's list of products whose manufacturer must repair on request, as far as EU repairability rules reach, free or at a reasonable price, so the workflow drafts a quote.

Claims that break a naive intake pipeline

A frame number nobody can read

Mud, glare and angle defeat any model on some photos. The model returns a confidence per character, the serial format settles what it can, and the ERP confirms the rest. If two candidates exist, or none, the customer is asked for a new photo, with a picture of where the number sits on that model.

The same claim, twice

Customers write to the dealer and the brand, or open a second ticket when the first is slow. Claims are keyed on the serial, so a second claim for the same unit joins the first, and a unit already repaired this year goes to a person.

A photo that came from somewhere else

Perceptual hashes catch the same picture of a cracked frame sent for two bikes, even resized or cropped, and Cloud Vision's web detection returns full and partial matches with the pages they appear on. A match goes to a person as evidence, never as an automatic rejection, because honest customers send product photos to show which model they own. More on the document fraud page.

A dealer receipt, or no receipt at all

Receipts arrive in every layout and language, so extraction follows AI document extraction, and the seller is matched to the dealer list by VAT number or address, not by name. Without one, the ERP still knows when the unit shipped to that dealer, and the brand's terms decide whether that date, or the production date plus a set period, can stand in.

A claim from a country the brand does not sell in

Bikes move with their owners. The rules key on the country of sale, not the current address, so a claim from Belgium on a bike bought in Aachen gets the German rules and a person, not an out-of-market refusal.

Is a claim form and a returns app enough?

For a handful of claims a week, often yes. A Freshdesk or Zendesk form with required fields for serial, receipt and photos, plus macros for the usual outcomes, removes most of the back and forth. Returns apps such as Loop and ReturnGO handle the portal, labels and exchanges well, and ReturnGO sells a warranty module too. If your terms are one rule and every unit sells through your own store, start there rather than with a build.

A custom workflow earns its cost when eligibility depends on data those tools cannot see: serials, production dates and component lots in NetSuite or Business Central, dealer sales proven by photographed receipts, statutory rules that differ by country, and battery claims that need a safety path. It also wins when claims arrive as free-form email in three languages rather than through a form.

At the other end, enterprise warranty platforms such as Tavant's suit large manufacturers whose dealer networks file claims and whose suppliers are charged back at scale; for a desk of three that is a long implementation. The build I would do keeps the helpdesk as the workspace and the ERP as the record, and adds the reading and the rules between them, with a review screen built on human in the loop patterns and every extraction under a strict schema, as in structured outputs.

How you would know it is working

A blueprint has no results to report, so here is what I would measure from the first week instead, on your own data.

Time to a complete claim
Hours from the first message until serial, proof of purchase and photos are all present. Most of the waiting was here, so measure it before the build.
Requests per claim
How many times a customer is asked for something. One precise request should replace two or three vague ones.
Proposed outcome accepted
How often the agent's decision matches the packet's proposal, per defect type. Each disagreement is reviewed weekly and becomes a test case.
Serial read accuracy
Readings the ERP confirmed against those a person corrected, split by photo quality, which also shows where the form's photo guidance needs work.
Minutes from safety flag to a person
Every flag, true or false. False alarms are fine; a missed safety case is reviewed like an incident.

What a build like this costs

This is built as AI Workflow Automation, which runs $3.5K - $60K overall. A build like this one usually lands in the multi-step workflow tier: $15K - $30K, 3-5 weeks. The first working version runs on your real data well before the end of that window.

What it costs to run

A few vision and text model calls per claim, usually cents rather than euros, more when a customer sends ten photos. Reverse image search is billed per image. The rest is hosting and the helpdesk and ERP quotas you already pay for.

What moves the price

  • Where serial data lives, and whether the ERP exposes it through SuiteQL, an API page or only exports
  • Sales channels: direct only, or dealers and marketplaces whose receipts must be read and matched
  • How many countries and product lines, each with its own warranty terms per component
  • Whether approved claims book pickups and dangerous-goods shipments, or hand the job to dealers

Who this is for

  • E-bike, appliance and furniture brands with a small service desk handling claims from several EU countries
  • Manufacturers selling direct on Shopify and through dealers, where proof of purchase arrives as a photographed receipt
  • Brands whose warranty eligibility depends on serials, production dates or component lots in the ERP
  • Service teams whose first reply to most claims is still a request for a clearer photo

Questions people ask about this

Can AI process warranty claims automatically?

It can prepare them; it should not decide them. The workflow reads the serial from the photo and the date from the receipt, checks both against your ERP and terms, classifies the damage and asks for anything missing. A person approves repair, replacement or refund, because each commits money, and in the EU a careless 'your warranty has expired' can misstate legal rights.

How do I automate RMA creation from warranty claims?

Let code create the RMA from the approved claim, never from the model's proposal. After a person approves, the workflow writes the return authorization to NetSuite or Business Central with the serial, the fault code and the claim number as an idempotency key, then books the label or briefs the dealer. A retry finds the existing RMA instead of creating a second.

Can AI detect fake photos in warranty claims?

It catches the common kinds, and it should flag rather than reject. Perceptual hashing finds the same photo reused across claims even when resized or cropped, and a reverse image search finds pictures copied from the web. Missing camera metadata proves little, since email and messaging apps often strip it. Anything suspicious goes to a person with the matches side by side.

Does the EU two-year guarantee still apply if our own warranty has expired?

Often, yes, and the two must never be confused. The statutory guarantee under the EU Sale of Goods Directive is owed by the seller for at least two years from delivery, whatever the commercial warranty says, and some countries go further. The workflow computes both separately, so no reply tells a customer they have no rights because the brand's warranty lapsed.

What does a warranty claims workflow cost to build?

It usually lands in the multi-step workflow tier of my AI workflow automation pricing, moved by how your ERP exposes serial data, how many dealers' receipts must be read, how many countries and product lines carry their own terms, and whether approved claims trigger dangerous-goods shipping for batteries. Running costs are cents per claim.

Sources