07 · Packs
Paid Pack

Lot recalls

Run an FSSAI lot recall — initiate on a source-milk lot code, notify affected customers across many SKU batches, track recovery and in-field disposal, and file the FSSAI report.

5 min read · updated 28/05/2026

Paid Pack · locked

This article is part of the Dairy PackDairy Pack

You can read the guide. The actions it describes unlock when an owner adds this Pack in Billing & entitlements.

Overview

When a source-milk lot goes bad, you have hours — not days — to pull it back from every customer who got it. The problem is that one bad lot spreads across many SKU batches and many customers, and tracing it by hand means digging through dispatch registers while spoilage sits on shelves. Lot recalls let you start the recall on the FSSAI lot code printed on the carton, see every affected batch and customer at once, track what comes back versus what gets destroyed in the field, and file the FSSAI report — all in one place.

Paid Pack · locked

This article is part of the Dairy PackDairy Pack

You can read the guide. The actions it describes unlock when an owner adds this Pack in Billing & entitlements.

This is part of the Dairy Pack. Your Owner turns it on by installing the Dairy Pack; the recall screens, KPIs and FSSAI report filing all light up once it is enabled on your tenant.

Where to find it

On the web admin, open Dairy → Recalls at /dairy/recalls. Only the Owner sees the Dairy section in the sidebar. There is no mobile screen for recalls — run them from the desktop admin where the customer list and disposal log are easy to read side by side.

The screen opens on a list of recall events with three KPI tiles across the top — Active recalls, Customers pending, and Recovery %. Click any row to open the detail panel on the right.

Key concepts

  • FSSAI lot code — the regulator-facing identifier printed on the carton. A dairy recall is keyed on this, not on a single batch. The system resolves the affected SKU batches from the lot-code link, so one source-milk lot recall typically spans many batches at once.
  • Affected batches — the list of SKU batches the recalled lot ended up in. You see the count on the list row and the full list inside the detail panel.
  • Customer notification — one row per customer who received any quantity of any affected batch. These appear when you move the recall to Notifying. Each tracks how much was recovered to your warehouse, how much was disposed of in the field, and which channel you reached them on.
  • In-field disposal — stock the customer destroys on their side instead of returning it to you. It still counts toward closing the recall.
  • Recall state — every recall moves through four states: Initiated → Notifying → Partial → Completed. Partial is set automatically the moment you record any recovery with a quantity above zero — there is no button for it.

Common workflows

1
Start the recall
Hit Initiate recall. Enter the FSSAI lot code, a reason (at least 8 characters — e.g. "Spoilage signal on consumer complaint, dated 23/05/2026"), and the source-milk lot ID if you have it. The system resolves the affected batches from the lot code.
2
Notify the customers
Open the recall, then Move to notifying. This builds one notification row per affected customer in the Customers tab. The recall moves to the Notifying state.
3
Record what comes back
In the Customers tab, hit Record recovery on a customer. Enter how much came back to your warehouse and how much was destroyed in the field, pick the channel you reached them on (WhatsApp, SMS, phone, in person…), and save. The recall flips to Partial automatically.
4
File the FSSAI report
Hit File FSSAI report and record the report path or URL. This flips the recall's FSSAI-report flag and is required before you can close.
5
Close the recall
Once the report is filed and recovery is logged, hit Mark completed and write closure notes (at least 4 characters). The recall stores the close time, your notes, and recovered-vs-total quantity for the audit trail.

Role notes

Recalls are an Owner-only screen. Only the Owner sees the Dairy section and holds the Dairy recall permissions, which cover viewing recalls and notifications (pack.dairy.recall.read) and the full write lifecycle — initiate, notify, record recovery, file report, complete (pack.dairy.recall.write).

Pack permissions bind on install

Dairy permissions are not part of the Owner's normal all-access bundle — they only attach to the Owner once the Dairy Pack is installed on your tenant. No Pack, no recall screen, even for the Owner.

Other roles (Manager, Accountant, Sales, Warehouse, Delivery, Operator) do not get the Dairy recall screen at all in this release.

Tips & time-savers

Tip

You don't have to chase each customer separately. When you move a recall to Notifying, Neev builds the full customer list for you from who received the affected batches — so you only record recoveries, you never build the list by hand. Recording the WhatsApp message ID in the Reference field keeps your proof of notice in one place for the inspector.

The Customers tab header shows a live count, and the Recovery % KPI updates as you log returns — so you always know how close you are to closing without opening every customer row.

Gotchas

Warning

You can't close a recall until the FSSAI report is filed. Mark completed will be blocked until the report flag is set — file the report first, then close. Closure notes are also mandatory and become part of the permanent audit trail, so write them properly.

There is no manual "Partial" button — that state is set for you the instant a recovery with a quantity above zero is recorded. And the affected-batch list comes from the lot-code link: if the lot code doesn't resolve, you'll see "no batches resolved" in the panel, which means the lot wasn't tied to dispatched batches.

Related