Skip to main content
ConnectPlatform
A second call on Android no longer drops the call you're on, and messaging campaigns load again in the admin portal

Bug fixes

Connect

  • A second incoming call no longer drops the call you’re on — On Android, a call arriving while you were already on one could take over the device’s audio and end the call in progress. A second call now plays a call-waiting tone over the live call instead of ringing, its answer button reads Accept, and tapping it ends the current call before connecting the new one. Declining or ignoring the second call leaves the call in progress connected. Learn more

Platform

  • Messaging campaigns load again — The campaign list on the 10DLC Messaging page failed to load. Campaigns are now read from the messaging registry’s campaign search endpoint. Learn more
PharmacyAgentPlatformAPI
Callers can refill more than one prescription in a single call where you enable it, the agent reads back the right prescription status on PioneerRx, and a queue save no longer duplicates its callback destinations

Updates

Pharmacy

  • Bulk refill is a setting you control — A new Enable bulk refill switch on the PMS Config tab offers callers a menu option at the start of the refill flow to refill more than one prescription in a single call. It is off by default, and when it is off callers go straight to the single-prescription refill flow. Available on PioneerRx, BestRx, and LibertyRx. Learn more

API

  • ivrBulk on the pharmacy agent — The agent payload now carries ivrBulk, and the agent edit endpoint accepts it as 1 or 0, gating the bulk refill menu option for that location. Learn more

Bug fixes

Agent

  • The agent reads back the right prescription status — On PioneerRx, a prescription’s own status and the stage it has reached in your pharmacy’s workflow are now tracked separately, so a finished workflow no longer masks what the prescription itself says. The agent reads the workflow stage back only while the prescription is still moving through the workflow. Workflow stages that mean the work is done are all recognized as complete, a stage 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. Learn more

Platform

  • Saving queue settings no longer duplicates callback destinations — Editing a call queue that has callback settings configured wrote that queue’s callback destinations twice, leaving duplicate rows behind on every save. They are now written once. Learn more
  • Autoprovision templates list only the fields you can set — Device variables the system fills from the device’s line assignments are no longer offered as editable options on a device, and the template’s empty Select= placeholder is no longer shown as a choice. Learn more

API

  • Listing devices for an account with none returns an empty list — GET /admin/devices and the per-user device list failed with a server error when the account had no devices, instead of returning an empty result. Learn more
  • Hunt list destinations carry forwarding and timeout — Destinations read for a hunt list returned only its routing destinations, leaving the forwarding and timeout destinations out of the response. All three are now included. Learn more
  • An on-call callback playback is returned as a media destination — A playback set on an on-call callback was left out of the media destinations on the response, so the audio it points at couldn’t be read back. Learn more
ConnectPlatformAPI
A call answered from the Android notification stays up past a minute, only one music on hold is the account default, and validation errors name the field that failed

Updates

API

  • Validation errors name the field that failed — A rejected request now says which field was at fault and why, as 'field/path' message, instead of a bare “Validation error”. Requests the server turns away before they reach an endpoint — malformed JSON, an unsupported content type — return their own 4xx status and message rather than a generic 500. Responses are the same in every environment, and stack traces are never sent. Learn more

Bug fixes

Connect

  • A call answered from the notification no longer drops after a minute — On Android, answering from the heads-up notification with the phone unlocked could end the call about 60 seconds in. The app now opens the call screen the same way whether the phone is locked or unlocked, and no longer bounces the audio mode a second time after the ringtone stops. Learn more

Platform

  • One music on hold is the account default — Marking a Music On Hold as the account default left the box ticked on the one that held it before, so an account could show two defaults. Setting a new default now clears the old one. Learn more

API

  • A music on hold needs at least one media file — POST and PATCH on /admin/music-on-hold accepted an empty routingDestinations list, saving a playlist with nothing to play. At least one media file destination is now required. Learn more
  • Creating a media file needs a file — POST /admin/media-files accepted a request with no file attached. The upload is now required. Learn more
  • An empty phone number search reports its total — On GET /admin/phone-numbers/search, a search matching nothing returned total where the response declares totalRecords, so the count could be dropped from the response. The empty result now carries totalRecords. Learn more
ConnectAgentAPI
A missed call on Android shows up instead of passing silently, the agent gives the next fill date once the refill is in, and call transcripts report the channel as a number

Updates

Connect

  • A missed call on Android is shown as one — On the VOXO Connect mobile app for Android, a call your device can’t connect — because the app never received it, or it couldn’t register in time — now raises a Missed Call notification naming the caller, instead of passing with nothing on screen. Learn more

Bug fixes

Connect

  • A call whose notification arrives late still rings — On Android, an incoming call was dropped when its push notification reached the device later than expected, which could silence real calls on a slow connection or where two devices share an account. Late notifications now ring the call through, and the app waits longer for the call to arrive before giving up. Learn more

Agent

  • The next fill date is given once the refill is in — Callers were told a prescription wouldn’t be filled until a later date before they had asked for the refill, and again on a status check, which read as a refusal to submit it. The agent now asks whether they’d like the refill, and reads the date back in the confirmation once it’s submitted. Prescriptions submitted together that share a date are named in one sentence. Learn more

API

  • Transcript segments carry their channel — On GET /admin/reporting/calls/{callId}, the channel on each transcript segment was declared as text while calls return it as a number, so the field could be dropped from the response. It is now typed to match what calls return. Learn more
PlatformAPIPharmacy
The audit log reads across accounts and skips saves that changed nothing, welcome emails point to VOXO Connect, and a long CSV import no longer hides the Import button

Updates

Platform

  • Welcome emails point to VOXO Connect — The invitation and welcome emails now carry App Store and Google Play buttons for VOXO Connect in place of the retired VOXO Mobility app. The mobile-login QR code, which only the legacy softphone could read, has been dropped from them. Learn more

API

  • The audit log can be read across accounts — tenantId is now optional on GET /admin/audit-log. Leave it off and the list covers every account your permissions reach; narrow it with the new tenantIds parameter. Each row carries tenantName and userEmail, so a list spanning accounts can name them, and the CSV export now has Account and User columns in place of the user ID. Learn more
  • More audit log entities to filter by — The entities parameter now also accepts call-outcome, custom-voice, queue, and theme. Learn more

Bug fixes

Platform

  • A save that changed nothing is no longer logged — Saving an item without editing any of its fields wrote an audit log entry whose history opened empty. Those saves are no longer recorded. Learn more

Pharmacy

  • The Import button stays in reach on a long CSV — In Call Campaigns → Add records → Import CSV, a file with many rows or a long list of flagged rows pushed Import past the bottom of the dialog with no way to reach it. The dialog now scrolls its contents and keeps the buttons in place. Learn more
PharmacyAgent
The agent's settings are reorganized across the dashboard, the agent tells callers when a prescription can next be filled, and the LibertyRx Who Is Calling plugin downloads from the PMS page

Updates

Pharmacy

  • The agent’s settings are reorganized — The agent’s Settings tab now has five sub-tabs: General (agent name and languages), Voice, Call Routing, Webchat, and Announcements. Business hours, transfer destinations, prescriber and after-hours voicemail, the transfer ringtone, and auto transfer compounding are gathered on Call Routing. Your store name, contact details, and address moved to a Store Information tab in Store Settings, and refill settings to a PMS Config tab on the PMS page — each saves on its own. PMS Tools in the sidebar is now PMS. Learn more
  • Settings you can only read say so — Where your account can open the agent’s settings or PMS Config but not change them, a banner says you can view them without permission to edit, rather than leaving fields that look editable. When Save Changes is unavailable, the reason now appears beneath the button — for example, “Choose a voice before saving.” Learn more
  • The LibertyRx Who Is Calling plugin downloads from the PMS page — On Liberty RX locations, the plugin download is now a card on the Who is Calling tab of the PMS page, alongside the lookup events it produces. Learn more
  • Webchat opens on every plan — The Webchat sub-tab is no longer greyed out on plans that don’t include it. It opens read-only with a note saying webchat isn’t part of your current plan, so you can see what it offers. Learn more

Agent

  • Callers hear when a prescription can next be filled — Where your pharmacy management system supplies a next fill date, the agent uses it: on a prescription that can’t be refilled yet it says when it can be, on one it can submit it says the pharmacy won’t fill it until that date before asking, and on a status check it mentions the date. Learn more

Bug fixes

Agent

  • Several requests in one breath are all handled — A caller who asked for a refill and something the agent can’t do — a delivery question, say — in the same turn could be transferred before the refill was submitted, losing it. The agent now finishes every request it can handle before handing the call off. Learn more

Pharmacy

  • The Billing tab is shown only to accounts that can use it — The Billing tab in Settings appeared for accounts with read-only billing permission, which could open it but not act on anything in it. It now appears only for accounts with full billing permission. Learn more
Connect
Send touch-tone digits from the attended transfer and merge windows in VOXO Connect

Updates

Connect

  • A keypad in the attended transfer and merge windows — While you are connected to the party you dialed for an attended transfer or a merge, a keypad button opens a dial pad, so you can send touch-tone digits to them — picking an option in an interpreter service’s menu, for example, or entering an access code — before you complete the transfer or merge. Learn more
APIPharmacyAgent
Tax is calculated on every invoice and estimate, the agent handles a household with several pets, BestRx refills go in without a last name on the profile, and list endpoints share one paging and search contract

Updates

Agent

  • A household with several pets is handled in one go — The agent no longer asks for a pet’s name. When the number a caller is calling from has one pet on it, the agent works from that profile; when the household has several, it reports their prescriptions as a single list. When the number has no pet on it, the agent asks for a prescription number read off the label. Learn more

API

  • Relation Graph endpoint — GET /destinations/graph returns the routing graph around an entity: the entity itself, and everything it routes to or is routed from, out to the number of hops you ask for. Learn more
  • List endpoints share one paging, sorting, and search contract — The Devices, Button Layouts, and Call Campaigns list endpoints now take the same paginated, page, and recordsPerPage parameters, sort with sortBy and sortDirection, and search with query. The name parameter still works where it worked before. GET /devices/search now answers with the same paginated envelope as the other list endpoints rather than a bare array, so update any code that reads that response as a plain list. Learn more

Pharmacy

  • Tax is calculated on every invoice and estimate — Tax is now applied automatically to subscriptions, scheduled plan changes, and the estimates behind the Next invoice card and the plan-change review screen, so an estimate and the invoice that follows it agree on the tax line. Learn more

Bug fixes

Agent

  • The agent doesn’t say a refill went in until it has — A caller could be told their refill had been queued or sent in before the request was actually submitted. The agent now submits the refill first and describes the outcome only from what came back. Learn more
  • BestRx refills no longer need a last name on the profile — On BestRx, a refill was refused and the caller offered a transfer to staff whenever the profile didn’t carry both a last name and a spoken date of birth — which is what happens when the caller is identified by the number they’re calling from or by a prescription number. Those refills go through now. Learn more
  • A transferred prescription isn’t mistaken for the current one — When a medication had more than one prescription on file and the transferred one carried the newer number, that record was the one reported and refilled against. The agent now works from the prescription that wasn’t transferred, so a refill goes to the script your pharmacy still fills. Learn more

Pharmacy

  • The voicemail list stops showing another location’s messages — Switching locations while the voicemail list was still loading could leave the previous location’s messages, counts, and workflow totals on screen, because the slower response overwrote the newer one. Only the response for the location you’re on is applied now. Learn more

API

  • A media file whose audio is missing returns the record instead of an error — GET /media-files/{id} answered with a server error when the stored .wav file was gone. It now returns the media file record with an empty mediaUrl. Learn more
Pharmacy
Extension pickers in the pharmacy dashboard list your extensions again

Bug fixes

Pharmacy

  • Extension lists load again — Anywhere the pharmacy dashboard asks you to pick an extension, the list came back empty and searching it found nothing. That blocked creating a user on the Users tab of Store Settings, where an admin-level role has to be linked to an extension, and it left the agent’s Voice Settings with no extensions to choose as a transfer or voicemail destination. The dashboard was asking for extensions by a filter value the API did not recognize, so no extensions were returned. Queue and call group destinations were never affected. Learn more
AgentPharmacyAPIConnect
Ask the agent about a family member on the same call, reset the agent config to VOXO's defaults, and manage discounts as part of a plan upgrade

Updates

Agent

  • Ask about someone else on the same call — A caller who also needs help for a spouse or another family member can say so mid-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. Learn more
  • A blanket “refill everything” is confirmed, not assumed — A caller who asks to refill “all of them” is now 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. Learn more

Pharmacy

  • Reset the agent config to defaults — A Reset to Defaults button on the Agent Settings tab clears every field — greeting, voice and call behavior, refill settings, store and contact details, hours, announcements, transfer and voicemail destinations, tools, and language — back to VOXO’s defaults. It fills the form only; nothing is applied until you select Save Changes, and Cancel Changes still puts the form back the way you found it. Learn more
  • Manage discounts while you change plans — When a plan or add-on change is an upgrade, the review screen offers Manage discounts, so a discount can be added to a line the subscription will carry — or an existing one staged for removal — and applied when you confirm the change. A change that includes a downgrade hides discount management. The review screen also names any discount the change ends, because dropping a product drops the discount that sits on it. Learn more
  • The Analysis tab has been removed — The Agent page now has two tabs, Conversations and Settings. The session stats and filters on the Conversations tab are unchanged. Learn more

Bug fixes

Agent

  • A date of birth heard as one long number is read correctly — Speech recognition sometimes runs a spoken date together into a single number, such as “10282” for October 2, 1982, and the lookup on that number found no profile. The agent now splits a run-together date back into month, day, and year. Learn more
  • One receiving option isn’t offered as a choice — When a pharmacy has a single receiving option configured, the agent asked the caller to choose from a list with one item on it. It now applies that option to the refill and moves on. Learn more
  • Pet profiles are found by prescription number — On PioneerRx, a pet was matched only against the number the caller was calling from, so a pet on a different number couldn’t be reached. A prescription number read off the label now finds the pet’s profile, and a caller who has already been identified as themselves can move on to a pet without starting over. Learn more
  • The agent waits out a pause instead of talking over it — Its “are you still there?” check-ins were timed from its own last word, so a caller who was still thinking or reading a label could be interrupted, and the wrap-up before hanging up read as abrupt. Check-ins now start only once both sides are quiet, the caller speaking at any point cancels the sequence, and the goodbye is friendlier and names your pharmacy. Learn more

API

  • Retrying a failed fax works again — GET /faxes/retry/{id} and the Retry button it powers failed when the stored fax number wasn’t already in E.164 form, because our carrier rejected the retry as an invalid from number. Retries now normalize both numbers the same way the initial send does. Learn more

Connect

  • The mobile app addresses the production calling service — Parts of the iOS and Android softphone built their SIP addresses against VOXO’s development domain rather than the production one, which could leave the app unreachable for inbound calls and broke blind transfer on iOS. Every path now uses the production domain. Update to version 3.12.0 of VOXO Connect to get the fix. Learn more
Connect
Android calls that arrive while the app is in the background stay connected when answered

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
API
Listing conduit tenants returns the list again instead of a server error

Bug fixes

API

  • Listing conduit tenants works again — GET /tenants/conduits answered with a server error instead of the tenant list. Every tenant in the response was checked for a healthcareVertical value 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 language and multilingualText, an array of {language, text} segments, and both are returned when you read one back. text and multilingualText are mutually exclusive — sending both is rejected. The text limit is raised from 1,000 to 5,000 characters. Learn more
  • Text-to-speech generates multi-language audio — POST /text-to-speech/voices/{id}/tts takes either text with an optional language, or segments — 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 both text and segments, or neither, is rejected. GET /text-to-speech/supported-languages lists the languages the agent supports and their codes. Learn more
  • Destination types for the agent in each language — Destinations accept PHARMACY_AGENT_<LANGUAGE> and PHARMACY_IVR_<LANGUAGE>_<REFILL|STATUS> types, so a menu key can point at the pharmacy agent in a given language, and QS1_ 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 — healthcareVertical is 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 is null on 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 priceId and discounts that one product line, and several product lines can be discounted at once. An amount discount takes no priceId and applies across the subscription, excluding products that can’t be discounted. Removing a discount takes the same priceId to name which one to remove, and without it removes the subscription-level discount. Learn more
  • Find me, follow me fields removed — The fmfm fields on extensions and checkOffline on 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 defaultPayment as one object with the Stripe payment method type, a display-ready label, and best-effort brand, last4, expMonth, expYear, bankName, accountType, and email fields, 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 branchId query parameter that narrows results to a single branch, and each extension in the response includes its branchId.

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
PharmacyAPI
Agent conversation timestamps in the pharmacy dashboard now show the correct time

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.
PharmacyAPI
Caller identification (Who is Calling) now works for pharmacies on Liberty RX

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

Bug fixes

Pharmacy

  • PioneerRx agent toggle no longer returns a payment error — Enabling or disabling the PioneerRx agent for a pharmacy no longer fails with a “Payment Required” error when the account has an older canceled subscription on file. Plan changes now apply to the active subscription.
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 export query 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
APIPlatform
Transcription End webhook and stored call transcripts now include only finalized turns

Bug fixes

API

  • Finalized transcript turns only — The TRANSCRIPTIONEND webhook 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 the transcript array 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 TRANSCRIPTIONEND webhook fires when a transcribed call’s transcription session ends, delivering the full transcript plus an insights object of AI-generated analysis (summary, sentiment, topics, and intents). Opt in by configuring a webhook with type TRANSCRIPTIONEND. 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.
Pharmacy
Fixed manual phone number entry when adding call campaign records by hand

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 ENDCALL webhook 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 the STARTCALL event. Learn more
Pharmacy
Assistant-mode pharmacy call campaigns now require the Gold plan

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
API
Pharmacy agent settings fix and API improvements

Updates

API

  • VoIP push notifications now include a sentAt timestamp (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
Agent
PioneerRx patient matching now scoped to your store

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
API
Device search in the List Devices API

Updates

API

  • Device search — The List Devices endpoint now accepts an optional query parameter to filter devices by name or MAC address. Learn more
Agent
Multi-profile patient matching, BestRx patient identification, and agent accuracy fixes

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
  • statusDate on Liberty RX status responses — Liberty RX prescription status responses now include statusDate, 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
Agent
Liberty RX prescription status check fixes

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
Agent
Pharmacy agent turn-taking and refill receiving-option fixes

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
APIAgent
Button Layouts API and a pharmacy agent prescription grouping fix

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
AgentAPI
Pharmacy agent latency and reliability improvements, and prescription status API additions

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

  • drugName on prescription status responses — BestRx, LibertyRx, and PioneerRx prescription status responses now include drugName so integrations can show the medication alongside the status. Learn more
  • dob on bulk query refill — The PioneerRx bulk-query-refill endpoint accepts an optional dob parameter, 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
Agent
Drug pronunciation dictionary paused

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
Pharmacy
Audio preview for special hours and persistent dashboard filters

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.
Agent
Pharmacy agent refill loop fix

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. mediaFileId remains optional on create and update holiday endpoints. Learn more
  • timezone query param on campaign records export — The pharmacy campaign records export endpoint accepts an optional timezone (IANA name) that controls how timestamps are formatted in the CSV. The endpoint now streams the CSV in the response (with Content-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.
Agent
Liberty RX prescription status checks for the pharmacy agent

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 shouldRepromptVoice flag, and the upsert endpoint accepts an optional source (ivr, agent, or manual) and at least one of sms or voice. Campaign record creation rejects opted-out numbers with 403. Learn more
  • recorded filter on pharmacy call stats — The pharmacy call stats endpoint accepts a recorded filter to scope results to recorded calls. Learn more
  • transferred filter on agent call stats — The pharmacy agent call stats endpoint accepts a transferred filter. Learn more
  • Default voice on pharmacy agent — The pharmacy agent endpoints accept and return defaultVoiceGender and defaultVoiceId for the location’s default audio-generation voice.
  • voiceId on media files — Media file create, update, and list responses include voiceId so 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
PharmacyAgent
Outbound campaign agent calls, Liberty RX click-to-call, and SMS agent fix

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.
Agent
Knowledge Base sections used by the pharmacy agent

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
Agent
Pharmacy agent prescription number reliability

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
Connect
VOXO Meet video display fix

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
Pharmacy
Tools sub-tab paused and refill config bug fix

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
PharmacyAgent
Vaccine scheduling, agent transfer ringtone, refill loop limits, and IVR cleanup

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
PharmacyAgent
Keypad input on agent calls and bug fixes

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 rxNumber when the campaign type is contactPharmacy. Other campaign types still require rxNumber. 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.
PharmacyAPI
Audio files for special hours and bug fixes

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 mediaFileId instead of announcementId to 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
API
Call recording channel fix

Bug fixes

API

  • Fixed an issue where toggling call recording during a queue call could select the wrong outbound channel.
API
API validation error improvements

Updates

API

  • Detailed validation errors — API responses for invalid requests now include a validationErrors array with specific field-level details, making it easier to identify and fix malformed requests. Learn more
PharmacyAgent
Fax retry, Liberty RX fax support, and agent language fix

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.
Pharmacy
URAC multi-queue selection and export improvements

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.
Telecom
Call parking fix

Bug fixes

Telecom

  • Fixed an issue with call parking where newly created parking spaces were not functioning correctly.
PharmacyConnect
Custom voicemail destinations, analytics export improvements, and messaging fix

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.
PharmacyTelecomAgent
Agent context details, voicemail media library, and bug fixes

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.
Agent
Agent transfer improvements and prescription status fix

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.
PharmacyConnect
New PMS Tools tabs, expanded agent configuration, and bug fixes

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
Connect
Connect bug fix

Bug fixes

Connect

  • Fixed an issue where inbound calls could fail to connect.
PharmacyConnectTelecom
Product updates across Connect, Pharmacy, and Telecom

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.