Skip to main content
The Agent page at https://pharmacy.voxo.co/agent lets you manage the AI-powered pharmacy agent. The agent answers inbound patient calls, processes prescription refill requests, handles status checks, places outbound calls for call campaigns set to Assistant mode, and can operate as an embedded chat widget on your pharmacy website. The page has two tabs: Conversations and Settings.
Voice options and refill configuration settings vary depending on which pharmacy management system (PMS) you have connected. The available choices in those settings reflect what your PMS supports.
The agent recognizes touch-tone keypad input during calls. If a caller enters their prescription number on the keypad, the agent uses those digits to look up the prescription without asking for a name and date of birth. The agent allows a short pause between digits — useful when a caller is reading a number off a bottle — and a caller can press # to submit the number as soon as they finish entering it. A short entry, such as a four-digit birth year, isn’t mistaken for a prescription number, and a caller can press 0 at any time to let the agent know they’d like to speak with a person.
The agent incorporates the verified patient’s own medications into speech recognition during a session, improving accuracy when callers say their medications by name.
The agent matches hyphenated and multi-part names — such as “Ana Maria” or “Garcia-Lopez” — part by part, and tries alternate spellings when the first attempt finds no match. Accents are ignored, so “Núñez” on file matches a caller heard as “Nunez”, and a name is compared against both the full name your PMS holds and the patient’s first and last name, so a middle name on one side and not the other no longer prevents a match. Callers need to give both a first and a last name for a name lookup — a first name on its own is not enough to identify a profile.
The agent looks a caller up by the number they are calling from first. When that finds no profile, it asks for the patient’s name and date of birth and searches on those. Name and date of birth lookup works on PioneerRx, Liberty RX, and BestRx and needs no setting turned on. A prescription number read off the label works at any point and resolves fastest.Spoken dates of birth are read in US order — month, day, then year — so “one five ninety” is January 5, 1990. The agent normalizes ordinals, month names, and two-digit years, and treats a number the transcription rendered as a word in another language as that number. A date the transcription runs together into a single number — “10282” for October 2, 1982 — is split back into month, day, and year rather than being read as one number.Enable Search Patient Tool may still appear under Voice Settings. It no longer changes what the agent does and is being removed from the dashboard.
For pharmacies on PioneerRx, the agent recognizes pet (animal) profiles, including pets that have no prescriptions on file, so callers asking about an animal’s medications are matched to the right profile. It never asks for the pet’s name: when the number the caller is calling from has one pet on it, the agent works from that profile, and when a household has several, it reports their prescriptions as one list. When no pet is on the number, it asks for a prescription number read off the label, which finds a pet profile the number isn’t attached to. A caller who has already been identified as themselves can move on to a pet without starting over.
For pharmacies on PioneerRx, when more than one patient profile matches the name and date of birth a caller gives — for example, family members who share a phone number — the agent asks for the street address on file to identify the right profile before continuing. If the address still doesn’t narrow it to a single profile, the agent transfers the call to pharmacy staff.
For pharmacies on PioneerRx, the agent matches only patients on file at your store. Profiles that belong to another location are not returned during patient lookup.
A caller who also needs help for someone else — a spouse or another family member — can ask on the same call. The agent clears the profile it was working from and identifies the new patient from scratch, verifying them the same way, so one person’s prescriptions are never reported against another’s.
If the agent can’t reach your pharmacy management system during a call — for example, the connection to PioneerRx, Liberty RX, or BestRx is down — it recognizes the outage, lets the caller know, and transfers them to pharmacy staff instead of retrying or ending with a generic error. If the agent can’t load your pharmacy’s configuration at all when a call starts, it asks the caller to contact the pharmacy directly and ends the call rather than leaving them in silence.
When a caller asks for something the agent has no way to handle — a delivery, an insurance or billing question, medical or dosage advice, appointment or vaccine scheduling, a special order, or a message passed to staff — the agent hands the request off rather than improvising an answer. What happens next depends on the channel and your store hours:
  • On a call during business hours — the agent connects the caller to pharmacy staff.
  • On a call outside business hours — the agent explains that staff will need to help, and offers to take a voicemail on your after-hours box.
  • In chat and SMS — with no call to transfer, the agent gives the caller your pharmacy’s phone number and asks them to call during business hours.
Patients are never routed to the prescriber voicemail box. If the agent can’t complete a transfer, it tells the caller so instead of announcing a hand-off that won’t connect.When a caller asks for several things at once and only some of them are out of scope, the agent finishes the requests it can handle first and hands off last, so a refill or status check asked for in the same breath isn’t lost to the transfer.
When a caller goes quiet, the agent waits for the silence to settle before checking in, so it no longer talks over someone who is still thinking or reading a label. It checks in a couple of times, a short pause apart, then says a friendly goodbye and ends the call. The caller speaking at any point cancels the sequence. The goodbye names your pharmacy.

Monitoring conversations

The Conversations tab provides a live view of patient interactions. A stats bar at the top shows session metrics for the current period. Filter the session list with the controls above the table:
  • Type — scope to Voice, Web, SMS, or All. All is the default and includes every session type.
  • Direction — Inbound, Outbound, or Both.
  • Transferred — show only sessions that were transferred to staff, only those that weren’t, or both.
  • Date range and Search for narrowing further. Search matches the caller’s name as well as their phone number, so you can type either.
Your filters, search term, and page are kept while you work — open a conversation and come back and the list is where you left it.

Session list

Below the stats, each row in the session list represents one patient interaction — either a phone call or a chat session. Select a row to open the conversation, or right-click it for Open conversation and Open in new tab. The conversation view shows:
  • Call recording playback — an audio player for the recorded phone call, if applicable. Use the player controls to play, pause, and scrub through the recording.
  • Tool usage tracking — a log of every action the agent took during the session, such as looking up a prescription, submitting a refill request, or transferring the caller. This lets you verify what the agent did and why. An action that finishes without a spoken reply — because the agent handled the request itself instead of reading a result back — is logged as successful, not as an error. A lookup that couldn’t reach your pharmacy management system is logged as a failure with the error, so an outage reads as an outage rather than as a search that found nobody.
  • Quality metrics — scores and indicators for how the agent handled the interaction, including whether the patient’s question was resolved.
To print or save the full message-by-message transcript of a conversation, open the conversation first, then use your browser’s print option from that view. The CSV export from the session list contains the table row only — it does not include the full transcript.
A conversation link carries the location the conversation belongs to, so it stands on its own when you copy it to a colleague. Opening a link for a location other than the one you are currently viewing switches the dashboard to that location.

Configuring the agent

The Settings tab contains five sub-tabs: General, Voice, Call Routing, Webchat, and Announcements.
Store and contact details, refill settings, and the Who Is Calling plugin download were sub-tabs here until September 22, 2026. Store details now live on the Store settings page, and refill settings and the plugin download on the PMS page. Settings that moved below links to each one.
If your account can open the Settings tab but not change it, a banner at the top of the sub-tabs says you can view the settings without permission to edit them, and the fields are read-only. Ask an administrator at your pharmacy to grant the virtual receptionist update permission in Store settings. When Save Changes is unavailable after you’ve edited something, the reason appears beneath the button — for example, “Choose a voice before saving.” Reset to Defaults clears every field on the agent config — greeting, voice and call behavior, store and contact details, hours, announcements, transfer and voicemail destinations, tools, and language — back to VOXO’s defaults. Confirm the dialog to fill the form with the defaults, then review them and select Save Changes to apply. Nothing is saved until you do, so Cancel Changes still puts the form back the way you found it.

General

The General sub-tab holds the agent’s name and its language settings. Languages are configured on this same sub-tab — see Language below.

Voice Settings

The Voice sub-tab controls how the agent sounds on calls.
If patients report hearing static or background noise on agent calls, turn off Enable Background Noise and have them try again.

Call Routing

The Call Routing sub-tab sets the hours the agent works to and where it sends callers it can’t finish with. Settings are grouped into four sections. Business hours — Select the business hours schedule the agent uses when answering questions about when the pharmacy is open and when deciding whether a call is after hours. You can assign an existing hours schedule, create a new one, edit the current selection, or remove it. Transfer behavior After hours Special cases
Custom destinations let you transfer calls to external phone numbers in addition to internal extensions, queues, and call groups. Use these when you need to route callers to an off-site location or external provider.
Business hours and Time of Days do different things. Business hours are recurring daily schedules the agent uses to answer “are you open?” and to route after-hours calls. Time of Days schedules continuous blocks — for example, today through next week with no breaks — and lets you pick where calls route during that block. Use Time of Days for one-off closures or overrides rather than editing your regular business hours.

Language

On the General sub-tab, control which languages the agent speaks and how it switches between them.
Selecting additional languages lets callers request a different language mid-call. With Lock to primary language on, the agent always stays in the primary language regardless of what the caller asks.
When your primary language is something other than English, or additional languages are enabled, the agent transcribes calls with a multilingual model so it understands callers in any of the languages you have configured. A location set to English and locked to its primary language transcribes English only.

Sending callers to the agent in a chosen language

A phone menu can put a caller straight into the agent in a particular language. On the IVR page, point a menu key at Pharmacy Agent (<language>) — for example, a “para español, oprima dos” key at Pharmacy Agent (Spanish). Calls that press that key run in that language from the start, regardless of the location’s Primary Language. Fifteen languages are available: English, Spanish, French, German, Portuguese, Italian, Dutch, Polish, Russian, Swedish, Turkish, Chinese, Japanese, Korean, and Hindi. The agent speaks its fixed lines in the call’s language rather than always in English — the greeting, “please hold while I connect you”, what it says before handing the caller to staff, the recording disclosure, and its goodbye.

Webchat

Configure an embedded chat widget that you can add to your pharmacy website. Patients who visit your site can use the widget to ask questions and submit refill requests without calling. Available settings: A live preview on the right side of the sub-tab updates as you change settings, so you can see how the widget will look on your site before deploying it. See Embedding the chat widget below for instructions on adding the widget to your website.
If webchat isn’t included in your plan, the sub-tab still opens but a note says so and the settings are read-only.

Announcements

Select which announcements the agent plays to callers at the start of an interaction. Announcements are managed separately on the Announcements page. Use this sub-tab to choose which of those announcements are active for the agent.

Settings that moved

The September 22, 2026 settings reorganization moved several agent settings to other pages. The agent behaves the same way — only where you configure it changed.

Location

Your store name, website, contact phone and email, and address are now on the Store Information tab of Store settings. The agent references them when patients ask questions like “where are you located?” The business hours the agent works to moved the other way, onto the Call Routing sub-tab.

Knowledge Base

The Knowledge Base sub-tab is no longer shown in the dashboard after the September 22, 2026 reorganization, so custom context sections can’t currently be added or edited there. Knowledge base content saved before then is kept and the agent still reads it when generating responses. Contact VOXO support if you need a section changed.
The Knowledge Base is custom context the agent uses when answering patient questions, organized into named sections, each with a Title and a Data field. Separate sections cover distinct topics — for example, pharmacy policies, frequently asked questions, or notes about specific services — rather than combining everything into one block. The agent reads every section when generating responses. When you save the agent configuration, the system still checks your knowledge base for content that could interfere with agent behavior — such as directives, capability claims, or prompt-like instructions. If flagged content is found, a warning dialog lists the specific issues and affected sections.

Refill Config

Refill settings are now on the PMS Config tab of the PMS page. How the agent handles refill requests on a call is unchanged:
Refills for reassigned prescriptions. If your PMS reassigns Rx numbers, enable the corresponding option here so the agent accepts refills filed against the new number. Without it, the agent may tell callers to contact their prescriber for a prescription that’s already filled and on hold. The available toggles depend on your connected PMS.
You can give refills a dedicated direct-dial number that routes callers straight to the refill agent, bypassing your main menu. Additional numbers used for this purpose aren’t charged — ask your administrator or VOXO support to point a number at the refill agent.
On PioneerRx, Liberty RX, and BestRx, each of a patient’s medications is listed on its own, with its strength, rather than every strength of the same drug being folded into one entry. If a caller names a medication that matches more than one of their prescriptions — including the same drug at two strengths — the agent names the strengths and asks which one they mean instead of choosing. A prescription number that a renewal has since replaced still resolves to the current prescription, so a number read off an older bottle refills the right one. When a medication has more than one prescription on file and one of them has been transferred, the agent reports and refills the one that wasn’t transferred, even where the transferred prescription carries the newer number.
On PioneerRx, a prescription your pharmacy has not finished preparing is reported as not yet refillable, and the agent tells the caller it is still being prepared rather than filing a refill it cannot complete.
Which status the agent reads back. On PioneerRx, a prescription’s own status and the stage it has reached in your pharmacy’s workflow are tracked separately. The agent reads the workflow stage back to the caller only while the prescription is still moving through that workflow; once the work on it is finished, the caller hears the prescription’s own status. A workflow stage your system reports but VOXO doesn’t recognize is left out rather than read back as a status, and a reversed prescription is reported as still being processed rather than unavailable.
A prescription that comes back from your PMS without a prescription number can’t be refilled or reported on. When a caller asks about one, the agent hands them to pharmacy staff instead of answering from the profile, filing a refill, or asking the caller to read out a number your system doesn’t have.
On PioneerRx, BestRx, and LibertyRx, the agent submits refills in a single bulk request when a caller asks for several prescriptions at once. The agent confirms the list with the caller, files the refills together, and reports the outcome for each prescription in one summary instead of repeating the refill flow for every script.
A caller who asks to refill “everything” is asked which medications they mean rather than having their whole profile submitted. A caller who asks what they can refill hears the names of the prescriptions that are currently refillable, so they can pick from that list.
Next fill date. Where your PMS supplies one, the agent reads the prescription’s next fill date back in the refill confirmation — after the refill is submitted, it tells the caller the pharmacy won’t fill that prescription until the date on it. Prescriptions submitted together that share a date are named in one sentence. The date is no longer raised before the caller has asked for the refill, and a prescription that can’t be refilled yet is still answered with the reason it can’t. A date that has already passed isn’t read back.

Tools

Auto Transfer Compounding is now part of the Call Routing sub-tab. Who Is Calling — Liberty RX locations only. The plugin download is now on the Who is Calling tab of the PMS page. See Who Is Calling for install and troubleshooting steps.
The agent can book vaccine appointments on outbound Vaccine Scheduling campaigns, against the calendars and event types you set up on the Scheduling page. Inbound callers who ask to schedule a vaccine or an appointment are still routed to pharmacy staff.

Embedding the chat widget

After configuring the widget in Settings, copy the embed code and add it to your pharmacy website.
1

Open the Webchat sub-tab

In the Settings tab, select Webchat from the sub-tab list.
2

Configure the widget

Set the widget name, position, auto-open behavior, and appearance. The live preview on the right updates as you make changes.
3

Copy the embed code

Scroll down to the embed code section. Click the copy button to copy the code snippet to your clipboard.
4

Add the code to your website

Paste the embed code into the HTML of every page on your pharmacy website where you want the widget to appear. Place it just before the closing </body> tag. If your site uses a tag manager, you can add the snippet there instead.
5

Verify the widget

Visit your website and confirm the widget appears in the correct position and opens as expected. Return to the Webchat sub-tab to adjust any settings if needed.
If your website is built on a CMS platform (such as WordPress), check your theme’s documentation for where to add custom scripts. Many platforms have a dedicated field for site-wide footer scripts, which is the appropriate place for the embed code.