I wrote the standard for making websites AI-operable. Learn More

Migration · AVImark to ezyVet

You're not worried about ezyVet. You're worried about the medical histories.

Going from on-premise AVImark to cloud ezyVet is the right move for most practices that have decided to make it. The part that stalls it is a decade of SOAP notes, vaccine histories, and reminder schedules that nobody wants to be responsible for losing.

The reminder data is the sleeper risk. Financials get audited because someone notices. A broken vaccine reminder schedule fails silently for months, and by the time you notice, you have missed a season of recalls.

— extraction How the data comes out of AVImark

AVImark is an on-premise system with a local data store, which is good news: the data is physically yours and sitting on your server. Extraction runs against that store directly, supplemented by report exports for anything the tables don't express cleanly. ezyVet is cloud-hosted with a documented API, so the load side is well-defined. The work is concentrated in the middle — deciding what each AVImark field actually means after years of practice-specific use.

— what moves Object by object

What transfers to ezyVet.

Each of these gets its own record count in the assessment and its own line in the reconciliation report. Depth of history is a scope decision made with real numbers in front of you, not an assumption baked into a quote.

Clients and patients

Client records with contact details and their linked patients, including species, breed, sex, date of birth, microchip, and the multi-pet relationships that determine how reminders and invoices group.

Medical history and SOAP notes

Visit history, exam notes, diagnoses, and treatment records carried against the right patient, date, and attending veterinarian.

Vaccination history and reminders

Administered vaccines with dates, products, and lot numbers where recorded, plus the forward reminder schedule — validated separately, because this is what silently breaks.

Prescriptions and medication history

Dispensed medications, dosages, and refill history, with controlled-substance records handled to their own standard.

Client ledgers and balances

Invoices, payments, credits, and open balances reconciled against an AVImark-side control report before load.

Lab results and attachments

In-house and reference lab results, imaging attachments, consent forms, and scanned documents remapped to the correct patient rather than dropped into a shared folder.

Inventory and price list

Items, service codes, and pricing mapped to ezyVet's product structure. This is usually the right moment to retire the codes nobody has used since 2019 — a decision made during mapping, with the usage data in front of you.

— the honest part What does not survive this migration

Written down before you spend anything, because the alternative is finding out in week six. This list is specific to AVImark to ezyVet; the assessment turns it into your list, with record counts attached.

— AVImark's screen layouts, custom entry templates, and practice-specific note templates. Content moves; the interface does not. These get rebuilt in ezyVet and that is separately scoped.

— Free-text notes recover as text, not as ezyVet's structured clinical fields. Where AVImark held something as a note that ezyVet expects as data, it lands as a note. The assessment tells you how much of your history falls into that category.

— Appointment history beyond what your practice actually retained — many AVImark installations prune it, and you cannot migrate what was never kept.

— Integrations with in-house lab equipment, imaging modalities, and payment terminals. Those get re-established on the ezyVet side; the historical results migrate, the live connections are rebuilt.

— AVImark internal record IDs. ezyVet issues its own. Any external system keyed to an AVImark ID needs the mapping table, which I produce and hand to you.

— quirks The parts that decide whether this goes well

What actually goes wrong on this pair.

None of this is in either vendor's documentation. It is the category of thing that looks fine in a test load and produces a wrong number in month two, which is why the process puts a full sandbox load and a reconciliation you sign in front of any production cutover.

01

Reminders are computed, not stored — until they are

Some reminder due dates live as stored values, some are derived from the last administration plus a protocol interval, and practices routinely have both in the same database after years of use. Migrating one as the other produces a reminder schedule that looks fine and is wrong. The reminder set is validated as its own step, against a date-range spot check you run yourself.

02

Deceased and inactive patients

How these are flagged in AVImark varies by practice convention. Get it wrong and you either send reminders for deceased patients — which is the worst possible email your practice can send — or lose access to history you are legally required to retain. Flag mapping is signed off before the load.

03

One client, several households

Divorces, moves, and shared custody of animals produce duplicate and split client records over ten years. Whether to merge is a business decision made during mapping with a duplicate report in hand, not something a script should decide silently.

04

Controlled substance logs

These carry retention obligations independent of the migration. They are handled explicitly and documented, rather than being swept along with general prescription history.

— process Same six steps, every pair

Nothing touches production until you've signed off.

01 — 02

Assessment, then mapping

A read-only audit of your AVImark instance produces record counts, a risk register, and a fixed quote. Then a field-by-field mapping document you sign before any code runs.

03 — 04

Test load, then validation

The complete migration runs into a ezyVet sandbox — not a sample. You spot-check records you choose, and sign a written reconciliation. If the counts don't tie, we don't cut over.

05 — 06

Cutover, then warranty

Scheduled around your calendar with the rollback plan written in advance, followed by 30 days of included corrections for the things that only surface in real use.

The full six-step process, written out →

— pricing Where this pair usually lands

What a AVImark to ezyVet migration costs.

A single-location practice usually lands in Standard Migration. Multi-location groups, practices running several AVImark installations, or anything carrying more than five years of medical history generally land in Complex. The assessment is what makes a fixed migration price possible, and its fee is credited toward the migration if you proceed.

Tier

Scope

Price

Migration Assessment

A read-only audit of your source system.

$1,500 – $2,500

Standard Migration

One source system to one destination.

$6,500 – $15,000

Complex / Multi-Entity Migration

Multiple locations, systems, or long history.

$18,000 – $40,000

— FAQ AVImark to ezyVet

Questions specific to this pair.

Our AVImark server is old. Is that a problem?

It is usually an advantage. On-premise means the data is physically in your possession and nobody can switch it off mid-migration. The first step of the assessment is taking a full copy of that server's data so the rest of the work happens against a snapshot, never against your live system.

Can ezyVet import this themselves?

ezyVet's onboarding team will load data provided in their format, and they are good at it. Getting it out of AVImark, interpreting a decade of practice-specific field use, cleaning it, and reconciling the result is the part that sits outside their scope. I hand them validated files in their format.

How much history should we bring?

Bring all of the medical history — it is the clinical record and there are retention obligations attached. Financial transaction depth is a genuine cost tradeoff and most practices carry two to three years plus current balances. The assessment gives you the record counts so that decision is made against real numbers.

What about the practice being open during cutover?

Cutover is scheduled around your closed hours, usually a weekend. Nothing touches production until the sandbox load is validated and you have signed the reconciliation report. The rollback plan is written before the cutover starts.

— start here Step 1 of the process

Request a AVImark to ezyVet assessment.

The assessment is the read-only audit — what data exists, what is extractable, what will be lost, and a fixed-price quote for the migration itself. It is priced at $1,500 – $2,500 depending on scope, fixed before anything starts, and the report is yours whether or not you go further.

Tell me what you're moving. I read every one of these personally and reply within one business day, usually with a couple of specific questions about your source system — the answers change the price, so it's worth asking early.

Nothing is committed by this form. No payment, no contract, no scheduling sequence. It starts a conversation.

If your destination vendor can handle it, I'll say so. Some conversions genuinely don't need an independent migration.

I respond personally within 1 business day. Your details are used to answer you and nothing else — no list, no sequence.

— other pairs Same process, same industry

Other veterinary migrations written up.

Standard – Complex

Cornerstone → ezyVet

In-house lab results and their linkage.

Every pair

A different system

Twenty-odd pairs are written up across seven industries — and the written ones are not the limit of the work. Search the full list, or just ask.

AVImark and ezyVet are trademarks of their respective owners. This page describes independent data migration work involving those systems and does not imply any affiliation with, partnership with, or endorsement by either vendor.

Before you give notice on AVImark

Find out what's actually recoverable.

The most expensive mistake in this category is losing source-system access before the extraction is done. The assessment is read-only, fixed-price, and yours to keep either way.

I respond personally within 1 business day. No pitch — just a real conversation.