A quality control checklist for each batch

Updated 2026-10-30

A quality problem found at the customer is harder to fix than one found at the bench. But a clipboard check gets skipped when the line is busy. I want a form so short that inspectors fill it in as each batch ends, and so specific that the result is a decision, not a feeling.

Use this when

  • You inspect batches or lots of a physical product, in a workshop, a kitchen or a small factory.
  • You want a pass, hold or reject decision recorded with the checks behind it.

Skip it when

  • You need to store instrument readings in a lab system. The form takes numbers and text, not equipment data.
  • You inspect a place, not a product. A safety inspection checklist fits that better.

What is asked, and why

Inspector, date and batch tie the record to a product. Units checked and units failed give a count. The tick lists show which checks passed and which defects appeared. The decision is the one answer a production lead needs, and the last box records what must change.

What the inspector's AI would ask

"Which batch are you checking?" Then "How many units did you check?" Then "How many failed?" It shows the answers and sends them only after a yes. See agent-fillable forms.

Where it fits

Many teams call this a QC form. A kitchen can pair it with a restaurant opening checklist for the start of the day. More tools are in IT and operations forms.

Questions

How do I get a failure rate per product?

Download the CSV and divide `units_failed` by `units_checked` for each row. Group rows by `product_or_batch` to see which product fails most often.

Can I change the list of checks?

Yes. The options are yours to rewrite for your product before you publish. Keep each option short, so it reads well on a phone.

What if a batch needs a recheck?

Send a second entry for the same batch with the new decision. Sort the CSV by `product_or_batch` to see the first check and the recheck side by side.

Try the form

Live demo ยท nothing is saved

Quality check entry

Fill in one entry for each batch or lot you inspect.

Checks that passed
Defects you found
Decision for this batch (required)
Overall finish quality

1 is poor, 5 is excellent.

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Quality check entry",
  "description": "Fill in one entry for each batch or lot you inspect.",
  "fields": [
    {
      "id": "inspector_name",
      "label": "Inspector name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "inspection_date",
      "label": "Date of inspection",
      "type": "date",
      "required": true
    },
    {
      "id": "product_or_batch",
      "label": "Product, batch or lot",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "line_or_station",
      "label": "Line or station",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "units_checked",
      "label": "Units checked",
      "type": "number",
      "required": true,
      "min": 1
    },
    {
      "id": "units_failed",
      "label": "Units that failed",
      "type": "number",
      "required": true,
      "min": 0
    },
    {
      "id": "checks_passed",
      "label": "Checks that passed",
      "type": "multi_choice",
      "options": [
        "Dimensions",
        "Colour or finish",
        "Labels and packaging",
        "Function test",
        "Weight",
        "Cleanliness",
        "Seals closed"
      ]
    },
    {
      "id": "defects_found",
      "label": "Defects you found",
      "type": "multi_choice",
      "options": [
        "Scratch or dent",
        "Wrong size",
        "Missing part",
        "Loose or leaking",
        "Print error",
        "Contamination",
        "Other"
      ]
    },
    {
      "id": "batch_decision",
      "label": "Decision for this batch",
      "type": "single_choice",
      "required": true,
      "options": [
        "Pass",
        "Pass with notes",
        "Hold for review",
        "Reject"
      ]
    },
    {
      "id": "finish_rating",
      "label": "Overall finish quality",
      "type": "rating",
      "help": "1 is poor, 5 is excellent.",
      "min": 1,
      "max": 5
    },
    {
      "id": "corrective_action",
      "label": "What should change?",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "evidence_link",
      "label": "Link to a photo of a defect",
      "type": "url"
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Quality check entry","description":"Fill in one entry for each batch or lot you inspect.","fields":[{"id":"inspector_name","label":"Inspector name","type":"short_text","required":true,"max_length":150},{"id":"inspection_date","label":"Date of inspection","type":"date","required":true},{"id":"product_or_batch","label":"Product, batch or lot","type":"short_text","required":true,"max_length":200},{"id":"line_or_station","label":"Line or station","type":"short_text","max_length":100},{"id":"units_checked","label":"Units checked","type":"number","required":true,"min":1},{"id":"units_failed","label":"Units that failed","type":"number","required":true,"min":0},{"id":"checks_passed","label":"Checks that passed","type":"multi_choice","options":["Dimensions","Colour or finish","Labels and packaging","Function test","Weight","Cleanliness","Seals closed"]},{"id":"defects_found","label":"Defects you found","type":"multi_choice","options":["Scratch or dent","Wrong size","Missing part","Loose or leaking","Print error","Contamination","Other"]},{"id":"batch_decision","label":"Decision for this batch","type":"single_choice","required":true,"options":["Pass","Pass with notes","Hold for review","Reject"]},{"id":"finish_rating","label":"Overall finish quality","type":"rating","help":"1 is poor, 5 is excellent.","min":1,"max":5},{"id":"corrective_action","label":"What should change?","type":"long_text","max_length":1000},{"id":"evidence_link","label":"Link to a photo of a defect","type":"url"}]}'

JSON definition

json
{
  "title": "Quality check entry",
  "description": "Fill in one entry for each batch or lot you inspect.",
  "fields": [
    {
      "id": "inspector_name",
      "label": "Inspector name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "inspection_date",
      "label": "Date of inspection",
      "type": "date",
      "required": true
    },
    {
      "id": "product_or_batch",
      "label": "Product, batch or lot",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "line_or_station",
      "label": "Line or station",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "units_checked",
      "label": "Units checked",
      "type": "number",
      "required": true,
      "min": 1
    },
    {
      "id": "units_failed",
      "label": "Units that failed",
      "type": "number",
      "required": true,
      "min": 0
    },
    {
      "id": "checks_passed",
      "label": "Checks that passed",
      "type": "multi_choice",
      "options": [
        "Dimensions",
        "Colour or finish",
        "Labels and packaging",
        "Function test",
        "Weight",
        "Cleanliness",
        "Seals closed"
      ]
    },
    {
      "id": "defects_found",
      "label": "Defects you found",
      "type": "multi_choice",
      "options": [
        "Scratch or dent",
        "Wrong size",
        "Missing part",
        "Loose or leaking",
        "Print error",
        "Contamination",
        "Other"
      ]
    },
    {
      "id": "batch_decision",
      "label": "Decision for this batch",
      "type": "single_choice",
      "required": true,
      "options": [
        "Pass",
        "Pass with notes",
        "Hold for review",
        "Reject"
      ]
    },
    {
      "id": "finish_rating",
      "label": "Overall finish quality",
      "type": "rating",
      "help": "1 is poor, 5 is excellent.",
      "min": 1,
      "max": 5
    },
    {
      "id": "corrective_action",
      "label": "What should change?",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "evidence_link",
      "label": "Link to a photo of a defect",
      "type": "url"
    }
  ]
}