Daily FDA drug recall watcher for your pharmacy

Every weekday at 8am ET, check the FDA for new recalls affecting drugs you stock, and ping the responsible buyer in Slack.

Deterministic Code
openFDAAirtableSlackOperationsNotifications & AlertsResearch & Monitoring
PromptCreate

Build me a daily drug recall watcher for our pharmacy as a code workflow.

Trigger: cron. Run every weekday (Monday through Friday) at 8:00am America/New_York.

Step 1. Read our watchlist from Airtable using the List Records operation. The base has one row per drug we stock, with columns for brand name, generic name, NDC, and the responsible buyer's Slack handle (or user ID). Page through all records.

Step 2. For each watchlist row, call openFDA's Search Drug Recall Enforcement Reports operation. Filter to records where recall_initiation_date is within the last 24 hours and where openfda.brand_name or openfda.generic_name matches the row's brand or generic name. Treat a 404 from openFDA as "no matches" rather than as a fatal error, because openFDA returns 404 when zero records match.

Step 3. For every match, post a message in our #pharmacy-recalls Slack channel using Slack's Send a Message operation. Include the recall class (Class I, II, or III), reason for recall, recall status, recalling firm, affected lot numbers and distribution pattern, and a link back to the openFDA enforcement report. Tag the buyer from the watchlist row so they are notified directly.

Step 4. If no rows produced any matches, exit silently without posting anything. We do not want a "nothing to report" message on quiet days.

Use openfda, airtable, and slack as the integrations. openFDA is a public no-auth API, so no credential setup is needed for it.

What does this prompt do?

  • Reads your pharmacy's drug watchlist from an Airtable base, one row per stocked product, with brand name, generic name, NDC, and the buyer who owns it.
  • Checks the FDA's recall enforcement database every weekday morning for new drug recalls filed in the last 24 hours.
  • Posts a Slack message in your recalls channel for every match, with the recall class, reason, status, recalling firm, affected lots, and a link back to the FDA report.
  • Tags the buyer who owns the affected product so the right person sees it first.
  • Stays silent on quiet days so the channel only lights up when there is something real to act on.

What do I need to use this?

  • An Airtable base with one row per drug you stock. Each row should have brand name, generic name, NDC, and the Slack handle of the buyer who owns the product.
  • A Slack workspace with a channel for pharmacy recall alerts (for example, #pharmacy-recalls).
  • No FDA account needed. The FDA's recall data is public.

How can I customize it?

  • Change the schedule. The default is weekdays at 8am ET, but you can run it twice a day, hourly, or only on weekends.
  • Swap the Slack channel or route alerts to a DM to the buyer instead of a public channel.
  • Adjust the match window. The default looks at the last 24 hours of recall filings, but you can widen it for a Monday catch-up or narrow it for an hourly run.
  • Filter by recall class. For example, only alert on Class I (most serious) recalls and skip Class II and III.

FAQs

Do I need an FDA account or API key?
No. The FDA's recall data is fully public. The workflow reads it directly with no login required.
What happens on days with no recalls?
Nothing. The workflow exits silently so your Slack channel only gets pinged when there is an actual recall to review.
How do I add or remove drugs from the watchlist?
Edit the Airtable base. Add a row for each product you stock, or delete a row to stop watching it. The workflow picks up changes on the next run.
Can I tag a buyer instead of posting to a shared channel?
Yes. You can change the destination so each alert is sent as a direct message to the buyer who owns the affected drug, instead of posting in a shared channel.
What if a recall matches a drug we no longer stock?
Remove that row from the Airtable watchlist. The workflow only alerts on drugs that are present in the base, so cleanup is as simple as deleting a row.

Related templates

Partner tier review board for quarterly promotion calls

Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.

Introw
HubSpot
Slack
App
Reconcile partner commissions between HubSpot and Introw

Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.

Introw
HubSpot
Slack
App
One control room for every Instantly sending mailbox

See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.

Instantly
Slack
App
Partner payout approval queue with Xero bill handoff

Review Introw partner payouts line by line, approve them from one board, raise the matching bill in Xero, and post every approval to Slack.

Introw
Xero
Slack
App
Run your nutrition clients' weekly meal plans from one console

See who is due, build a week of dinners on demand, swap anything you do not like, then send the recipe and grocery links yourself.

Instacart
Airtable
Gmail
App
Instagram UGC rights tracker and repost approval board

See every customer photo that tags your brand, ask for permission in one click, and repost only once a yes is on the record.

Instagram
Airtable
Slack Bot
App

Stop scanning FDA bulletins by hand.

Connect Airtable and Slack once, and Geni checks the FDA for fresh recalls against your watchlist every weekday morning.