Dograh

AI Voice Agents for Pharmacy Delivery Coordination: Who Is Home?

AI Voice Agents for Pharmacy Delivery Coordination: Who Is Home?
Use CaseOctober 24, 2026·8 min read

AI Voice Agents for Pharmacy Delivery Coordination: Who Is Home?

Vemu Sandeep
Vemu Sandeep·GTM Engineer, Dograh AI

GTM engineer at Dograh working across voice AI and enterprise AI. IIT (BHU) and IIM Visakhapatnam alumnus.

AI voice agents for pharmacy delivery coordination call the patient before a prescription leaves the pharmacy. After verification, the agent books the delivery window from live slots, reads the address back and asks who will be home to receive it. Your pharmacy's rule decides who may accept the parcel, and the confirmed details go back to your delivery system.

Key Takeaways

  • Verify first, then confirm the window, the address and who will receive it.
  • Refrigerated and controlled parcels need someone home, with no doorstep drop unless you allow it.
  • Your own list enforces one call a day and three a week.

This post is part of our guide to AI voice agents for pharmacy and pharma. In its section "Getting it to the patient: delivery and refills", the part on delivery coordination sums up this call: after verification, it confirms the window, reads the address back and asks who can accept the parcel. Here is that call in full, run in Dograh, an open-source, self-hostable voice agent platform.

Why pharmacy delivery coordination needs a call

A prescription that arrives when nobody is home either comes back to the pharmacy or sits on a doorstep. For insulin or a controlled substance, it is a problem the pharmacist has to sort out.

Delivery is also filling a gap. In Drug Channels, Bryce Platt notes that the US has "almost 8,000 fewer retail pharmacies than it did in 2018, and more than 2,000 closed in 2025 alone." When the nearest counter closes, more patients get their medicine brought to them, and each of those parcels needs someone to receive it.

A text can tell the patient a date, but it cannot ask whether anyone will be home that afternoon and wait for the answer. A short call before dispatch can. Logistics teams run the same check before a van leaves, as our post on AI voice agents for delivery coordination shows.

Who gets called, and when

The call list comes from your own delivery system or PMS: patients with a parcel ready to go out, minus anyone who opted out. Upload it as a CSV to Campaigns, where each extra column, such as the store name, becomes a variable the agent can use. A per-contact greeting from the campaign file plays before verification, so it names the pharmacy and the patient only, never the medicine.

A running campaign's contact list cannot be edited, so to stop calling someone, pause it and start a new campaign from a corrected list. For lists that change daily, start calls from your own system with the API Trigger, so your system decides who is called. Campaign calling hours run in one time zone per campaign, so split a list that spans time zones.

The phone rule sets the limits. Under the Telephone Consumer Protection Act (TCPA), the FCC's healthcare call exemption covers calls "strictly limited" to purposes that include "prescription notifications". The calls "must be sent only to the wireless telephone number provided by the patient", "must state the name and contact information of the healthcare provider" at the beginning, and "may not include accounting, billing, debt-collection, or other financial content". A provider "may initiate only one message ... per day to each patient, up to a maximum of three voice calls or text messages combined per week to each patient".

Our reading is that a delivery call generally fits "prescription notifications", within those limits. Keep any copay out of this call. Campaigns have no per-patient call cap, so your own list enforces one call a day and three a week, or you set retries to 0. This is general information, not legal advice; confirm your position with counsel.

Dograh

Open Source Alternative to Vapi / Retell

Self-hosted voice agent platform — no per-minute fees

dograh-hq/dograh

Star on GitHub

Verify, then window, address and receiver

The agent names nothing until the patient passes an approved check, such as date of birth plus one more detail on file. A phone number finds the record, but it does not prove who answered. A delivery address is health information once it sits next to a pharmacy's name, so it waits for the check too.

After verification, the agent confirms three things, in this order. First the window: an HTTP API tool reads the open slots from your delivery system, and the agent offers only those. Then the address, read back in full. If the patient gives a new one, the agent records it as stated and tells the patient the pharmacy will confirm it. It never promises a delivery area the system did not return.

A patient at home on the phone with a voice agent. After the patient gives date of birth and one more detail, the parcel's delivery label opens and is filled in three rows: the delivery window from the open slots, the address read back in full, and the name of who will receive it. All three go to the delivery system, which applies the pharmacy's rule on who may accept the parcel.
A parcel of insulin that arrives with nobody home either comes back or sits on a doorstep, and the pharmacist has to sort it out. Book only a slot the system returned, and let the pharmacy's rule, not the agent, decide who may accept it.

Last, who will receive it. Who can accept the parcel is your pharmacy's rule. The agent asks the patient who will be home, records the name as stated, and your delivery system applies the rule. The legal basis is 45 CFR 164.510(b)(3): "A covered entity may use professional judgment and its experience with common practice to make reasonable inferences of the individual's best interest in allowing a person to act on behalf of the individual to pick up filled prescriptions, medical supplies, X-rays, or other similar forms of protected health information." That judgement generally belongs to the pharmacy, not the agent. Confirm your own rule with counsel.

Refrigerated and controlled-substance parcels need someone there to receive them, so tell the agent in the prompt never to offer "leave it at the door" unless your pharmacy allows it for that item. Another HTTP API tool writes the window, the address and the receiver to the delivery system. Add a Preset Parameter named workflow_run_id with the value {{initial_context.workflow_run_id}}, so your system can ignore a duplicate if the same booking arrives twice.

When the parcel or the patient needs a person

A patient who reports that a past parcel arrived damaged, warm or looking wrong goes to the pharmacist. So does every question about the medicine itself: how to store it, a missed dose or a side effect. Transfer Call works on Twilio, Telnyx and Asterisk ARI. It passes no summary by default; on Twilio it can play a short spoken introduction to both people. Write the details to your system with an HTTP API tool before the transfer. If nobody answers, the caller stays with the agent; tell it in the prompt to offer a callback. A medical emergency gets the emergency pathway's fixed Transition Speech: "hang up and call 911". On a speech-to-speech model only recordings play, so record this line.

Voicemail handling is off by default. If you turn it on (Settings, Voicemail & Screening) and set it to leave a message, keep it to the pharmacy's name and a callback number, never the medicine. The exemption also asks that a call that could reach voicemail "include a toll-free number that the consumer can call to opt out of future healthcare calls", so put that number in the message.

A patient who says "stop calling me" is opting out. Dograh keeps no do-not-call list. When a caller opts out, an HTTP API tool writes it to your own list, and you remove those numbers before the next campaign upload. The do_not_call call tag records the request but never blocks a later call.

Join the Dograh Community

Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.

Writing the result back

After each call, the Webhook node sends the outcome to your delivery system: the confirmed window, the address as read back, the receiver's name, or the reason the call ended without a booking. It retries automatically on a temporary failure. The transcript and recording stay the exact record, because extracted answers are an AI step.

For patient calls, self-host Dograh. No BAA with Dograh is needed, because Dograh never sees the data. Your speech and language providers may need their own BAA, and your phone carrier may too.

Dograh starts every account on its own managed models. To keep call audio away from Dograh, open Models, switch the Organization default to BYOK with your own speech and language providers (or local models), and check that no agent has its own model override. Dograh is the orchestration layer: it runs the call flow, tools and telephony, and the speech and language models are a separate layer you choose. The call audio stays in-house only when the speech and language models run on your own servers too.

Self-hosted Dograh has no per-minute platform fee (servers, model keys and phone minutes still cost); Dograh Cloud has a 1¢-a-minute platform fee.

The inbound side of the same parcel, "is it ready?", is covered in AI voice agents for pharmacy order status.

A specialty drug's first shipment is booked inside the welcome call in AI voice agents for specialty pharmacy onboarding. For medical equipment rather than medicine, our post on DME order and resupply reminders runs a similar confirm-then-ship call.

Glossary

Delivery window
The time slot the patient agrees to be home for, chosen from the open slots your delivery system returns during the call. The agent offers only those slots and writes the chosen one back.
Prescription notification
One of the purposes the FCC's healthcare call exemption allows, within its limits: the provider named first, about a minute long, one call a day and three a week, no offers and no financial content.
Cold-chain parcel
A delivery that must stay refrigerated, such as insulin. Someone has to be home to receive it, so the call books a window instead of offering to leave it at the door.
Preset Parameter
A fixed value an HTTP API tool always sends. Set workflow_run_id to {{initial_context.workflow_run_id}} so your delivery system can ignore a duplicate booking from the same call.

Frequently Asked Questions

Get started with Dograh

Build, deploy, and scale AI agents with Dograh. Join the community of developers building the future.