Daily FDA food recall alerts for your grocery or restaurant chain

Every weekday at 6am ET, cross-check overnight FDA food recalls against your product catalog and alert the right buyer in Slack before stores open.

Agentic Task
openFDAGoogle SheetsSlack BotOperationsNotifications & AlertsResearch & Monitoring
PromptCreate

Build me an agent workflow that keeps my grocery or restaurant chain ahead of FDA food recalls. It should run on a cron trigger every weekday at 6am America/New_York, before stores open.

Step 1. Pull my active product catalog from Google Sheets using the Get Values operation. The sheet has one row per SKU with these columns: SKU, product name, brand, supplier firm (manufacturer), category, and the responsible buyer's Slack handle or user ID. Read the whole active range and hold it in memory for the run.

Step 2. Query openFDA using the Search Food Recall Enforcement Reports operation for recalls where report_date or recall_initiation_date falls in the last 24 to 48 hours, across all classifications (Class I, II, and III). Do not pre-filter by brand at the API layer. Pull the full recall records so you have recall class, reason for recall, product description, recalling firm, distribution pattern (states), status, and any lot codes or UPCs.

Step 3. For each recall returned, use judgment to decide if it hits my catalog. Match on brand name, product description, and manufacturer or firm name. This is the reason we are using an agent and not exact string matching: I want you to catch partial hits, alternate spellings, parent-company recalls that affect a sub-brand, and ingredient-level recalls (e.g. a recalled peanut butter used in one of my private-label cookies). When the fit is ambiguous, err on the side of alerting, and say in the alert why you think it matches.

Step 4. For every match, use the Slack Bot Send a Message operation to post one well-formatted alert to the #food-safety channel. Include recall class (I / II / III), the reason for the recall in plain English, the distribution states, affected lot codes or UPCs, the recalling firm, and the specific in-stock SKUs from my catalog that need to be pulled from shelves. Then DM the responsible buyer for each matched SKU with just their affected items and clear next-step instructions (pull from shelves, quarantine, contact supplier). Group by buyer so a buyer with three matched SKUs gets one DM, not three.

If no recalls match, post a short 'no relevant food recalls in the last 24 hours, check ran clean' message to #food-safety so the team knows the workflow fired and everything is quiet. Do not DM buyers on all-clear days.

Bake in dedup. Keep a record of recall IDs the workflow has already alerted on (a small state store or a scratch tab on the same Google Sheet is fine) and skip any recall whose ID has already been posted. Multi-day recalls should only ping the channel the first morning they surface.

Formatting notes: keep alerts scannable with a header line, a class badge, a one-line reason, then a bulleted list of affected SKUs. Use Slack mrkdwn. Do not fabricate lot codes or SKUs; if the recall record does not include a lot code, say 'no lot codes published'.

Additional information

What does this prompt do?
  • Pulls your live product catalog from Google Sheets each morning so alerts reflect what you actually stock today.
  • Checks the FDA for food recalls posted in the last 24 to 48 hours, across every recall class.
  • Uses judgment to match recalls to your catalog by brand, product description, and supplier, catching partial matches and ingredient-level recalls that exact SKU lookups miss.
  • Posts one clean alert per matched recall in your food safety channel with class, reason, distribution states, and the exact SKUs to pull, and DMs the responsible buyer with just their items.
  • Sends an all-clear message on quiet days so the team knows the check ran, and remembers past alerts so multi-day recalls do not re-notify every morning.
What do I need to use this?
  • A Google Sheet listing every product you stock with columns for SKU, product name, brand, supplier, category, and the responsible buyer's Slack handle.
  • A Slack workspace with a bot installed in your food safety channel, and permission to DM buyers.
  • That's it. FDA food recall data is public, so no FDA account is required.
How can I customize it?
  • Change the fire time or move it to seven days a week if you operate on weekends.
  • Filter by recall class if you only want Class I life-threatening recalls to page the team, and route lower classes to a quieter channel.
  • Add a state or region column to your catalog so alerts flag whether the recall's distribution overlaps with the stores you actually operate.

Frequently asked questions

Do I need an FDA account or API key?
No. FDA recall data is a free public dataset, so the workflow can pull it without any login. If you already have an FDA key for higher rate limits you can plug it in, but it is optional.
What if the recall does not name my exact SKU?
That is the whole point of using an agent here. It compares brand names, product descriptions, and supplier firms with judgment, so ingredient-level recalls and alternate spellings still surface. You can tighten or loosen the match instructions to fit how conservative you want the alerts to be.
Will I get spammed every morning about the same recall?
No. The workflow remembers which recalls it has already alerted on, so a multi-day recall only pings the team the first morning it is detected.
What happens on a day with no recalls?
It posts a short all-clear message in your food safety channel so the team knows the check ran and there is nothing to act on.
Can I use this for a restaurant chain instead of a grocery store?
Yes. The same pattern works for any operation that stocks or serves food. List your ingredients, brands, and suppliers in the sheet, and the responsible manager gets the DM instead of the buyer.

Catch food recalls before your first customer walks in.

Connect Google Sheets and Slack once, and Geni runs this every weekday at 6am ET.