Import from Wix
Bring a published Wix site into Modulify with its pages and design, CMS collections, store, blog, bookings, events, pricing plans, contacts, members, orders, form submissions and Media Manager files.
On this page
Import from Wix brings a published Wix site into Modulify. It copies the published pages with their design, reads the site's data through a Wix API key, and puts everything into a new site. The import runs in the background, and the site's chat shows its progress and warnings. The prompt field does not apply to a Wix import. For the whole move, from the key to your domain, see Migrate from Wix.
Start the import
Click + on the prompt on Home, then choose From Wix under Import. The Import Wix site dialog opens. Fill in the two fields, tick I own this site, or I have permission to rebuild it. and select Confirm:
- Site address: the address your Wix site is published at, such as your own domain or
you.wixsite.com/site. - Wix API key: a key you create in your Wix account.
Once the key is accepted, the dialog shows the site's name and how many products, CMS collections, pages, blog posts and contacts it has.
The prompt then shows the site as a card with a screenshot of its home page, what the import found and an Import site button. When the home page is password protected or for members only, no screenshot of it is taken, and the card shows the site's social share image instead, or no picture when it has none. The dialog then warns The home page asks for a password or a member login, so it cannot be copied. The pages that are public still come across. Use the pencil to change the site or the cross to remove it, and select Import site to create the site and start the import. Inside a project's chat, From Wix is greyed out, because a Wix import starts a new site.
Create a Wix API key
Open your API keys
Sign in to Wix as the owner or a co-owner of the site and open manage.wix.com/account/api-keys.
Generate a key
Choose Generate API Key and give the key a name.
Give it all site permissions
Under Permissions, choose All site permissions. If Wix asks which sites the key can use, include this site.
Copy the key
Choose Generate Key, enter the code Wix sends you, then copy the key.
Paste it into Modulify
Paste the key into Wix API key in the import dialog.
The dialog checks the key against the site before the site is created. A key that Wix rejects, or one that cannot read this site, is refused with a message that says what to change.
Wix shows the key only once. Modulify only reads your site, keeps the key encrypted with your new site, and you can delete the key in Wix once the import has finished.
Publish the site first
Only the published site is read, so publish your latest changes in Wix before you import. Pages that are not published do not come across.
Progress and warnings
The import shows in the site's chat as a normal message that reads Importing <site name> from Wix. The AI takes over as soon as it finishes., with a row under it that shows the step it is on and a count such as 2/5. Select the row to open the activity panel with the steps in order: Reading the site, Copying images, Saving the data for the AI, Building pages and Saving pages. While a step reads pages, copies images and files, or saves records, its row also counts them, such as Copying images (340 of 2,100).
When the import finishes, the message reads Imported <site name> from Wix., the row reads Did 5 actions, and the chat lists any warnings under Warnings from the import, such as data the key could not read or effects that were not copied.
If the import stops for a reason you do not have to fix, such as a restart on Modulify's side, it starts again on its own once, and the message adds The first try stopped, so the import started again on its own. If it stops again, or stops with an error you have to fix first, the message reads The import of <site name> from Wix stopped., and an alert under it shows the reason and Try again.
What comes across
Your pages come across as editable pages at the same addresses, with their design:
- Every published page, with its title, description, favicon and social share tags. That includes pages hidden from the menu, the page of each CMS item listed in the site's sitemap, and the pages in each language.
- Classic sites keep their separate mobile layout, which shows on phones. Studio sites keep the layout of each screen size.
- Links between pages point at the same addresses on your site.
- Images, videos and files that the pages show are copied to Modulify storage, at the size and crop Wix shows them. Fonts are copied into the site.
- Entrance animations play when they scroll into view, menus and dropdowns open, galleries and repeaters keep their layout, and background videos play. Visitors who ask their device for reduced motion see everything in place, without the movement.
- Forms keep their fields. A submission is saved in the site's database before it is emailed to the site's address, which forwards it to you, so a submission is kept even when its email cannot be sent.
- Custom code from your site settings comes across.
- Each language of a multilingual site comes across at the same addresses as on Wix, such as
/frfor French, and the site's language list is set from the import. A language served from its own subdomain, such asfr.yoursite.com, comes across in a folder such as/fr. - A sitemap at
/sitemap.xmllists the imported pages. Pages hidden from search engines and the 404 page are left out. - The robots.txt file of a site on its own domain is copied. Its sitemap lines are left out, because they point at the Wix site.
Your site data is saved as it was in the hidden _import_rows table of the site database, one dataset for each kind of data below. As soon as the import finishes, the AI builds tables from them, which you can browse and edit in the CMS. It usually builds one table per dataset and picks their names itself.
- Site, with the business name, contact details, address, language, currency, time zone, logo and business hours.
- One dataset for each CMS collection, with its items. A reference field holds the id of the item it links to, and a multi-reference field holds a list of ids, which the AI turns into references between the tables that you can edit in the CMS. Galleries are kept as lists, formatted text keeps its formatting, and addresses, objects and lists are kept as structured data. Draft items come across too, marked as drafts, and get no page of their own. Collections that belong to an outside database are left out, and the import names them. On a site that uses Wix Multilingual, the translated text of each item comes across too, for every language visitors can see, and the AI gives the tables a column per language for it.
- Products, with their descriptions, prices, options, images and SEO, and Product variants linked to their product. Products are grouped in Product collections, or in Product categories with Stock levels on the newer Wix Stores catalog.
- Blog posts, with their content, cover image and SEO, and Blog categories and Blog tags.
- Booking services, Events and Pricing plans.
- Contacts and Members.
- Orders, with their totals, payment and fulfillment status and the buyer's billing and shipping details. Their items come across as Order items, linked to the order.
- Form submissions that Wix Forms holds, which the AI loads into the same table as new submissions.
- Redirects, which also become redirects on the site.
- Media files, listing the files in your Media Manager, which are copied to Modulify storage.
Images and files in your data are copied to Modulify storage too, and the data points at the copies.
Notes for the chat are saved in the site's code at .modulify/import/README.md, with the same details in manifest.json next to them. They list the pages, each dataset with its item count and fields under "Data from Wix", the languages, what did not come across and the warnings. The guide file at the root of the site, CLAUDE.md, points the chat at these notes.
What is not imported yet
- Slideshows show their first slide only, because Wix loads the other slides in the browser.
- Lightboxes, popups and effects such as parallax that Wix runs in the browser. You can rebuild them with the chat.
- Cart, checkout, member and search pages, because Wix runs them. Add to cart and checkout buttons do not take payments.
- Member login.
- Translations of store products, blog posts and other app content. Translations of your CMS items come across, and so do the translated pages.
- Apps that Wix loads in the browser, such as live chat, and Velo code.
- On Studio sites, galleries keep their desktop layout on phones.
- Very large sites come across in part, and the import lists what was left out.
Contacts, members, orders, order items and form submissions contain personal data. They are stored in your site's database, and the AI builds their tables from the list of their fields without reading them.
Fonts from the Wix font library are licensed for Wix sites. Check their license before you publish the site.
After the import
When the import finishes, the AI takes over on its own. It reads the import notes, builds the tables from the saved data, connects the pages that show it, such as a blog list or the copied CMS item pages, to those tables while keeping them looking the same, and checks the pages. Then it answers with the pages, the tables it built with their row counts, the languages, the warnings and what still needs work. The automatic message that starts it is not shown, so the import flows straight into its answer. If you were already chatting when the import finished, the chat gets the same notes with your next message instead.
The chat builds on the imported site and never starts it over. When it needs more than the notes, it reads your Wix site directly with your API key: its addresses, business details, languages and redirects, its pages and any page as Wix publishes it, the CMS collections and their items, the Media Manager, the store, the blog, bookings services, events, pricing plans and forms. It never reads contacts, members, orders or form submissions this way, because they are only kept in your site's database. While the import is still running, the chat tells you so and waits for it before changing files.