Migrate from Microsoft Visio to draw.io: what the move involves
Most of a Visio to draw.io move is file conversion and checking, and the effort depends mainly on how large the library is and how much embedded content it holds. If a renewal, a licensing change or a data residency requirement is pushing you off Visio, plan for an inventory, a conversion pass and a review of each diagram rather than a single bulk action. Draw.io imports .vsdx files directly, converts .vsd and .vst files in the browser, and imports .vssx and .vss stencils as shape libraries, so most diagrams can be brought across without rebuilding them from scratch.
The work is usually shared. Diagram owners know which files matter and can confirm whether a diagram is still in use. An IT or platform team handles the self-hosted draw.io deployment, the storage location and access control for the converted library. Where the library is large, or where diagrams carry interactive behavior or embedded images, an outside implementer can run the conversion and document the results. Whoever does the work, get the scope and the acceptance checks agreed in writing before the first file is converted.
The main risk is that the converted diagram looks or behaves differently from the original. draw.io warns that Visio imports may not match the source exactly, may lose interactive behavior, and do not bring in embedded EMF images. Those gaps are the ones to plan for: sample a representative set of diagrams from each stencil family, compare layout, text and connectors against the Visio originals, and log every diagram that needs manual rework or replacement of an image. Confirm which Visio versions your legacy files were saved in, since the import documentation covers .vsdx and .vsd but not Visio 2003 to 2010 XML, so older .vdx files may need to be resaved in Visio 2013 or later first. Keep the original Visio files archived until the converted set has passed review, and confirm retention rules with your records team.
Which Visio features move cleanly to draw.io
This table maps common Visio file types and features to their draw.io equivalents and marks each as clean, needs rework or gap. Read the status column before scheduling a batch conversion, because rework and gap items decide which diagrams need manual rebuilding. The main takeaway is that .vsdx files and stencils move with the least friction, while interactive behavior and embedded EMF images need checking on every diagram.
| Visio feature | draw.io result | Status |
|---|---|---|
| .vsdx diagrams | Imported directly into draw.io | Clean, verify layout |
| .vsd diagrams and .vst templates | Converted in the browser, so shapes and spacing may shift | Needs rework |
| .vdx XML files | Not imported directly. Resave in Visio 2013 or later as .vsdx first | Needs rework |
| Visio 2003 to 2010 XML | Not imported. Resave in a later Visio version before import | Gap |
| .vssx and .vss stencils | Imported as draw.io shape libraries | Clean |
| Interactive behavior, such as hyperlinks and shape actions | May be lost on import. Rebuild links and actions by hand | Gap |
| Embedded EMF images | Not imported. Replace with PNG or SVG exports or redraw the shape | Gap |
| Shape data fields | Confirm on a test file whether values survive, then rebuild as labels if they do not | Needs rework |
| LibreOffice Draw files | Not imported. Export to a supported format or redraw | Gap |
How to sequence the Visio to draw.io migration
This sequence moves Visio diagrams and stencils to draw.io in controlled stages, so each library is inventoried, tested and verified before anyone stops relying on Visio. It ends with licenses released only after links and sharing have been confirmed on the new side.
Inventory every Visio file and stencil
The diagram owner or IT administrator searches desktops, OneDrive, SharePoint sites and shared network folders for .vsdx, .vsd, .vdx, .vssx, .vss and .vst files. Record each file's location, owner, last modified date, whether it is still used, and whether it depends on custom stencils. Flag .vdx files and any diagrams with embedded EMF images, because draw.io does not import EMF images and .vdx files need resaving first. The output is a signed-off inventory list that marks each item as migrate, archive or retire.
Prepare files for import
Resave any .vdx files in Visio 2013 or later so they open as .vsdx, and convert or retain older .vsd files as needed. Export stencils you rely on as .vssx or .vss files so they can be loaded as draw.io shape libraries. Note which images or pasted objects must be rebuilt by hand. The output is a folder of import-ready files, with a short list of diagrams that need manual rebuilding.
Pilot on a representative subset
Choose a small set of diagrams that covers the main risks: a simple flowchart, a diagram with custom stencils, a diagram with hyperlinks or interactive behavior, and one that contains an embedded image. Import each into draw.io, then compare it side by side with the Visio original for shape placement, text wrapping, connector routing, fonts and colors. Record the rendering results and any lost interactivity in a checklist. The output is a pilot checklist that sets which diagram types can migrate directly and which need rework.
Build the shared stencil library in draw.io
Load the stencils that the pilot confirmed as necessary as custom shape libraries, then give the library a clear name and store it where the team can reach it. Test that the shapes place and resize correctly in a sample diagram. Agree on who maintains the library and how changes are approved. The output is a stencil library in draw.io that the pilot team has used on real diagrams.
Run both tools in parallel
Migrate the remaining diagrams in batches while Visio stays installed and licensed. Teams open each migrated diagram in draw.io, edit it where needed, and compare it with the original when a difference matters, such as a regulatory or customer-facing diagram. Log every discrepancy and its fix in the inventory. Confirm that the save location chosen for each diagram, whether a device or connected storage, meets the organization's data handling rules. The output is a migration log that shows each diagram as migrated, rebuilt or deferred.
Cut over sharing and links
Update internal wiki pages, document links, SharePoint and OneDrive references, and presentations that point to the old Visio files. Replace or redirect links to the migrated diagrams and confirm that each one opens correctly for its audience. Where the team uses integrations such as Confluence, GitLab or a wiki, check that the draw.io embed or link works for those users. The output is a link check report with no broken references for the in-scope diagrams, and an agreed date after which the Visio originals are read-only.
Decommission Visio licenses
Once the cutover report is signed off and the archive of original files is stored under retention rules, remove Visio installations and reclaim or cancel licenses. Confirm with Microsoft's lifecycle pages and your license agreement what your remaining rights are, and ask your licensing partner to confirm the end date for any subscription. Keep the migration log and inventory as evidence of what moved and what was retired. The output is a closed inventory, a license removal record and an archive index.
Which files, libraries and links need to move
A Visio move touches more than the diagrams themselves. The files, the stencil libraries and the storage or wiki links each need a decision before the first import, because draw.io handles each one differently. Work through these cards in order so nothing is left behind on a retired license or share.
Diagram files to collect
Start with .vsdx, .vsd and .vst files from desktops, OneDrive, SharePoint and network shares. draw.io imports .vsdx directly and converts .vsd and .vst in the browser, but it does not import Visio 2003 to 2010 XML or .vdx files. Old .vdx files should be opened and resaved in Visio 2013 or later before import. Keep a copy of the originals in a separate archive folder.
Stencils as custom libraries
Visio stencils with .vssx and .vss extensions import as shape libraries in draw.io, so teams keep their custom shapes without rebuilding them. Check each stencil against the diagrams that use it, because a shape renamed or moved in the library will not match older drawings. Store the library files in a shared, version-controlled location so every editor loads the same set.
Where diagrams are saved
draw.io saves diagrams where the user chooses, either on the device or in a connected storage service, and not on draw.io's servers. Real-time collaboration and hosted export process diagrams temporarily on Cloudflare-run servers, so teams with strict residency rules should use the self-hosted Docker image or desktop app and confirm which features they use.
Storage and wiki integrations
draw.io lists integrations with Google Drive, OneDrive and SharePoint, GitHub, GitLab, Nextcloud, ownCloud, ONLYOFFICE, Redmine, XWiki, Wiki.js, BookStack and MediaWiki. Where Visio files already sit in SharePoint or OneDrive, map each library to the matching integration and confirm that permissions carry over. Nextcloud and GitLab are the natural choices for self-hosted storage.
Confluence through the Atlassian app
draw.io apps for Confluence and Jira are sold through the Atlassian Marketplace. Diagrams embedded in Confluence pages are a common Visio dependency, so inventory the pages that link to Visio attachments. Confirm the app's license terms and hosting model with the vendor before rollout, since the app is separate from the open-source core.
Export gaps in the Docker image
The jgraph/drawio Docker image has no export server, so PDF export uses the browser's print dialog unless an export server is configured. No diagram data leaves the server during an export. Teams that rely on PDF or image exports from many diagrams should test the print workflow early, and decide whether to run an export server inside their own network.
How the migration differs by starting point
A small team with a few diagrams spread across laptops usually has the simplest job, but the inventory is the hardest part because nobody has a complete list. Start by asking each person to search their drives for .vsdx, .vsd, .vdx and .vst files, and for any stencil files they have added. Most of the rework is cosmetic: fonts, spacing and connector routing can shift, so a short review of each diagram is normally enough.
- Inventory by asking: Collect file lists from each person rather than assuming a shared folder is complete.
- Convert older files first: Resave any .vdx file in Visio 2013 or later before import, because draw.io does not import the Visio 2003 to 2010 XML format.
- Import stencils as libraries: Load .vssx and .vss stencils as draw.io custom libraries so shapes stay available to the team.
- Review each diagram once: Open every imported file and compare it with the original, focusing on labels, containers and connectors.
- Pick one save location: Decide where files live, such as a shared drive or a connected storage service, before people start editing.
Check each diagram against its original side by side, and confirm that every stencil shape you use is present in the imported library before retiring the Visio file.
A large library on SharePoint is usually a governance problem before it is a conversion problem. The inventory should come from the site, library and version history, including folders that few people open and diagrams that are referenced from wiki pages or process documents. Stencils are often shared across many diagrams, so they should be migrated once and reused, and embedded images need a separate plan because draw.io does not import embedded EMF images.
- Inventory by site and library: List every site, library and folder, and record which diagrams link to other documents.
- Plan for embedded EMF images: Find diagrams that contain EMF pictures and decide whether to redraw them, replace them with exported PNG or SVG images, or keep the original file.
- Migrate stencils once: Convert shared stencil files into draw.io libraries and map each old shape to its new equivalent.
- Test interactivity separately: Hyperlinks, shape data and behaviors built in Visio may not survive, so list them for manual rebuilding.
- Sample before bulk import: Run a pilot on a representative set of files from each department before importing the rest.
After each batch, spot check diagrams with images, links and data fields, and confirm with the owners of the source files that their content still reads correctly. Ask the draw.io integration options available for your storage platform so the files stay in a governed location.
An air-gapped network changes where the tools come from and how files move. Because nothing can reach the public internet, draw.io Desktop or the self-hosted Docker image must be installed from media you have verified internally. The inventory is done inside the closed network, and every transfer of Visio files in or out should follow your existing media controls. The Docker image has no export server, so no diagram data leaves the server during export, which suits a closed environment.
- Stage installers internally: Bring the draw.io Desktop installer or the official jgraph/drawio Docker image through your approved transfer process and record its version.
- Keep conversion local: Import Visio files on the desktop or internal server so no file leaves the network for conversion.
- Check PDF export: Without an export server, PDF export uses the browser print dialog, so test that path with the output formats your reviewers need.
- Record the transfer chain: Log which Visio files were moved in and which diagrams were produced, to support your own controls.
- Confirm the source of libraries: Check that any stencil or template libraries you import are approved for internal use, since they have separate terms from the Apache-licensed code.
Before relying on the result, test the imported diagrams on the same browser and desktop build your staff will use inside the network, and confirm with your security team which transfer and logging controls apply.
Checking rendering, interactivity and embedded EMF images after import
Treat every imported diagram as unverified until a reviewer has compared it with the original Visio file. draw.io warns that Visio imports may look different from the original, may lose interactive behavior and do not import embedded EMF images, so the check is not optional. Open the original .vsdx in Visio and the imported draw.io file side by side, page by page. Look for shapes that moved, connectors that re-routed to different anchor points, text that wrapped or shifted inside its shape, and fonts that were substituted. Record each difference in a simple log with the page name, the shape or area, and the observed change, so the reviewer can tell a cosmetic shift from a broken diagram.
Next, test everything that depended on Visio behavior. Click every hyperlink, shape-level action and page link in the original, then check whether the same element works in draw.io. Shape data fields and custom properties may not carry across, so confirm any that your team uses for ownership, status or version tracking. Where interactivity was lost, decide per diagram whether to rebuild the link in draw.io, move it into a linked index page, or retire it. For embedded EMF images, do not assume the picture survived. Either redraw the content as native draw.io shapes, which keeps it editable, or insert the image as a linked file from storage your organization controls, and note in the log which method you chose.
Sign-off should come from two people: the diagram author, who confirms the content and logic are correct, and a second reviewer who was not involved in the migration, who checks the log and spot-tests a sample. Keep the original Visio file, the imported file and the signed log together until the owning team accepts the result. Agree in advance what counts as a blocker, such as a missing link on a process map or a lost EMF image in a network diagram, and what can ship with a documented cosmetic difference. Ask your DeployOpen contact to confirm the review steps and log format as part of the written scope, so the acceptance criteria are known before the migration starts.
What drives cost and duration of the migration
This table lists the factors that set the effort of a Visio to draw.io move, why each one adds work, and how to reduce it. Read it before asking for a quote, because the scope of your library matters more than the license count. Most one-time costs come from checking and rebuilding diagrams, while hosting is the main recurring item.
| Driver | Why it changes effort | How to keep it down |
|---|---|---|
| Library size and file count | Every .vsdx, .vsd or .vst file needs an import check, and the number of files drives review time more than file size does. | Inventory files by folder and owner, archive obsolete diagrams, and migrate only what is still referenced. |
| Diagrams with embedded EMF images | draw.io does not import embedded EMF images, so each affected diagram needs the picture rebuilt or re-inserted by hand. | Find EMF content first, replace pictures with native shapes or exported PNG or SVG where that is acceptable, and list the exceptions in the quote. |
| Diagrams with interactive behavior | Hyperlinks, shape data, and other interactive behavior may not survive import, so each diagram that relies on them needs a manual test. | Mark diagrams that use interactivity, decide which behavior must be kept, and rebuild only those. |
| Stencils to rebuild as custom libraries | draw.io imports .vssx and .vss stencils as shape libraries, but stencils with custom masters or unusual structure still need checking and naming. | Consolidate duplicate stencils, remove unused shapes, and confirm which stencil versions your teams actually use. |
| Resaving old .vdx files | Files saved as .vdx must be opened and resaved in Visio 2013 or later before they can be imported reliably, which requires a Visio license or access to one. | Batch-resave old files in one Visio session, and confirm with your Visio admin who will do it before the project starts. |
| Docker image hosting | Running the Docker image on your own server requires container hosting, TLS, access control and updates, which recur as long as the service runs. | Reuse an existing container platform, and ask for hosting, patching and backup responsibilities to be written into the scope. |
| Training and adoption | Users must learn the draw.io editor, the library model and where files are stored, and this is mostly one-time effort per team. | Use short guides for each team, pilot with one group, and schedule sessions after the first conversions are reviewed. |
| PDF export server | The Docker image has no export server, so PDF export uses the browser print dialog unless an export server is configured, and an export server adds hosting and maintenance. | Confirm whether PDF with embedded diagrams is required. If it is, ask for the export server as a separate line in the quote. |
Questions buyers ask before moving from Visio to draw.io
How long does a Visio to draw.io migration take?
No duration is fixed by a researched source, so the honest answer depends on how many files you have and how complex they are. The work scales with the number of diagrams, the number of stencils that must be rebuilt as libraries, how many diagrams depend on interactive behavior or embedded images, and how many owners must review their own files. Start with an inventory of .vsdx, .vsd, .vst and stencil files, then time a pilot batch of ten or so representative diagrams. Ask any outside provider to state the duration in the written scope before work starts.
Can our team migrate Visio diagrams without outside help?
Yes, many teams can do the file conversion themselves, because draw.io imports .vsdx files directly and converts .vsd and .vst files in the browser. The work that usually needs more time is rebuilding stencils as custom libraries, checking each diagram after import, and deciding how to store and share the results. Outside help is most useful when the diagram estate is large, when hosting and access controls must be set up, or when you need documented evidence for an assessment. Fixed-scope engagements have the scope and deliverables agreed in writing before work starts.
What do diagram owners need to do during the migration?
Diagram owners are the people who can judge whether an imported diagram still means what it meant in Visio. Each owner should confirm shape placement, labels, connectors, layers and any hyperlinks or interactive behavior, because draw.io warns that Visio imports may look different and may lose interactive behavior. Owners should also list which diagrams they still use, retire the rest, and approve the final version before the original Visio file is archived. Agree this review step and its sign-off in the project plan so that no diagram is marked finished without an owner's check.
Do .vdx files and embedded EMF images convert to draw.io?
Not reliably, so plan for both as exceptions. draw.io's import list covers .vsdx, .vsd and .vst files, Visio stencils, and Gliffy and Lucidchart diagrams, but it does not import Visio 2003 to 2010 XML or LibreOffice Draw files. For .vdx files, resave them in Visio 2013 or later as .vsdx first, then import. draw.io also states that embedded EMF images are not imported, so diagrams that rely on them need the images replaced with native shapes or exported PNG or SVG images placed by hand. Inventory these files early, because they are the most common source of rework.
How do Visio licensing and draw.io hosting compare on cost drivers?
Visio costs recur or repeat by design: Visio Plan 1 and Plan 2 are subscriptions, while Visio LTSC 2024 is a one-time purchase under Microsoft's Fixed Lifecycle Policy with mainstream support listed until October 2029, according to Microsoft's lifecycle pages. draw.io's source code is Apache License 2.0, so it carries no license fee. Your draw.io costs are the server or desktop deployment, storage, conversion and review effort, staff time for administration, and any support retainer you choose. Ask any provider to split a quote into one-time migration work and recurring hosting and support, and compare that against your current license count.
Where are diagrams stored after moving to draw.io?
Diagrams are stored where you choose, which is the point of the self-hosted option. draw.io's privacy policy says diagrams are saved on the device or in a connected storage service and never on draw.io's servers, but it also notes that hosted export and real-time collaboration process diagrams temporarily on servers run by Cloudflare. If that matters for your data residency rules, use the self-hosted Docker image or draw.io Desktop, and confirm with your security team which features your deployment uses. The Docker image has no export server, so PDF export falls back to the browser's print dialog unless you configure one.
How do we confirm the imported diagrams are correct?
Check every imported diagram against its Visio original using a written checklist rather than a quick visual scan. Compare page count, shape count, text and labels, connector routing, layer visibility, hyperlinks, and any data or interactive behavior, and record which diagrams passed. Test rendering in the browser and in the desktop app you will use, and confirm that custom libraries load for every user. Keep the Visio originals until owners sign off, and store the checklist results as migration evidence. This record also helps an independent auditor, since DeployOpen prepares evidence but does not issue audit reports.
Which draw.io version should we deploy for the migration?
Choose the current release at the time you deploy, and confirm it on the official releases page before you start. draw.io's Docker image is based on Tomcat and is kept up to date with the production app, and the project publishes new versions frequently. Pin the version you tested in a staging environment, record it in your change log, and repeat the import checks after every upgrade. Ask your provider how upgrades will be tested and documented, and whether the work is covered by a retainer.
What usually goes wrong in a Visio to draw.io move
Most failed migrations break in ways nobody sees until a diagram is reviewed or a link is clicked. The risks below share one pattern: the import completes, the file opens, and something important is missing or different. Each prevention step is a check you can run before the old Visio files are retired.
Unsupported formats left behind
draw.io does not import Visio 2003 to 2010 XML files or LibreOffice Draw files. Older .vdx files also need attention, so resave them in Visio 2013 or later to convert them to .vsdx before the move. Inventory every file extension in the source folders and list anything draw.io cannot open. Files left on the old server will not be flagged as failed migrations.
Silent layout drift
draw.io warns that imported Visio diagrams may look different from the original. Connector routing, text fit, fonts and shape sizing can shift without any error. Compare each imported diagram with its Visio original at the same zoom level. Keep a sample of pages for side-by-side review by the diagram owners before the source files are archived.
Lost interactive behavior
draw.io warns that Visio imports may lose interactive behavior. Diagrams used as clickable navigation, dashboards or process maps may open correctly and still stop working as intended. List every diagram that relies on clickable actions before the move. Rebuild those behaviors in draw.io with hyperlinks or layers, then test each path with the people who use the diagram.
Missing EMF images
draw.io does not import embedded EMF images, so any Visio page that uses an Enhanced Metafile will show a gap after import. These images are common in diagrams that include pasted screenshots or logos from other tools. Search the source files for embedded EMF images before conversion. Replace each one with an SVG or PNG exported from the original, and confirm that size and position match.
Broken links after cutover
Visio files are often linked from wiki pages, SharePoint sites, OneDrive folders and file shares. After cutover, those paths point to files that no longer change or no longer exist. Build a list of every page and document that links to a Visio file and update each link to the new draw.io location. Keep a short notice at the old path so readers know where the diagram moved.
Unowned stencils and templates
Visio stencils import as shape libraries, but many stencil sets come from vendors or third parties with their own terms. draw.io's source code is Apache 2.0, while icon sets, stencil libraries and templates carry separate terms. Record the origin and license of each stencil and template before import. Keep only the libraries your organization has the right to use internally.
How DeployOpen scopes and runs a Visio to draw.io migration
DeployOpen plans and implements self-hosted draw.io inside your own infrastructure, then works through your Visio library in a controlled way. Each engagement starts with a written scope that defines which diagrams, stencils and storage locations are in and out of the migration.
How we scope
- Inventory the .vsdx, .vsd, .vdx and stencil files across desktops, OneDrive, SharePoint and network shares.
- Classify diagrams by whether they use embedded EMF images, interactive behavior or custom stencils.
- Agree in writing which files convert, which are rebuilt by hand and which stay in Visio.
How we build
- Deploy the official draw.io Docker image or draw.io Desktop on your own servers or devices.
- Convert custom Visio stencils into draw.io custom libraries and check shape names and sizes.
- Test rendering, links and layers on a sample set of diagrams before bulk conversion starts.
How we hand over
- Deliver a conversion log listing each file, its result and any manual rework still required.
- Document where diagrams are saved, how libraries are shared and how old .vdx files were resaved.
- Train owners on checking imported diagrams for layout drift, lost behavior and missing images.
How we support
- Offer ongoing support, upgrades of the draw.io image and periodic checks as a retainer.
- Keep the self-hosted instance patched and backed up as agreed in the written scope.
- Confirm with you before any change to file storage locations or sharing settings.

