Bug fixes
Connect
- An answered call on Android no longer drops — On Android, a call that arrived while the mobile app was in the background could end the instant it was answered, and sometimes never rang at all. Two wake-up paths could start for the same incoming call and register competing connections; the call reached only one of them, and when the other gave up waiting it hung up the call that had already connected. One wake-up path now runs per call, a late timeout can no longer end a call that is already up, and a sign-in that is still in progress no longer cancels the incoming call. Update to the latest version of VOXO Connect for Android to get the fix. Learn more
Bug fixes
API
- Listing conduit tenants works again —
GET /tenants/conduitsanswered with a server error instead of the tenant list. Every tenant in the response was checked for ahealthcareVerticalvalue that this endpoint does not read, so the request failed once that field was added to tenant lists on September 2. The field is now optional on tenant list responses; the other tenant lists still return it. Learn more
AgentPharmacyAPI
A menu key can send callers to the agent in any of 15 languages, a recording disclosure you can switch on yourself, and audio files that hold more than one language
Updates
Agent
- Send callers to the agent in the language they chose — A phone menu key can now be pointed at Pharmacy Agent (<language>), and calls that press it run in that language from the start, whatever the location’s primary language is. Fifteen languages are available: English, Spanish, French, German, Portuguese, Italian, Dutch, Polish, Russian, Swedish, Turkish, Chinese, Japanese, Korean, and Hindi. The agent’s fixed lines follow the call’s language rather than always being English — the greeting, “please hold while I connect you”, what it says before handing the caller to staff, the recording disclosure, and its goodbye. Write your greeting in English and it is translated; a language picker beside Preview Audio plays it back as a caller in that language would hear it. Learn more
- Turn on a call recording disclosure yourself — A new Compliance tab on Store Settings has a Call Recording Disclosure switch. Turn it on, pick the voice that reads it, and callers hear a short consent message before the agent says anything else. It cannot be interrupted, it plays only on calls that are already being recorded, it is spoken in the call’s language, and an answering machine on an outbound campaign skips it. Turning it off keeps the recording, so switching it back on doesn’t mean choosing a voice again. Learn more
Pharmacy
- One audio file, several languages — Text-to-speech on the Audio files tab now takes a block of text per language instead of one block of text. Write each block in English and it is translated into that block’s language before it’s spoken; the blocks are read in order into a single file, so a greeting can run in English and then Spanish. Add Language adds a block, one per supported language. Learn more
API
- Media files carry a language and per-language text — Creating or updating a media file accepts
languageandmultilingualText, an array of{language, text}segments, and both are returned when you read one back.textandmultilingualTextare mutually exclusive — sending both is rejected. Thetextlimit is raised from 1,000 to 5,000 characters. Learn more - Text-to-speech generates multi-language audio —
POST /text-to-speech/voices/{id}/ttstakes eithertextwith an optionallanguage, orsegments— up to 10{language, text}pairs synthesized in order and returned as one audio file. Text is translated to the target language before it is spoken. Sending bothtextandsegments, or neither, is rejected.GET /text-to-speech/supported-languageslists the languages the agent supports and their codes. Learn more - Destination types for the agent in each language — Destinations accept
PHARMACY_AGENT_<LANGUAGE>andPHARMACY_IVR_<LANGUAGE>_<REFILL|STATUS>types, so a menu key can point at the pharmacy agent in a given language, andQS1_pharmacy destinations resolve alongside the PioneerRx, BestRx, and LibertyRx ones. Learn more
Bug fixes
Agent
- A prescription with no number goes to pharmacy staff — When a pharmacy management system returned a prescription without a prescription number, the agent answered about it from the patient’s profile and could ask the caller to read out a number that doesn’t exist. It now hands those callers to pharmacy staff instead, and won’t file a refill against a prescription it has no number for. Learn more
- The agent accepts the receiving option a caller picks — Choosing how to receive a refill could fail with “there is no receiving option”, listing the very option the caller had just chosen, when the pharmacy system returned that option’s id as a number and the agent’s pick came back as text. The two are now compared by value. Learn more
- An unreachable pharmacy system is logged as a failure, not an empty result — The patient lookup the agent runs as a call starts was recorded as a successful lookup that found nobody when the pharmacy system was down, so the session’s tool usage list showed a green success for an outage. It is now recorded as a failed action with the error. No change to what the caller hears. Learn more
Agent
Agent actions that finish without a spoken reply are no longer logged as failures in a conversation's tool usage list
Bug fixes
Agent
- A halted action is no longer logged as a failure — Some actions finish without the agent speaking a reply, because the agent handles the request itself rather than reading a result back to the caller. Those steps were recorded as failures in a conversation’s tool usage log, so reviewing a session showed errors on work the agent had actually completed. They are now logged as successful, noting that the reply was halted. Learn more
AgentAPI
A pharmacy management system that can't be reached is reported as an outage on every lookup, and tenant responses say which healthcare vertical an account belongs to
Updates
API
- Tenant responses include the healthcare vertical —
healthcareVerticalis returned on the tenant list and on a single tenant’s details, so you can tell a pharmacy account from a general one without a second call. It isnullon accounts that aren’t in a healthcare vertical. Learn more
Bug fixes
Agent
- An unreachable pharmacy system is treated as an outage everywhere — When the connection to PioneerRx, Liberty RX, or BestRx was down, only some lookups recognized it. Patient profile lookups, prescription status checks, and refill requests treated the outage as “nothing found”, so the caller was told no matching prescription could be found instead of hearing that the pharmacy system was unavailable. Every one of those paths now reports the outage — including the unreachable status BestRx returns on a refill — so the agent tells the caller and transfers them to pharmacy staff. Learn more
PharmacyAPIPlatform
The upcoming invoice can be opened line by line, discounts apply per product, and 21 more service areas are published in the API reference
Updates
Pharmacy
- Your upcoming invoice, line by line — The Next invoice card on Billing has a View details button that opens the estimated invoice itemized: every line with its amount, a Proration label on the ones that come from a mid-period change, and the subtotal, discount, tax, total, and amount due. Learn more
- Discounts apply per product — A discount now takes a percentage off one product rather than the subscription as a whole, and each product can carry its own, so more than one discount can be active at a time. Integration fees are never discounted. Discounts are managed in one place — Manage on the payment card — where you can stage several and apply them together, and each one records the reason shown on the invoice alongside internal terms for what was agreed. Learn more
API
- 21 more service areas in the API reference — Announcements, call outcomes, custom voices, directory, faxing, feature codes, media files, music on hold, number blocking, paging groups, parking sessions, patients, queues, short numbers, TCR, user activity, user roles, users, virtual receptionists, voicemail messages, and voicemail settings now publish their request and response schemas, so their endpoints appear in the reference with the fields they accept and return. Learn more
- Discount endpoints target a product line — Applying a percent discount takes a
priceIdand discounts that one product line, and several product lines can be discounted at once. An amount discount takes nopriceIdand applies across the subscription, excluding products that can’t be discounted. Removing a discount takes the samepriceIdto name which one to remove, and without it removes the subscription-level discount. Learn more - Find me, follow me fields removed — The
fmfmfields on extensions andcheckOfflineon call groups have been removed from requests and responses. The matching option is gone from the call group form in the Omnia admin portal. Learn more
Bug fixes
Platform
- e911 address validation says why it failed — Validating an emergency address in the Omnia admin portal reported every failure as “Address validation failed”, whatever went wrong. The reason from the carrier’s address database is now shown, so you can correct the entry and validate again. Learn more
Pharmacy
Toll-free and international minutes are metered on your invoice, and a campaign checks the location's plan before every call it places
Updates
Pharmacy
- Toll-free and international minutes are metered — Time on toll-free and international calls is now counted toward your invoice alongside agent minutes. Minutes are measured from the moment a call is answered until it ends and rounded up to the next whole minute, and a call that is never answered isn’t billed. The Next invoice card on Billing includes them in the estimate for the period you’re in. Learn more
- Campaigns follow the plan on the location — The Silver-or-Gold requirement behind Assistant mode is now checked before each campaign call rather than only when the campaign is created, so a campaign set up while the location had the plan stops dialing in Assistant mode once the plan is dropped. Pickup Reminder, Refill Reminder, Contact Pharmacy, and Birthday campaigns keep running in IVR mode; Custom campaigns are deactivated, and so is a Vaccine Scheduling campaign whose location no longer has the Appointment Scheduling add-on. A campaign that switched to IVR returns to Assistant mode on its own once the plan is restored. Learn more
AgentPharmacy
The agent hears dates of birth in US order and matches more of the ways a name is said, and conversations open straight from the dashboard list
Updates
Pharmacy
- Conversations open from the list — Selecting a row in the Conversations or live sessions table opens that conversation, and right-clicking a row offers Open conversation and Open in new tab. A conversation link now carries the location the call belongs to, so a link you copy to a colleague opens on the right location instead of on whichever one they happen to be viewing. The RX Numbers column has been removed from the table. Learn more
- Search conversations by caller name — The search box above the conversations table matches the caller’s name as well as their phone number. Typing a name used to be stripped down to nothing and quietly returned every conversation. Learn more
Bug fixes
Agent
- Dates of birth are heard in US order — A caller saying a date such as “one five ninety” could be read as the fifth of January or the first of May, and a lookup on the wrong reading found no profile. The agent now reads spoken dates as month, then day, then year, and a number the transcription rendered as a word in another language is understood as that number. Learn more
- Names match more of the way callers say them — A name with an accent on file, or a middle name recorded on one side and not the other, could stop a patient lookup from matching. Names are now compared with accents set aside, and against both the full name your PMS holds and the patient’s first and last name, on PioneerRx, Liberty RX, and BestRx. A caller still needs to give both a first and a last name for a name lookup. Learn more
Pharmacy
- Coming back from a conversation keeps your place — Opening a conversation and going back reset the type, direction, and transferred filters, the search term, and the page you were on. The list now returns as you left it.
- Tool call details are readable — In the tool log on a conversation, a request or response containing an apostrophe — a name like O’Brien — failed to format and was printed as one raw line, and call durations were shown with every decimal the agent reported. Details now format correctly, and durations round to whole milliseconds or two decimal seconds.
Agent
Every strength of a medication is its own prescription, and the agent asks which one a caller means
Bug fixes
Agent
- Two strengths of the same medication no longer collapse into one — A patient’s prescriptions were grouped by base drug name, so a second strength of the same medication was folded behind the most recently filled one and a caller asking for it could be answered about the wrong script. Each medication now stands on its own in the profile the agent works from, with its strength, on PioneerRx, Liberty RX, and BestRx. When a caller names a medication that matches more than one of theirs, the agent names the strengths and asks which they mean instead of choosing, and a prescription number a renewal has since replaced still resolves to the current prescription. Learn more
Agent
Calls in a language other than English are transcribed again, and the agent names a prescription that's still being prepared
Bug fixes
Agent
- Calls in a language other than English are transcribed again — On a location whose primary language isn’t English, or one that allows callers to switch languages, the agent could hear nothing a caller said and end the call. It now transcribes with a multilingual model in those cases, so Spanish and any other language you have configured are understood. Learn more
- A prescription still being prepared is named as such — On PioneerRx, a prescription your pharmacy hadn’t finished preparing came back with no refill verdict, and the reason the agent gave the caller was internal wording rather than something they could act on. It now reports the prescription as not yet refillable and tells the caller it is still being prepared by the pharmacy. Learn more
Agent
Every pharmacy's agent can identify callers by name and date of birth, and refills go through on named receiving options
Updates
Agent
- Patient lookup by name and date of birth works everywhere — The agent identifies callers by name and date of birth on PioneerRx, Liberty RX, and BestRx without a per-location setting. Enable Search Patient Tool in Voice Settings no longer changes what the agent does and is being removed from the dashboard. Callers are still matched on the number they are calling from first, and a prescription number read off the label still resolves fastest. Learn more
Bug fixes
Agent
- Refills go through on named receiving options — On Liberty RX, where receiving options are named rather than numbered, the agent could not pass back the option a caller chose and asked them to pick again. It now sends the option exactly as your PMS defines it and submits the refill. Learn more
PharmacyAgentAPI
Billing shows payment methods other than cards and bank accounts, bookings show which vaccine they're for, and the agent hangs up instead of leaving the line open
Updates
API
- Default payment method is reported as a single shape — The pharmacy billing responses now return
defaultPaymentas one object with the Stripe payment methodtype, a display-readylabel, and best-effortbrand,last4,expMonth,expYear,bankName,accountType, andemailfields, instead of a card-or-bank union. Any payment method Stripe holds is reported, rather than being left out when it isn’t a card or a US bank account.
Bug fixes
Pharmacy
- Billing shows every payment method, not just cards and bank accounts — The payment card in the Billing tab showed No payment method on file when the default method was something other than a card or a US bank account, even though the account was set up to be charged. Any method now appears with its own details — Link with the email it’s attached to, and anything else with a readable label. Learn more
- Bookings show which vaccine the appointment is for — The vaccine recorded on an appointment now appears next to the patient’s name in both the calendar and list views of Bookings, instead of only inside the booking itself.
Agent
- The agent hangs up instead of leaving the line open — On an outbound campaign call, the agent could record the outcome, say goodbye, and leave the patient sitting on an open line. It now asks whether there’s anything else the patient needs and then ends the call itself. A call it transfers to pharmacy staff is still left for them to end. Learn more
- No repeat lookup once the caller is identified — After the agent already has a caller’s profile, a prescription number they read out is matched against the prescriptions it holds instead of starting another lookup and announcing a second time that it found their profile.
PharmacyAgent
Pharmacies can take appointments against their own Google or Outlook calendars, the agent books vaccine appointments on outbound campaigns, and subscriptions can be managed from the dashboard
Updates
Pharmacy
- Appointment scheduling — A new Scheduling page lets you connect a Google or Outlook calendar, define the appointment types patients can book, and manage bookings from a calendar or list view. Bookings are assigned round-robin across the staff calendars you choose and written to that person’s own calendar, so they never collide with meetings already booked. You can add, reschedule, and cancel appointments by hand, and each change emails the staff member the appointment is assigned to. Requires the Appointment Scheduling add-on. Learn more
- Manage your subscription from the dashboard — The Billing tab in Settings now shows what each location is paying for and lets you change it yourself: set plans and add-ons per location, review what’s due today before you confirm, update the card on file, and download invoices. Upgrades apply immediately and are prorated; downgrades are scheduled for your next renewal. A past-due account gets a banner with a link to pay the outstanding invoice. Learn more
- Vaccine Scheduling call campaigns — A sixth campaign type calls patients to offer a vaccine and books the appointment on the call. Pick the calendar event type the appointment books against and list the vaccines the agent can offer. Assistant mode only, and requires the Appointment Scheduling add-on.
- Assistant-mode campaigns now available on Silver — Creating a call campaign in Assistant mode previously required the Gold plan. It is now available on Silver as well as Gold. IVR-mode campaigns still have no plan requirement. Learn more
Agent
- The agent books vaccine appointments — On a Vaccine Scheduling campaign call, the agent offers the vaccines configured on the campaign, reads back open times from your calendar for the day the patient chooses, and books the slot they pick. It says so and offers another time when a slot was just taken or is less than an hour away. Patients who call in asking to schedule are still handed off to pharmacy staff. Learn more
- Outbound campaign calls recognize an answering machine — The agent now listens to how a campaign call was answered before it starts talking. A voicemail greeting gets a brief message saying the pharmacy will call back, together with the number to call to stop receiving calls; a carrier message such as “the number you have dialed is unavailable” ends the call without leaving one. Both are recorded on the campaign record as a VOICEMAIL disposition. Learn more
ConnectAPI
Microsoft and Google single sign-on now complete in the same browser tab, and the extension list endpoints can filter by branch
Updates
API
- Filter extensions by branch — The extensions list endpoints now accept an optional
branchIdquery parameter that narrows results to a single branch, and each extension in the response includes itsbranchId.
Bug fixes
Connect
- Microsoft single sign-on no longer returns you to the login screen — Signing in with Microsoft could send you back to the login page without signing you in, because the sign-in popup was unable to hand its result back to VOXO Connect. Google and Microsoft sign-in now complete as a redirect in the same browser tab instead of a popup window, so pop-up blockers no longer interfere. Learn more
Bug fixes
Pharmacy
- Agent conversation timestamps show the correct time — Session dates and times in the agent Conversations tab were converted using the time zone of the date-range filter’s start date and returned without a time-zone marker, so they could appear hours off. Session times are now returned in UTC and shown in your local time.
AgentPharmacy
Requests the agent can't handle now route to staff or voicemail by channel and store hours, and the offer-to-help prompt no longer interrupts a transfer the agent itself proposed
Updates
Agent
- Out-of-scope requests route by channel and store hours — When a caller asks for something the agent can’t handle — a delivery, an insurance or billing question, medical or dosage advice, appointment or vaccine scheduling, a special order, or a message for staff — the agent hands the request off instead of improvising. On a call during business hours it connects the caller to pharmacy staff; outside business hours it offers to take a voicemail; in chat and SMS it gives the caller the pharmacy’s phone number. Patients are never routed to the prescriber voicemail box. Learn more
Bug fixes
Agent
- Offer-to-help prompt no longer interrupts transfers it shouldn’t — With Offer help before transferring enabled, the agent no longer makes the self-service offer after it was the one who proposed connecting the caller, after the caller has already used a lookup, status check, or refill, when the destination is a voicemail box, or for a request the agent has no way to handle. Learn more
- No hand-off the agent can’t complete — The agent checks that a call leg is available before announcing a transfer. When it isn’t, the caller is told the transfer didn’t go through instead of hearing a hand-off line and waiting on a connection that never happens.
Updates
Pharmacy
- Liberty RX caller identification — Pharmacies using Liberty RX can now match inbound callers to patient records from their Liberty workstation, the same Who’s Calling lookup already available for PioneerRx. Lookups appear in the Who is Calling tab of PMS Tools. Learn more
AgentPharmacy
When a patient calls back about a call from the pharmacy, the agent offers to connect them with staff instead of guessing why they were called
Updates
Agent
- Return-call inquiries hand off to staff — When a patient calls back and says the pharmacy called them (for example, “you called me” or “I missed a call from you”), the agent no longer guesses the reason for the call. It offers to connect the patient with the pharmacy team, and still handles refill or prescription-status requests directly when that is what the patient needs.
PharmacyPlatform
Enabling or disabling the PioneerRx agent no longer returns a payment error when an old canceled subscription is on the account
APIPlatform
CSV export on the Admin audit log and extensions endpoints, plus a state-code validation fix for Indiana
Updates
API
- CSV export for Admin audit log and extensions — The Admin audit log and extensions list endpoints now accept an
exportquery parameter that returns the full filtered result set as a downloadable CSV instead of a paginated JSON response. This backs the Export button on both Admin Portal pages, so the download honors your active filters rather than a single page of results.
Bug fixes
API
- Indiana state code accepted — US state-code validation now accepts
IN(Indiana). Requests that included an Indiana address previously failed with an “Invalid State Code.” error.
AgentPharmacy
LibertyRx prescription statuses now map correctly for status checks and refill eligibility
Bug fixes
Agent
- LibertyRx prescription status mapping — Prescription statuses from LibertyRx now report accurately during status checks and refill requests. Statuses such as No Refills, Expired, Discontinued, On Hold, and Too Early are no longer treated as refillable, and a verified prescription now shows as Filled and Ready for Pickup instead of an in-progress state. This applies to both single and bulk refill requests.
AgentPharmacy
Refill requests now honor each patient's default receiving option when that setting is enabled
Bug fixes
Agent
- Patient default receiving option on refills — When receiving options are set to use each patient’s default preference from your PMS, the agent now applies that patient-level default (such as pickup, mail, or delivery) when filing refill requests on PioneerRx, instead of falling back to the location default. This applies to both single and bulk refill requests. Learn more
Bug fixes
API
- Finalized transcript turns only — The
TRANSCRIPTIONENDwebhook and the stored call transcript now include only completed, finalized turns. Interim (partial) speech results that could previously slip in as duplicated or half-finished segments are no longer written, so thetranscriptarray holds one clean entry per turn. Learn more
AgentAPIPharmacyPlatform
Recording-consent disclosure on outbound agent calls, a new Transcription End webhook, and queue reporting and call-center login fixes
Updates
Agent
- Recording-consent disclosure on outbound calls — When recording consent is enabled for your pharmacy agent, outbound calls now open with a spoken recording disclosure before the greeting, telling the patient the call is recorded and that staying on the line is their consent. It plays on every outbound agent call and can’t be interrupted, so it is always heard. Learn more
API
- Transcription End webhook — A new
TRANSCRIPTIONENDwebhook fires when a transcribed call’s transcription session ends, delivering the full transcript plus aninsightsobject of AI-generated analysis (summary, sentiment, topics, and intents). Opt in by configuring a webhook with typeTRANSCRIPTIONEND. Learn more
Bug fixes
Platform
- Queue call answer time — Calls answered on a different server instance than the one hosting the queue now record their answered time correctly, so queue call disposition and reporting reflect them accurately.
Connect
- Call center login for multi-location organizations — Fixed an issue that prevented call center users at some multi-location organizations from loading their call centers.
AgentPharmacy
Outbound campaign calls now verify patient identity before sharing prescription details, plus reporting and calling fixes
Updates
Agent
- Identity verification before prescription details on campaign calls — When the pharmacy agent places Pickup Reminder, Refill Reminder, or Contact Pharmacy calls in Assistant mode, it now confirms who it’s speaking with before sharing any prescription information. The opening message gives only the pharmacy name and a general reason for the call, and the agent asks for the patient’s date of birth to verify identity — the same verify-before-disclosure flow it uses on inbound calls. Birthday and Custom campaigns are unchanged. Learn more
Bug fixes
Pharmacy
- Campaign calls labeled correctly in reporting — Assistant-mode outbound campaign calls are no longer shown as inbound in the agent’s Conversations session list, so the Direction filter reflects them accurately.
- Call campaign creation — Fixed an error that prevented some pharmacies from creating outbound call campaigns.
Platform
- Caller name fallback — When a caller’s name can’t be retrieved from the carrier lookup, incoming calls now display the caller’s phone number instead of an internal error message.
Bug fixes
Pharmacy
- Manual phone number entry in call campaigns — When you add a record to an outbound call campaign by hand, you can again type the patient’s phone number directly into the Manual entry dialog. Learn more
AgentPharmacy
A new AI voice catalog for the pharmacy agent — pick from named voices when setting the agent's voice or generating media and greeting audio
Updates
Agent
- New AI voice catalog — When you choose the pharmacy agent’s voice in Voice Settings, you now pick from a searchable catalog of named AI voices, each with a short description of its persona. The same catalog powers voice selection when you generate media files and voicemail greetings. Voices are no longer tied to a single speech provider, so the agent can keep speaking in your chosen voice even if one provider has an outage. Learn more
AgentPharmacy
The pharmacy agent now handles a practice-management-system outage gracefully — disclosing the problem and transferring the caller to staff
Updates
Agent
- Graceful handling of PMS outages — When the agent can’t reach your pharmacy management system during a call (for example, the connection to PioneerRx or BestRx is down), it now recognizes the outage, lets the caller know, and transfers them to pharmacy staff — instead of retrying or ending the call 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. Learn more
AgentPharmacy
Agent keypad refinements: press 0 to reach a person, and short entries like a birth year are no longer mistaken for a prescription number
Bug fixes
Agent
- Keypad input refinements — A caller can now press 0 on their keypad at any point to let the agent know they’d like to speak with a person. The agent also no longer mistakes a short keypad entry — such as a four-digit birth year entered for date-of-birth verification — for a prescription number. Learn more
PharmacyAgentAPI
Offer-help-before-transfer agent setting, Device Models and Phonebooks APIs, and richer ENDCALL webhooks
New features
Agent
- Offer help before transferring — A new Offer help before transferring toggle in the pharmacy agent’s Voice Settings. When enabled, if a caller asks to be transferred the agent makes one brief offer to help them directly before connecting them to staff. If the caller declines or asks again, the agent transfers right away. Emergency, safety, and compliance transfers always connect immediately. Learn more
Updates
API
- Device Models API — New endpoints to list, create, retrieve, update, and delete device models under
/v2/admin/device-models. Learn more - Phonebooks API — New endpoints to list, create, retrieve, update, and delete phonebooks under
/v2/admin/phonebooks. Learn more - Richer ENDCALL webhook — The
ENDCALLwebhook payload now includes call-identity fields (direction,start,answeredAt,cidNum,cidName,dialedNum,uniqueId,isTransferred,isRecorded), so you can identify a call and measure its duration and ring time without correlating back to theSTARTCALLevent. Learn more
Updates
Pharmacy
- Assistant mode now requires the Gold plan — Creating, editing, or duplicating a pharmacy call campaign in Assistant mode now requires an active Gold plan. Campaigns that run in IVR mode are unaffected. Custom campaigns are Assistant-only, so they always require the Gold plan. Learn more
Updates
API
- VoIP push notifications now include a
sentAttimestamp (epoch milliseconds) so mobile clients can detect and discard stale incoming-call notifications. Learn more - V2 API schema improvements across Emergency Locations, Messaging, Number Porting, Phone Numbers, Tenants, and Tenant Notes endpoints. Learn more
Bug fixes
API
- Fixed pharmacy agent partial updates (
PATCH /v2/admin/pharmacy/agents/:id) silently resetting announcement assignments, identity playback, and the alternate ringtone when those fields were omitted from the request. Omitted fields are now left unchanged. Learn more
Bug fixes
Agent
- Fixed PioneerRx patient lookups occasionally matching patients who belong to another store. The agent now matches only patients on file at your pharmacy. Learn more
Updates
API
- Device search — The List Devices endpoint now accepts an optional
queryparameter to filter devices by name or MAC address. Learn more
New features
Agent
- Multi-profile patient matching — When more than one PioneerRx profile matches the name and date of birth a caller gives (for example, family members who share a phone number), the agent now asks for the street address on file to identify the right profile before continuing. If the address can’t narrow it to a single profile, the agent transfers the call to pharmacy staff. Learn more
Updates
Agent
- BestRx patient identification — The agent can now look up patients by name and date of birth on BestRx, using the same patient-search flow already available for PioneerRx and Liberty RX. Turn it on with Enable Search Patient Tool in Voice Settings. Learn more
Bug fixes
Agent
- Improved touch-tone prescription entry. The agent now allows a longer pause between digits, so callers reading a number off a bottle aren’t cut off, and accepts # to submit the number as soon as the caller finishes. Learn more
- Fixed the agent implying it could handle requests it can’t, such as deliveries, bringing medications out, or passing messages to staff. The agent now says it can’t help with those and offers to transfer the caller. Learn more
PharmacyAgentTelecomAPI
Agent language controls, BestRx outbound faxing, music-on-hold play order, and reporting fixes
New features
Agent
- Language controls — A new Language sub-tab in agent Settings lets you set the agent’s primary language, lock the agent to that language so it never switches, and pick additional languages the agent may switch to when a caller explicitly asks. Learn more
Pharmacy
- BestRx outbound faxing — Pharmacies using BestRx can now send outbound faxes through the VOXO platform, matching the outbound fax support already available for Liberty RX. Learn more
Updates
Agent
- Hyphenated and multi-part name matching — The agent now matches patients whose first or last name has multiple parts or a hyphen (for example, “Ana Maria” or “Garcia-Lopez”) part by part, and tries alternate spellings when the first attempt finds no match. This improves patient lookup on PioneerRx, BestRx, and Liberty RX. Learn more
- Pet patients on PioneerRx — The agent now recognizes pet (animal) profiles on PioneerRx, including pets that have no prescriptions on file, so callers asking about an animal’s medications are matched to the right profile. Learn more
Telecom
- Music on hold play order — Music on hold can now play its tracks in a fixed order or shuffle them randomly, configurable per music-on-hold list. Learn more
API
- BestRx outbound fax endpoint — A new BestRx integration endpoint sends an outbound fax from a pharmacy’s number, and the BestRx fax list and retrieval endpoints now validate their parameters. Learn more
statusDateon Liberty RX status responses — Liberty RX prescription status responses now includestatusDate, the date of the most recent status change. Learn more
Bug fixes
Agent
- Further corrected Liberty RX prescription status mapping so ready, picked up, on hold, and in-progress statuses report accurately. Learn more
Pharmacy
- Fixed distributed queue statistics returning zeros in queue reporting. Learn more
Bug fixes
Agent
- Fixed Liberty RX prescription status checks returning the wrong status or no status at all. Statuses now map correctly to in progress, ready for pickup, on hold, and picked up. Learn more
- Fixed prescription status checks failing when placed through the automated phone system. Status lookups now complete reliably on both Liberty RX and PioneerRx. Learn more
Bug fixes
Agent
- Fixed the pharmacy agent taking its turn too quickly and talking over callers. The agent now waits a moment longer for the caller to finish speaking before it responds. Learn more
- Fixed the agent occasionally applying a receiving option (such as mail or delivery) to a refill when none was offered or the caller hadn’t chosen one. The agent now only sends a receiving option when the caller actually selects one. Learn more
New features
API
- Button Layouts API — New endpoints to list, retrieve, create, update, and delete phone button layouts. Each layout defines a key range and a per-key configuration of Park, Speed Dial, and BLF buttons. Learn more
Bug fixes
Agent
- Fixed the pharmacy agent occasionally grouping a patient’s prescriptions incorrectly. Medications whose names include a strength, unit, or item code are no longer merged under the wrong drug, and prescriptions without a readable drug name are still listed instead of dropped. Learn more
Updates
Agent
- Faster greetings and transfers — The agent now speaks its greeting and transfer hand-off line directly instead of waiting on the language model, so callers hear the agent answer and route the call with less delay. Learn more
- Refill-already-pending wording — When a prescription already has a refill working through your pharmacy system, the agent now tells callers the refill “is being processed” instead of “has already been requested.” Learn more
API
drugNameon prescription status responses — BestRx, LibertyRx, and PioneerRx prescription status responses now includedrugNameso integrations can show the medication alongside the status. Learn moredobon bulk query refill — The PioneerRx bulk-query-refill endpoint accepts an optionaldobparameter, and date of birth verification is enforced when the request comes through the IVA path. Learn more
Bug fixes
Agent
- Fixed the pharmacy agent occasionally verifying a date of birth the caller hadn’t given. The agent now only verifies a date of birth after the caller provides one, and asks again if it’s missing. Learn more
- Fixed transfers failing when a destination name had extra spaces or different capitalization. Destination names now match regardless of whitespace and case. Learn more
- Fixed the agent telling callers a prescription wasn’t found on a status check when the prescription was located but its drug name field was empty. Learn more
- Fixed the agent saying “please hold” twice and trailing off with extra words after a transfer. The hand-off line now plays once and the agent stops speaking. Learn more
PharmacyAgent
Birthday campaigns, custom campaigns, one-time scheduling, agent compounding auto-transfer, and bulk refills
New features
Pharmacy
- Birthday call campaigns — A new Birthday campaign type places greeting calls to patients on their birthday. Turn on Enable Automated Birthday Calls on the new Settings tab to queue today’s birthdays from your PMS into the campaign each day. Learn more
- Custom campaigns — A new Custom campaign type covers outreach that doesn’t fit a system template. Custom campaigns always run in Assistant mode, and you can create as many as you need per location. Learn more
- Always-on or one-time scheduling — When you create a campaign, choose Always-on to keep it running during its calling hours, or One-time to schedule it for a specific date and time. Learn more
- Call Campaigns page refresh — The Outbound Campaigns page is now Call Campaigns and is organized into Report, Campaigns, and Settings tabs. The Campaigns tab lists every campaign with search, status filtering, and archive controls, and Create Campaign opens a guided wizard. Learn more
Agent
- Auto Transfer Compounding — The Tools sub-tab in agent Settings has a new Auto Transfer Compounding section. When enabled, the agent transfers compounding-related calls directly to a destination you pick instead of trying to refill them. Learn more
- Bulk refills in one request — On PioneerRx, BestRx, and LibertyRx, the agent now files a caller’s multiple refill requests in a single bulk submission and reports the outcome for each prescription in one summary, instead of repeating the refill flow per script. Learn more
Updates
Pharmacy
- Pickup Refill renamed to Pickup Reminder — The system campaign type previously called Pickup Refill is now Pickup Reminder to match the Refill Reminder naming. Existing campaigns and records carry over automatically. Learn more
Updates
Agent
- Drug pronunciation dictionary paused — The phonetic dictionary the pharmacy agent used to pronounce common prescription medications has been temporarily removed while it’s refined, so drug names are spoken with the standard text-to-speech voice for now. The agent still feeds the verified patient’s own medications into speech recognition during a session, so callers are understood reliably when they mention their medications by name. Learn more
Updates
Pharmacy
- Preview audio when linking it to special hours — When you link an audio file to special hours, a play button now appears next to the file picker so you can listen to the selected file before saving. Learn more
- Filters stay put as you move around the dashboard — Search terms now persist when you switch tabs or leave a page and come back, matching the date-range filters that already carried over. This applies across Calls, Faxes, Voicemails, IVR, Reports, Campaigns, and other list views.
Bug fixes
Agent
- Fixed the pharmacy agent getting stuck in a loop when a caller requested a refill for a prescription that wasn’t eligible. The agent now tells the caller the prescription isn’t refillable and offers to transfer the call to pharmacy staff. Learn more
PharmacyAgentAPI
Drug pronunciation dictionary, smarter medication handling, and direct campaign CSV exports
New features
Agent
- Drug pronunciation dictionary — The pharmacy agent now uses a phonetic dictionary covering common prescription medications so drug names sound natural during calls. The agent also feeds the verified patient’s own medications into speech recognition for the rest of the session, improving how reliably callers can be understood when they mention their medications by name. Learn more
Pharmacy
- All option on agent session type filter — The session list on the pharmacy agent page now includes an All option in the Type filter, so voice, web, and SMS sessions can be viewed together. All is the new default. Learn more
Updates
Agent
- Smarter handling of medication strengths and history — For PioneerRx pharmacies, the agent now groups prescriptions by drug name and keeps prior fills accessible per group, so it can identify the right script when a caller asks about a strength that’s different from the latest fill (for example, an older 3.125 mg Carvedilol versus a current 6.25 mg). Medications replaced by a newer strength are flagged so the agent doesn’t suggest renewing them. Learn more
Pharmacy
- Direct CSV download for campaign exports — Exporting outbound campaign records now downloads the CSV directly in your browser instead of emailing a link. The file is named with your location, campaign type, and date range, and timestamps are converted to your local timezone. The Date/Time column has been renamed to Timestamp across the campaign UI and CSV. Exports over 512,000 records are blocked with a clear message — narrow the date range and try again. Learn more
API
- Holiday audio plays during the holiday window — Holiday and special hours media now plays while the holiday is in effect, in addition to the prior-days notification period.
mediaFileIdremains optional on create and update holiday endpoints. Learn more timezonequery param on campaign records export — The pharmacy campaign records export endpoint accepts an optionaltimezone(IANA name) that controls how timestamps are formatted in the CSV. The endpoint now streams the CSV in the response (withContent-Disposition) instead of emailing it. Learn more
Bug fixes
API
- Fixed DELETE requests with an empty JSON body returning 500. Empty bodies are now treated as no payload and the request proceeds normally.
Updates
Agent
- Liberty RX status checks — The pharmacy agent can now look up prescription status for pharmacies on Liberty RX. Patients can ask whether a refill is ready, in progress, or has an issue, and the agent reports the current status from the pharmacy system. Learn more
PharmacyAPIAgentConnect
Default voice for audio generation, PioneerRx refill caller ID, opt-out enforcement, and reporting fixes
New features
Pharmacy
- Default voice for audio generation — The Audio files tab now has a Location Settings option (the gear icon next to the upload button) for picking a default voice gender and specific voice. The default is pre-selected wherever you generate text-to-speech audio — Audio files, Announcements, IVR media, voicemail greetings, special hours, and outbound campaigns — so staff don’t have to re-pick a voice for each new file. The voice used to generate each file also appears as a new Voice column in the Audio files table, and editing a generated file pre-selects the original voice. Learn more
Updates
Pharmacy
- Caller ID on PioneerRx refill comments — Refill requests the agent or IVR submits to PioneerRx now include the caller’s name and number in the script comment, alongside the source and timestamp, so staff can see who requested the refill without leaving Pioneer. Learn more
- Patient opt-out respected on campaigns — Outbound campaign records for patients who have opted out of voice contact are now rejected at create time, and pickup-ready or refill-ready uploads sent from PioneerRx and BestRx skip those numbers before they reach the queue. Learn more
API
- Patient consent fields — The patient consent check endpoint now returns a
shouldRepromptVoiceflag, and the upsert endpoint accepts an optionalsource(ivr,agent, ormanual) and at least one ofsmsorvoice. Campaign record creation rejects opted-out numbers with403. Learn more recordedfilter on pharmacy call stats — The pharmacy call stats endpoint accepts arecordedfilter to scope results to recorded calls. Learn moretransferredfilter on agent call stats — The pharmacy agent call stats endpoint accepts atransferredfilter. Learn more- Default voice on pharmacy agent — The pharmacy agent endpoints accept and return
defaultVoiceGenderanddefaultVoiceIdfor the location’s default audio-generation voice. voiceIdon media files — Media file create, update, and list responses includevoiceIdso you can see which voice generated a text-to-speech file.- SMS media upload response — The Connect messaging media upload endpoint now returns a flat array of URLs instead of
{ urls: [...] }. Update any integrations that read from the wrapped shape.
Bug fixes
Pharmacy
- Fixed recordings being hidden on the Calls page for internal and parked calls. Any call with a recording is now playable, regardless of disposition. Learn more
- The Transferred column on the agent sessions table now shows Yes / No instead of True / False, and the column is included in the Agent stats CSV export. Learn more
Connect
- Fixed image paste failing when sending SMS to a DID in Connect Web. Learn more
Agent
- Fixed the pharmacy agent not playing its configured greeting on WebRTC sessions (such as the in-app agent test). Web sessions now match phone-call behavior. Learn more
New features
Agent
- Outbound campaign calls — The pharmacy agent now places outbound calls for campaigns set to Assistant mode. The agent introduces the call, walks the patient through a pickup reminder, refill reminder, or contact pharmacy message, captures the patient’s response, and detects voicemail so the disposition is recorded correctly. Learn more
Updates
Pharmacy
- Liberty RX click-to-call — Pharmacies using Liberty RX can now use click-to-call to dial patients from their Liberty workstation. Activity appears in the Click to Call tab of PMS Tools. Learn more
Bug fixes
Agent
- Fixed the pharmacy agent’s SMS conversations failing when looking up prescriptions, requesting refills, or checking refill status. SMS interactions now work alongside voice calls.
New features
Agent
- Knowledge Base sections — The Knowledge Base sub-tab in agent Settings now supports multiple named information sections, each with a Title and Data field. The agent reads every section when answering patient questions, so you can capture distinct topics — policies, services, FAQs — as separate entries instead of one block of text. Learn more
Bug fixes
Agent
- Fixed prescription lookups failing when an rx number was transcribed with spaces or other non-digit characters. The agent now strips these before checking the pharmacy system, improving reliability for keypad and spoken rx entry. Learn more
Bug fixes
Connect
- Fixed remote participant video appearing zoomed in or cropped during VOXO Meet calls. Video now displays at its full aspect ratio in grid view, active speaker view, and screen-sharing layouts. Learn more
Updates
Pharmacy
- Tools sub-tab paused — The Tools sub-tab in agent Settings, including the Cal.com vaccine scheduling integration, is currently unavailable while it’s being updated. It will return in a future release. Learn more
Bug fixes
Pharmacy
- Fixed an issue in agent Refill Config where deleting a receiving option could remove the wrong row when multiple options were configured. Learn more
New features
Agent
- Vaccine appointment scheduling — The pharmacy agent can now book vaccine appointments for callers using a connected Cal.com account. Add your Cal.com API key in the new Tools sub-tab of agent Settings, and the agent will offer live availability and create the booking on your calendar without staff involvement. Learn more
Pharmacy
- Agent transfer ringtone — Voice Settings now includes an Agent Transfer Ringtone option. Pick one of ten alternate ringtones (matching the alternate ringtone slots on Yealink deskphones) so staff can hear the difference between an agent-transferred call and a regular inbound call. Learn more
- Refill loop attempts — Refill Config now lets you cap how many times the IVR retries filling a script before exiting the refill flow. Choose a value from 1 to 10 to keep callers from getting stuck in long refill loops. Learn more
Updates
Pharmacy
- Single end destination on IVR timeout and wrong-key flows — IVR timeout and wrong-key-press selectors now accept exactly one terminating destination (voicemail, extension, custom destination, queue, call group, or another IVR). You can still add media playback alongside it. Key press options have a refreshed compact layout that lets the selected destination act as the trigger to change it. Learn more
New features
Agent
- Keypad input on calls — Callers can now enter their prescription number using the touch-tone keypad during a call. The agent reads the digits as the rx number and looks up the prescription without first asking for a name and date of birth. Learn more
Bug fixes
Agent
- Fixed the agent reading off the full medication list. The agent now asks which medication the caller needs help with instead of listing every prescription on file. Learn more
Pharmacy
- Fixed an issue where new users could not be created in the Pharmacy Dashboard. Learn more
PharmacyAPITelecom
Optional Rx fields for Contact Pharmacy campaigns and click-to-call caller ID fix
Updates
Pharmacy
- Optional fields for Contact Pharmacy campaigns — When adding records to a Contact Pharmacy outbound campaign, Rx Number and Drug Name are now optional. The CSV import and manual entry forms label these fields as optional, and a row is valid as long as the patient name and phone number are filled in. Learn more
API
- Rx Number optional for Contact Pharmacy campaign records — The endpoint that adds records to a campaign now accepts requests without
rxNumberwhen the campaign type iscontactPharmacy. Other campaign types still requirerxNumber. Learn more
Bug fixes
Telecom
- Fixed click-to-call so the caller ID shown on the originator’s phone displays the destination party’s name and number, instead of the originator’s own caller ID.
New features
Pharmacy
- Audio files for special hours — When adding or editing special hours, the Audio File field now pulls from your Audio files library, and you can create a new audio file inline without leaving the form. Previously this field used the Announcements library. Learn more
Updates
API
- Holidays now reference media files — The holidays endpoints now use
mediaFileIdinstead ofannouncementIdto link audio, matching the rest of the audio model. Update any integrations that reference the old field. Learn more
Bug fixes
Pharmacy
- Fixed tool call details not expanding reliably in agent session transcripts. Learn more
- Fixed the announcement editor closing unexpectedly when interacting with the schedule date picker. Learn more
Updates
API
- Detailed validation errors — API responses for invalid requests now include a
validationErrorsarray with specific field-level details, making it easier to identify and fix malformed requests. Learn more
New features
Pharmacy
- Retry failed faxes — Outbound faxes that fail to deliver now show a Retry button, so you can re-attempt the transmission without re-creating the fax. Learn more
Updates
Pharmacy
- Liberty RX outbound fax support — Pharmacies using Liberty RX can now send outbound faxes through the VOXO platform. Learn more
Bug fixes
Agent
- Fixed an issue where the pharmacy agent could prematurely switch to Spanish during a call.
Updates
Pharmacy
- Multi-queue selection for URAC reporting — The URAC tab now supports selecting multiple entry queues at once, so you can view combined compliance data across queues in a single report. All configured entry queues are selected by default. Learn more
- Full URAC CSV export — Exporting URAC queue stats as CSV now includes all records across all pages, not just the rows currently displayed.
Updates
Pharmacy
- Custom destinations for voicemail routing — Prescriber voicemail and after-hours voicemail settings now support custom destinations in addition to voicemail boxes, giving you more flexibility when routing these calls. Learn more
Connect
- Analytics CSV export improvements — Exporting analytics data as CSV now generates proper column headers even when the dataset is empty, and ensures consistent columns across all rows.
Bug fixes
Connect
- Fixed an issue where messages were not displaying in conversations.
New features
Pharmacy
- Voicemail greeting media library — When configuring a voicemail greeting, you can now select an existing recording from your media library instead of uploading or recording a new one each time. Learn more
- Agent section details — You can now add custom context descriptions to transfer destinations, prescriber voicemail, after-hours voicemail, and location settings. The agent uses these details to make more informed decisions when handling calls. Learn more
Updates
Pharmacy
- Clickable IVR dashboard widget — The IVR analytics widget on the dashboard now links directly to the IVR configuration page. Learn more
- Consistent phone number formatting — Phone numbers are now uniformly formatted throughout the application for better readability.
Bug fixes
Telecom
- Fixed a reliability issue with call parking where rapid park/unpark actions could display incorrect call state.
Agent
- Fixed a compatibility issue with refill processing for pharmacies using Liberty RX.
Updates
Agent
- Improved call transfers — The pharmacy agent now resolves transfer destinations by name rather than number, improving transfer reliability and consistency. Learn more
Bug fixes
Agent
- Fixed the agent returning an incomplete message when a prescription status was unavailable. The agent now clearly tells the caller that the status is not available at this time.
New features
Pharmacy
- Click to Call activity log — The PMS Tools page now includes a Click to Call tab showing outbound call activity initiated by your agent or IVR, with success/fail stats and searchable event logs. Learn more
- Who is Calling activity log — A new Who is Calling tab in PMS Tools shows caller identification lookups, so you can see when inbound callers are matched to patient records. Learn more
- Custom transfer destinations — The pharmacy agent can now transfer calls to custom destinations in addition to extensions, queues, and call groups. Learn more
- Knowledge base content warnings — When saving agent settings, the system now checks the knowledge base for content that could interfere with agent behavior and displays a warning with details so you can fix issues before saving. Learn more
Updates
Pharmacy
- Expanded refill configuration — The agent’s Refill Config settings now include receiving options (pickup, mail, delivery), promise time estimates, date of birth verification, and conditional refill rules to prevent early refill requests. Learn more
Bug fixes
Connect
- Fixed text overflowing in the Copilot panel during active calls.
- Fixed an issue with exporting data from the Call Center Agents view. Learn more
New features
Pharmacy
- Queues reporting view — A new reporting view for call queues is now available in the pharmacy dashboard. Learn more
- Unified calls view — Call logs and call recordings have been combined into a single, streamlined page. Learn more
- Redesigned navigation — The sidebar has been reorganized with dedicated Calls and Reports sections, plus a new Calls reporting page with filtering, stats, and CSV export.
Connect
- Enhanced Agents view — The Call Center Agents view now includes live stats (inbound, outbound, talk time) and per-agent admin actions like coach, listen, and view transcription. Learn more
- Live call badges — Call Centers tabs now display badge counts for Live Calls and On Hold.
Updates
Pharmacy
- Dashboard reporting redesign — The reporting interface has been refreshed for a cleaner, more streamlined experience. Learn more
- URAC compliance enhancements — Added URAC compliance improvements to the pharmacy dashboard.
Bug fixes
Connect
- Fixed call center stats not filtering by the selected call center(s). Learn more
- Fixed call insights not displaying transcripts. Learn more
- Fixed an error when importing contacts. Learn more
- Fixed live calls not loading for some users.
- Fixed noise reduction not working in VOXO Meet. Learn more
Pharmacy
- Fixed tables not scrolling on smaller screens.
- Fixed incorrect timezone display.
- Fixed the “Transferred” filter not working in call records.
- Fixed Call Campaigns table not refreshing when switching locations. Learn more
- Fixed Session Details panel layout overflow on the dashboard.
Telecom
- Fixed prescription number formatting in the Best-Rx Refill IVR integration. Learn more
v1.0.0
Welcome to the new VOXO documentation site.