Business case and benefits
- Operations director
- A · Accountable
- Responsible Person
- C · Consulted
- Solutions architect
- C · Consulted
- Technical PM
- R · Responsible
- Engineers
- I · Informed
- Warehouse & customer services
- C · Consulted
- Security
- I · Informed
Every recall read within minutes, affected batches found in stock and dispatch history, the right customers told, and completion evidenced. The Responsible Person confirms every quarantine and approves every customer notice.
At a glance
An illustrative scenario. Linked to a real, anonymised case study below; the numbers here are still typical examples. The cloud services and UK rules were checked on 9 November 2026.
Recalls reach a wholesaler from several directions: MHRA recall and notification emails, National Patient Safety Alerts for the most serious (Class 1) cases, letters and emails from manufacturers for company-led recalls, and separate cascades in Scotland, Wales and Northern Ireland. Each one names a product, batch numbers, expiry dates, the date of first distribution, and the level the recall goes to: wholesaler, pharmacy or patient.
In a typical wholesaler, the Responsible Person's team reads each notice, searches the warehouse system for the batches, pulls dispatch history from the ERP, exports a customer list, then emails or phones each customer, chases returns and reconciles quantities in a spreadsheet. Batch numbers are retyped from PDFs, and one wrong character means a batch is missed. The MHRA avoids issuing anything other than Class 1 notices on Fridays, so a notice that lands late on a Friday is likely to be serious, and is often the hardest to staff.
The rules are clear. Under the Human Medicines Regulations 2012 (regulation 43(7)), a wholesale dealer must keep an emergency plan for recalls and the records that make recall possible. The MHRA's guide to defective medicinal products, updated in February 2026, says wholesalers must inform every customer who may have received an affected batch. Inspectors look at the records afterwards, and the manufacturer needs the wholesaler's figures for its final recall report.
Agree these, and measure the baseline, before anything is built. Example targets are typical, not promises.
Time from a notice arriving to matched stock being blocked in the warehouse.
ExampleFrom hours to under 30 minutes
Time from a notice arriving to every affected customer being sent an approved notice.
ExampleSame working day; Class 1 straight away, including out of hours
Affected batches found later that the process should have caught.
ExampleZero, tested by replaying past recalls
Quantity supplied against quantity returned, destroyed or otherwise accounted for.
ExampleFully reconciled or explained, for every recall
The share of notified customers who confirmed action, and how quickly.
ExampleOver 95% within the agreed time
Speed and completeness of each test recall, including a test with the AI switched off.
ExampleEvery test passes
Cross-sector rules are on the UK regulation map.
The licence holder must keep an emergency plan for recalls and the sale and supply records that support it. Batch-level dispatch history is searchable in seconds, and the emergency plan says how the AI helps and exactly what happens when it's unavailable.
Recalls are a quality process the Responsible Person owns. The AI reads, matches, drafts and chases; the Responsible Person or a trained delegate confirms quarantine and approves notices, and only quality can release held stock. Recall arrangements are tested with regular mock recalls. Controlled drugs follow the existing Home Office-licensed procedures and records.
Wholesalers must tell every customer who may have received an affected batch, and not every recall comes with an MHRA notice: some are led by the manufacturer. The intake handles both, and the evidence pack supports the manufacturer's final report, which the DMRC needs before it closes the case.
Class 1 recalls (risk of death or disability) are issued as National Patient Safety Alerts; Class 2 and 3 as medicines recalls; Class 4 as caution-in-use notifications. The class sets the priority, and Class 1 pages a named on-call person immediately.
Since 1 January 2025, one UK-wide licence and 'UK Only' packs cover Northern Ireland, so batch matching works the same across the UK. Cascades still differ: Scotland, Wales and Northern Ireland have their own routes, so the intake watches each one that applies to your customers.
Customer records name pharmacists and contacts. Patient-level follow-up is the pharmacy's job, so the wholesaler needs no patient data. A short DPIA, UK regions, and a contract that stops providers training their models on your data.
Showing AWSAzuresovereign / on-prem services. Switch with the toggle; every diagram and table on this page follows it.
01Sources
02Intake
03Intelligence
04Orchestration
05Systems of record
06People
| Layer | AWS | Azure | Sovereign / on-prem |
|---|---|---|---|
| Intake: mailbox, alerts, lettersSubscribe a shared, monitored mailbox, never one person's inbox, and check the MHRA alerts page as a backstop in case an email goes astray. | Amazon SES, S3, scheduled AWS Lambda | Logic Apps connectors, Blob Storage, Azure Functions | Your own mail server, scheduled jobs on Kubernetes, Ceph or IONOS S3 Object Storage |
| Reading noticesBatch numbers are compared character by character with the source and shown side by side for a person to confirm. | Amazon Textract, with Amazon Bedrock to structure the result | Azure Content Understanding (includes Document Intelligence), with Microsoft Foundry | Open-source parsing (e.g. Docling) plus an open-weight vision model |
| Reasoning and draftingBoth clouds offer a choice of models, including Claude and others. | Amazon Bedrock | Microsoft Foundry | Open-weight models served with vLLM on your own GPUs, or IONOS AI Model Hub |
| Agent runtimeThe original Bedrock Agents closed to new customers on 30 July 2026; new builds use AgentCore. | Amazon Bedrock AgentCore | Foundry Agent Service | An open-source agent framework (e.g. LangGraph) on Kubernetes |
| Batch matchingDeliberately exact matching, not AI. Near-misses are only suggested, for a person to check. | Queries on read replicas of the ERP and warehouse data, run by AWS Lambda | Queries on read replicas, run by Azure Functions | Queries on read replicas, run as services on Kubernetes on-prem (e.g. OpenShift, Rancher) |
| Workflow and timersTimers chase customers who haven't replied, and escalate if any step stalls. | AWS Step Functions | Logic Apps or Durable Functions | Temporal, or n8n |
| Customer noticesUse the channels customers already read, and keep the phone for Class 1. | Amazon SES, the ordering portal and delivery notes | Azure Communication Services email, the ordering portal and delivery notes | Your own mail server, the ordering portal and delivery notes |
| Middleware and events | Amazon EventBridge, SQS | Event Grid, Service Bus | Apache Kafka or RabbitMQ |
| Link to warehouse and ERPHolds use the warehouse system's own block status, the same one a person would set. | API Gateway, plus your existing integration platform | API Management, plus your existing integration platform | Kong, or your existing API gateway, plus your existing integration platform |
| Evidence storeRecords can't be edited after the event, which is what an inspector wants to see. | Amazon S3 with Object Lock | Blob Storage with immutability policies | Ceph with S3 Object Lock |
| Guardrails | Bedrock Guardrails | Foundry guardrails (Azure AI Content Safety) | Open-source guardrails (e.g. NeMo Guardrails, Llama Guard) |
| Identity, keys, data protection | IAM Identity Center, KMS | Entra ID, Key Vault, Purview | Keycloak or your existing Active Directory; OpenBao or HashiCorp Vault; an HSM |
| Monitoring and auditAlert a person if any notice hasn't been processed within 15 minutes of arriving. | CloudWatch, CloudTrail | Azure Monitor, Log Analytics | Prometheus, Grafana, OpenTelemetry |
| UK data residency | eu-west-2 (London) | UK South / UK West | Your own UK data centre, or a UK/EU provider (IONOS AI Model Hub runs in Germany) |
On a phone, the table shows the platform you pick. Sovereign / on-prem means open, portable components you can run in your own data centre or with a UK or European provider; IONOS is shown as one example, and others exist. What sovereign cloud means →
Many organisations keep core systems and sensitive data on their own servers. This is how the same design works across both.
Stays on-prem
The warehouse system, ERP and quality management system, with every batch and dispatch record, stay in your data centre. Batch matching and the hold run on-prem too, next to the data, so the step that protects patients never depends on a wide-area link.
Uses cloud AI
Reading notices and drafting customer letters use cloud models. Recall notices are public documents, so what leaves your network is mostly the notice itself; customer names and quantities are merged into the drafts on-prem.
How they connect
AWS Direct Connect or Azure ExpressRoute links the cloud to your data centre. The agent reaches the on-prem matching and hold services only through your API gateway, with its own identity and narrow permissions. AWS Outposts, or Azure Local with Azure Arc, can bring the cloud services onto your own hardware if you prefer.
If the link drops
The manual emergency plan applies, and on-prem monitoring raises an alert as soon as notices stop being processed. The shared mailbox still receives everything; when the link returns, queued notices are processed in order and checked against what the team handled by hand.
What each agent may do through its tools, what it may not, and where a person signs off. The limits are enforced by the platform, not the prompt.
Recall agent
Where a person signs offThe Responsible Person or a trained delegate confirms the extracted details and the quarantine, approves the notice and the customer list, and signs off completion. Only quality can release held stock. The hold is the one action the agent takes on its own: holding a batch for a few minutes by mistake costs little, and missing one could harm a patient. Permissions are enforced by the platform's identity and policy controls, not by instructions in a prompt.
The warehouse system and ERP are reached only through an API layer. Batch searches run against read replicas, so a large recall query never slows down picking. The hold is set through the warehouse system's own API, so it behaves exactly like a hold a person sets.
Each notice becomes a message on a queue, and every step is logged against it. The same recall often arrives twice, from the MHRA and from the manufacturer, so notices are matched on product, batches and reference and handled as one recall. A retry never sends a customer a second notice.
The AI speeds the recall up; it is never the only route. If it's down, the manual emergency plan runs exactly as it does today, and the intake raises an alert if any notice sits unprocessed.
None of this works without batch numbers captured at goods-in and at dispatch. If the warehouse only records batches on receipt, fixing that comes first. No AI can recover data that was never captured.
Map today's recall procedure, time last year's recalls step by step, and check batch capture at goods-in and dispatch.
Gate · must be true to passBaseline agreed, batch traceability confirmed, Responsible Person and quality involved, and DPIA screening done.
Shadow mode: every new notice is handled by the AI and by the team in parallel, and last year's recalls are replayed.
Gate · must be true to passZero missed batches in the replay, every extraction error caught by review, and the Responsible Person signs off the updated procedure.
Holds and drafted notices go live, with monitoring, the manual fallback, and a mock recall before go-live.
Gate · must be true to passMock recall passed, out-of-hours route tested, delegates trained.
Reuse the pattern for returns, complaints and suspected falsified medicines, and for field safety notices on any medical devices you distribute.
Gate · must be true to passEach new use passes the same pilot gate.
| Activity | Operations director | Responsible Person | Solutions architectI can fill this | Technical PMI can fill this | EngineersI can fill this | Warehouse & customer services | SecurityI can fill this |
|---|---|---|---|---|---|---|---|
| Business case and benefits | Accountable | Consulted | Consulted | Responsible | Informed | Consulted | Informed |
| Updated recall procedure | Informed | Accountable and Responsible | Consulted | Consulted | Informed | Consulted | Informed |
| Target architecture | Informed | Consulted | Accountable and Responsible | Consulted | Consulted | Informed | Consulted |
| Build and integration with warehouse and ERP | Informed | Consulted | Accountable | Responsible | Responsible | Consulted | Consulted |
| Replay of last year's recalls | Informed | Accountable | Responsible | Consulted | Responsible | Consulted | Informed |
| Mock recall before go-live | Informed | Accountable | Consulted | Responsible | Responsible | Responsible | Informed |
| Go-live decision | Accountable | Responsible | Consulted | Responsible | Informed | Consulted | Consulted |
| Run, monitor and improve | Informed | Accountable | Consulted | Consulted | Responsible | Responsible | Consulted |
R ResponsibleA AccountableC ConsultedI Informed· not involved
Option A
If there's no architect on the programme, I'd own the design end to end: the intake, the batch matching, the integration with your warehouse system and ERP, and the evidence trail. I'd build it around your recall procedure and your Responsible Person, not the other way round, and report to your programme board.
Option B
If your partner or your own team already has an architect, I'd take on the document reading, the agent and the warehouse integration under their lead, and give them a second senior opinion on the rest, especially the fallback when systems are down. They stay in charge of the design.
Goes wrong
A batch number is misread from a PDF, so the wrong stock is held and the affected stock ships.
How the design avoids it
Exact matching against the source text, a side-by-side check by a person, and a hold on near-misses until someone has looked.
Goes wrong
The warehouse records batches at goods-in but not at dispatch, so nobody can say which customer got which batch.
How the design avoids it
Check batch traceability in discovery and fix it first. The AI can only match what was recorded.
Goes wrong
A notice lands in one person's inbox on a Friday evening and waits until Monday.
How the design avoids it
A shared, monitored mailbox, a backstop check of the MHRA alerts page, and an on-call page for Class 1.
Goes wrong
The team trusts the system and forgets how to run a recall by hand.
How the design avoids it
The manual procedure stays in the recall procedure, and mock recalls include a test with the AI switched off.
Goes wrong
The same recall arrives from the MHRA and the manufacturer, and customers get two different notices.
How the design avoids it
One recall record per product and batch set, matched across sources, with one approved notice.
Changes already announced or under way that affect this design. More in the UK horizon scan.
Great Britain has had no working verification system since the start of 2021, and 2D barcodes are no longer compulsory. The government has committed to consult on a future scheme, and the Royal Pharmaceutical Society called for mandatory 2D barcodes in February 2026. Scan batch and expiry wherever packs carry a code, and design the data model so serial numbers can be added later.
Hub-and-spoke dispensing between different businesses has been allowed since 1 October 2025, and DHSC has consulted on giving hubs the same reporting duties as wholesalers. That adds a step between the wholesaler and the patient. Make sure dispatch records show exactly which site each delivery went to.
Since February 2026, licence holders report suspected defects to the MHRA's Defective Medicines Report Centre through an online form. Notices to wholesalers still arrive as emails and documents. Keep the intake modular, so a structured feed could replace email reading without a redesign.
Good answers are specific. Vague answers to any of these are worth following up.
Whether you need someone to lead the design or to support the architect you already have, let's talk it through.