AI voice agents for after-hours vet triage calls never diagnose a pet. Every caller first hears the clinic's fixed emergency line, telling them to call their nearest emergency vet now. Emergencies then go to the on-call vet by transfer, poison exposures get the clinic's approved poison line, and everything else is written up for the morning team.
Key Takeaways
- Every caller hears the fixed emergency-vet line before the agent asks anything.
- The agent never diagnoses or advises, not even "keep an eye on her".
- The on-call vet comes from the clinic's own rota, which always returns a number.
This post is part of our guide to AI voice agents for veterinary clinics. The guide's section "After-hours calls and pet emergencies" puts the rule in one line: "The after-hours call never diagnoses: it plays the clinic's approved emergency line as fixed text, then puts the owner through to the on-call vet or points them to the emergency clinic." Here is that call in full, run in Dograh, an open-source, self-hostable voice agent platform.
Why the emergency line plays before anything else
The emergency line goes first because the agent cannot be trusted to recognise every emergency, so it never has to. Write the line with your vets. For example: "If your pet is having an emergency, please call your nearest emergency vet now." Never tell an owner to call 911 about a pet. If the clinic sends owners to one emergency hospital, name it in the same line, so the owner knows where to go before anything else is said.
Put that line in the after-hours agent's Greeting Text, the opening Dograh speaks word for word as the call connects. Point the clinic's after-hours number at this agent. Then the line plays to every caller, before the agent asks a single question.
The order matters because of how a call moves inside the agent. Moving to the emergency part of the flow is the language model reading a written condition, such as the clinic's list of emergency signs, and a model can misread that. An owner who says "she's just a bit quiet" about a cat that is in real trouble may not trigger it. With the line in the greeting, that owner has already heard where to go, and has the emergency clinic's name if the on-call vet does not answer later.

Three outcomes for every after-hours vet triage call
Every after-hours call ends in one of three places: the on-call vet for an emergency, the clinic's approved poison line for a poison exposure, or a written request for the morning team.
The clinic writes the emergency list, such as trouble breathing, collapse, heavy bleeding, a seizure, or a cat straining to pee. Tell the agent in the prompt to ask only the questions on that list and nothing else. It never digs into how bad things are, and it never offers monitoring or home-care advice. "Watch her overnight and call back if she vomits" is advice, so the agent never says it.
The reason is the vet's role in law. The federal definition of a veterinarian-client-patient relationship requires "sufficient knowledge of the animal(s) by the veterinarian to initiate at least a general or preliminary diagnosis". A voice agent knows no animal. State veterinary practice acts add their own rules on top. This is general information, not legal advice; confirm your position with counsel.
Each outcome is a pathway in the workflow. The emergency pathway plays the emergency line again as Transition Speech, the fixed text or recorded clip Dograh speaks when the call moves along that pathway. On speech-to-speech models, text Transition Speech is skipped and a text greeting is reworded by the model, so use a cascade agent, or recorded clips, for these lines.
Emergencies: the on-call vet, then the fallback
On the emergency path the agent writes the details down, then puts the owner through to the vet on call. Transfer Call works on Twilio, Telnyx and Asterisk ARI. It passes no summary by default; on Twilio it can play a short spoken introduction to both people. Write the details to your system with an HTTP API tool before the transfer. Send the owner's name, the pet and what the owner said, so the vet reads them on screen.
The Transfer Call tool's Dynamic HTTP Resolver asks the clinic's system who is on call and dials that number. Have the system always return a number, falling back to a fixed one when no one is on the rota. If the resolver fails, times out or returns no number, the transfer fails and the agent stays with the caller, which is why the fallback lives in the clinic's system. The tool can also play a short fixed message before transferring, such as "Connecting you to the vet on call now."
The Transfer Timeout is 30 seconds by default. If nobody answers, the caller stays with the agent; tell it in the prompt to offer a callback. The owner has already heard the emergency line, so tell the agent to repeat it, name the emergency clinic again and write the callback request to your system. Our post on after-hours coverage when on-call doesn't answer covers that moment for other businesses.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Poison calls: the clinic's approved line
A poison exposure gets one fixed instruction: the poison line your vets approve, with its own fee wording.
These calls are common. ASPCA says its Animal Poison Control staff helped more than 334,000 animals with toxic substance exposures in 2025. A clinic that answers after hours will hear about chocolate, lilies, rat bait and human medicines.
Two lines are widely used. The ASPCA Animal Poison Control Center is available 24 hours a day, 365 days a year, and says "A consultation fee may apply." The Pet Poison Helpline is available 24/7 and charges "a one-time consultation fee of $99 per incident", which also covers follow-up consultations.
Name only the line your vets approve, with its number, as Transition Speech or a recorded clip on the poison pathway. The agent never says whether something is toxic or how much is dangerous, and never suggests making the pet vomit. If the pet is already unwell, the emergency line applies too.
Everything else waits for the morning
Calls that are not urgent are written up for the morning team, so nothing is lost and nothing is decided overnight.
An owner asking about tomorrow's visit, a bill or a refill gets their request taken down and written to the clinic's system with an HTTP API tool. Refills follow the same rule at night as by day, and AI voice agents for vet prescription refill requests covers that request, which waits for the vet. A medicine reaction is not a refill, so it goes down the emergency path.
Owners of pets that had surgery that day get the same emergency line as everyone else. The clinic's daytime check-in calls are covered in AI voice agents for post-surgery follow-up calls in vet clinics. After every call, a Webhook node can send the outcome and the details to your system, and it retries on a temporary failure.
Testing the after-hours agent before the first night
Test the after-hours agent on a real phone, at the hours it will run, before any owner hears it.
Browser test calls cannot transfer, so test Transfer Call over a real phone line. Call with an empty rota and check that the clinic's system returns the fallback number. Let the on-call phone ring out and listen to what the agent says next. Most phone calls reach the agent as 8 kHz audio, while a browser test runs at 16 kHz, so check that the emergency signs on the list are heard correctly over the phone.
Once live, run QA on a random 5 to 10% sample of calls, and read every call that took the emergency or poison path. Self-hosting keeps owner details, recordings and transcripts on servers the clinic runs. Dograh is the orchestration layer: it runs the call flow, tools and telephony, and the speech and language models are a separate layer you choose. The call audio stays in-house only when the speech and language models run on your own servers too. Self-hosted Dograh has no per-minute platform fee (servers, model keys and phone minutes still cost); Dograh Cloud has a 1¢-a-minute platform fee.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Glossary
- Greeting Text
- The opening line Dograh speaks word for word when a call connects. On an after-hours line it carries the emergency-vet line, so every caller hears it before any question.
- Transition Speech
- Fixed text or a recorded clip Dograh plays when a call moves along a pathway. It repeats the emergency or poison line exactly; text versions do not play on speech-to-speech models.
- Dynamic HTTP Resolver
- A Transfer Call setting that asks your own system, at the moment of transfer, which number to dial. A clinic uses it to reach the vet on its on-call rota, with the fallback number kept in the clinic's system.
- Veterinarian-client-patient relationship (VCPR)
- The federal standard in 21 CFR 530.3(i) for when a vet knows an animal well enough to diagnose and treat it. A voice agent has no such relationship, so it never diagnoses or advises.

