Table of Contents
How to Convert Visio Stencils (VSSX/VSDX) into Draw.io Templates
Migrating from Microsoft Visio to draw.io (diagrams.net) is easier than most people think — especially when you need your old Visio stencil libraries (VSSX/VSDX).
However, many users struggle because importing Visio stencils directly into the draw.io desktop app often fails, breaks images, or produces unreadable shapes.
After a lot of trial and error, here is a method that works 100% reliably and keeps all visual details intact (including PNGs, geometry, labels, and grouping).
This guide explains the exact process for converting Visio shapes into fully functional draw.io templates (.xml / .mxlibrary).
Why This Method Works Best
Draw.io Desktop and the Web App behave differently. The desktop version cannot fully interpret Visio stencil metadata, but the online diagrams.net editor can.
So the trick is simple:
Use the Web App to interpret and convert the VSSX → then export as native Draw.io XML → use it in Desktop.
This avoids broken shapes, missing images, and formatting issues.
Step-by-Step Guide
1. Export your shapes from Visio as a VSSX file
- Open your stencil in Visio
- Go to File → Save As
- Select VSSX (Visio Stencil)
- Save the file somewhere on your computer
- Your icons are now packaged as a standard Visio stencil library.


2. Open diagrams.net (draw.io Web App)
Go to:
The web version has better import logic for Visio files and handles VSSX decoding correctly.
3. Import the VSSX file
In diagrams.net:
- Go to File → Import → Device
- Select your .vssx file
- Wait a moment — the shapes will appear in the left sidebar
You should now see all your Visio stencils, with images and geometry preserved.

4. Export the stencil as a draw.io template
Now that diagrams.net has converted your Visio shapes:
- Go to File → Export as
- Choose XML
- Save the generated file
- This is your clean and fully compatible draw.io template
Draw.io Web exports the shapes in native mxGraph XML format, without any of the leftover Visio data that breaks compatibility.



5. Open the XML template in Draw.io Desktop
- Now open Draw.io Desktop, and:
- Go to File → Open Library
- Choose your exported .xml file
Optional: Save it as a .mxlibrary or add it to your custom templates
You now have a fully working, clean draw.io stencil set — based on your original Visio shapes.
Everything will work:
- PNG/SVG images ✔
- Shape geometry ✔
- Aspect ratio ✔
- Text fields ✔
- Drag & drop ✔
- Scaling ✔
This method is reliable for almost all Visio shapes and stencils, even large ones like:
Network equipment (Cisco, WatchGuard, Palo Alto, HP, Dell, etc.)
- Rack elevations
- Flowchart symbols
- Custom corporate shapes
- Security appliance front/rear views
Tips for Best Results
✔ Use the Web App for import (never Desktop)
The Web App has better Visio conversion.
✔ For large libraries, split them into smaller VSSX files
This speeds up import.
✔ After importing, rename your shapes inside the library
It makes them easier to use in draw.io.
✔ If a shape looks broken, re-export it from Visio
Some older VSD format shapes don’t convert well unless saved as VSSX.
Conclusion
If you’re switching from Visio to draw.io, you do not need to abandon your shape libraries.
By importing your VSSX stencils into app.diagrams.net, letting it process the shapes, and exporting the result as draw.io XML, you get a clean and compatible stencil set you can use forever.
This simple workflow saves hours of frustration — and allows Visio users to transition smoothly to the free, open, and cross-platform world of draw.io.
