PillPilot journal

Why we run on top of your pharmacy system

Why PillPilot uses the pharmacy system like a technician instead of requiring a separate integration.

Architecture layersSame screens, explicit guardrails
  1. 01

    Read the existing PMS

    Use visual and accessibility signals already on screen.

  2. 02

    Take the same action

    Work through the fields and controls the team already uses.

  3. 03

    Confirm the result

    Check the screen after each meaningful action.

  4. 04

    Stop when uncertain

    Leave unreadable or ambiguous work for a person.

  5. 05

    Record the outcome

    Keep the write and handoff attributable.

The article explains both the flexibility and the honest maintenance tradeoff.

TL;DR: PillPilot's agents don't integrate with your pharmacy management system: they use it, the way a technician does, through a vision and accessibility layer that reads the screen and works the same Data Entry fields. E-prescribing into a pharmacy is standardized; writing into a PMS is not. That gap is why integrations take months and why we chose a different architecture.

Every pharmacy owner who has looked at automation has heard the same first question from a vendor: which system do you run? The answer gets either a confident yes or a "we're working on that one." That question tells you almost everything about how a product is built and how long it will take to get live.

We built PillPilot to make the question irrelevant. Our agents don't integrate with your pharmacy management system. They use it by reading the screen and filling the same Data Entry fields your technicians do, through a vision and accessibility layer that sits on top of whatever you already run.

Why do pharmacy system integrations take so long?

Pharmacy system integrations take months because every PMS has a different data model, interface, and vendor approval process. PioneerRx, PrimeRx, BestRx, EnterpriseRx, QS/1, and ComputerRx each have their own screens and their own way of representing a SIG or a claim. Our team has shipped pharmacy software on the vendor side, including at the company behind one of these systems, and our experience there was consistent: a real integration to a single PMS is months of engineering, and that's before the vendor's approval process, which gates the API access you'd need in the first place. Building and maintaining integrations to all of them, as each ships updates, is a permanent tax.

That tax gets passed to the pharmacy. It's why "supported systems" lists are short, why the go-lives we watched from the inside routinely ran a quarter or two, and why "which system do you run?" so often gets a wince.

Is e-prescribing standardized inside the pharmacy system?

No. E-prescribing is standardized on the way into the pharmacy, but not inside the PMS. Prescriptions arrive as NCPDP SCRIPT messages, mostly over the Surescripts network, which carried 30.5 billion transactions in 2025. Federal policy enforces it: CMS requires SCRIPT for Medicare Part D e-prescribing, and ONC's health IT certification criterion (§ 170.315(b)(3)) requires SCRIPT version 2023011 by the end of 2027. That's why, per ONC, 92% of prescribers e-prescribe, up from 7% in 2008.

But SCRIPT stops at the pharmacy's front door. It standardizes the message between prescriber and pharmacy: NewRx, RxRenewal, CancelRx. It says nothing about what happens inside the PMS: how the fill gets typed, coded, checked, and billed is each vendor's own data model, and there is no NCPDP standard for writing into it. Everyone gets the prescription the same way. Nobody enters it the same way. That asymmetry (a standardized front door, seven proprietary back offices) is the entire integration problem in one sentence.

What does it mean to run an AI agent on top of a PMS?

Running on top of a PMS means the agent works through the application the way a person does instead of writing directly to its database. It reads the e-script, opens Data Entry, enters the drug, SIG, quantity, days supply, refills, and prescriber into the same fields, and saves with the same keystroke your techs use. (If those fields sound simple, they aren't.) Everything the system already does for a human still happens: the formulary check, the drug-utilization review, the claim adjudication. The agent doesn't bypass your pharmacy's guardrails; it works inside them.

For you, that's three things. No IT project and no data migration. It works on the system you run today, not one on a roadmap. And because there's nothing to build, a store can be live in about two weeks instead of two quarters.

Isn't this just screen scraping?

No. A vision and accessibility layer identifies fields by their meaning and verifies the result of each action, while traditional screen scraping replays fixed coordinates and keystrokes. The last generation of this idea earned its bad reputation. The RPA tools of the 2010s automated screens by recording them: click at these coordinates, tab three times, paste into the fourth field. The script had no idea what a SIG field was: only where one happened to be on the day it was recorded. So any change broke it: a moved button, a new dialog, a different screen resolution. Someone had to notice the breakage (often after bad data went in), re-record the script, and redeploy. Multiply that across every screen and every PMS update and you've rebuilt the integration tax with worse tools.

A vision layer works differently in kind, not degree. The agent reads the screen semantically: it recognizes the SIG field because it's labeled and behaves like the SIG field, not because it sits at pixel 412, 388. If a PMS update moves that field, restyles it, or shuffles the tab order, it's still recognizably the SIG field, the way it would be to a technician back from a week's vacation. The brittleness that defined old RPA mostly disappears, because nothing is anchored to coordinates.

The "accessibility" half of the layer matters too. Desktop applications expose a structured tree of their controls (names, roles, values) for assistive technology like screen readers, and that tree is far more stable across releases than pixel positions, because vendors can't casually break it without breaking accessibility. Reading the application both ways, visually and structurally, is what lets the agent treat a PMS as a set of meaningful fields rather than a picture of one.

Mostly, but not entirely, and we'd rather say so than let you find out. A PMS release can still do things that matter: rename a field, add a required prompt, restructure a workflow. A vision agent doesn't get to be surprised silently, though, because it confirms what's on the screen after every action rather than firing keystrokes blind. When a screen stops reading the way it should, the safe behavior (and the behavior we built) is to stop and flag the prescription for a person instead of guessing. A stalled script that a human finishes is an inconvenience. A wrong script entered confidently is the thing this whole architecture exists to prevent.

What are the four ways to automate pharmacy data entry?

The four main approaches are API integration, legacy RPA, a vision-layer agent, and outsourced data entry. If you're evaluating options, here's the honest comparison, including the cells that don't favor us.

API integrationLegacy RPAVision-layer agentOutsourced data entry
Time to go liveMonths to quarters, per PMSWeeks to months of scripting, per screenAbout two weeks; nothing to buildWeeks to hire and train
PMS coverageOnly systems the vendor built and was granted access toOnly screens someone scriptedAny PMS with a screenAny, if you can staff it
Breaks on UI update?No, but breaks on API version changesYes; coordinates and selectors go staleRarely; fields are recognized by meaning, and unreadable screens stop the agent rather than failing silentlyNo; people adapt
Bypasses PMS safety checks (DUR, adjudication)?Can, depending on where it writesNo, works through the UINo, same screens, same checksNo
IT project required?Yes: mapping, testing, vendor approvalYes: scripting plus permanent upkeepNoNo, but remote access and accounts to manage
Where PHI livesCopied into a second systemPasses through the bot vendor's scriptsYour PMS stays the system of recordExported to a third-party team, often overseas

What is the tradeoff of working through the PMS interface?

The tradeoff is speed at the individual action level: the agent moves at the speed of the software interface, not at the speed of a raw database write. So let's put a number on the ceiling. Take a hypothetical busy independent doing 300 scripts a day. Even at a full minute of interface time per script (deliberately slow, to keep the math conservative), that's 300 minutes of screen time, five hours, inside a workday that runs twelve or more. The interface isn't the bottleneck at any volume an independent or small chain actually sees; the queue's arrival pattern is. A queue doesn't care whether it was cleared by a keyboard or an API.

Where a backend connection genuinely helps, we'll build one. But we start by using what you already have, because that's what delivers value in weeks and keeps you off a migration treadmill.

Why is this approach a practical default for independent pharmacies?

This approach is a practical default because an independent or community pharmacy can use automation without running a separate IT integration project. A pharmacy shouldn't need an IT department to get help with data entry. Running on top of the PMS you already trust (the one your team knows, the one that already enforces your policies) is the version of automation that fits how these pharmacies actually operate. See how it works, or find the system you run: PioneerRx, PrimeRx, BestRx, EnterpriseRx, Liberty, QS/1, ComputerRx.

Sources

Inside the PMS you already run

See what PillPilot takes off the counter.

PillPilot finishes prescription data entry, then makes the outbound refill and pickup calls that follow, with a pharmacist on every exception.

See how it works
FAQ

Questions worth asking.

Does PillPilot break when my PMS updates?

Rarely, and never silently. The agent recognizes fields by meaning (a moved SIG field is still recognizably the SIG field), so cosmetic changes don't break it the way they broke coordinate-based RPA. When an update changes something the agent can't confidently read, it stops and flags the prescription for a person instead of guessing.

Is a vision AI agent the same as RPA or screen scraping?

No. Legacy RPA replays recorded coordinates and keystrokes with no understanding of the screen, which is why any UI change broke it. A vision and accessibility layer reads the screen semantically, recognizes fields by their labels and behavior, and verifies what actually landed after each action.

Why doesn't PillPilot use the PMS's API?

There is no universal standard for writing into a pharmacy management system (NCPDP SCRIPT standardizes prescriptions arriving at the pharmacy, not the vendor's internal data model), and API access is gated by each vendor. A per-system integration is months of work per PMS. Working through the interface is PMS-agnostic, keeps DUR and adjudication intact, and goes live in about two weeks.

Does working through the interface bypass safety checks?

No. That's the point of it. The agent enters data through the same screens a technician uses, so the formulary check, drug-utilization review, and claim adjudication all still run. Nothing is written around the PMS's guardrails.

Book a 20-minute call

Let your pharmacists be pharmacists.

PillPilot installs in two weeks and runs on top of the system you already use.