We used our AI to migrate 2,500 CMS pages

Rui WangRui Wang
Oct 9, 2026

*No developers were harmed.*

When organizations switch platforms for their websites, content migration is always a big project beside implementation. Traditional approaches would either be manual migration or rely on developers to create some API to automate as much as possible. Both can be time-consuming and cause delays for going live.

Plenty of teams are experimenting with AI agents. Far fewer have used those to manage a migration and can tell you what happens. There are AI tools created, but it's not a magic button. And depending on the source, developers are still involved in adjusting those tools to get them to work.

If you are already on CMS 13 or SaaS CMS, the tooling for this is available now. The process is as simple as building Optimizely Agents from the admin UI, test and fine tune, then run the batches for mass content migration and page creation. All from the UI with no backend developers harmed in process.

2,500

pages migrated

3 days

agent execution time

0

developers required

Real customer, real results

In one of the most recent customers go-live cases, about 2,500 pages of various content types were migrated in 3 days based on Optimizely's Agent Platform's execution time (* content preparation and agent creation time was not counted).

These are the top four page types by total count. Notice that using URLs as the data source, rather than supplying clean JSON, pushes up both page creation time and credit consumption.

AgentPagesSec/pageCred/page
News article migration (URLs)50274.019.1
Webinar migration (JSON)47830.57.1
Device registration migration (JSON)43126.24.3
Blog migration (URLs)376168.840.6

Across the full project, 2,425 pages took 39 hours of total agent runtime. What mattered more than the clock was who could run it, and what happened when something needed changing.

ApproachEngineering dependencyHandling a change or error
Agentic migrationNone; marketing-ownedAdjust the prompt, re-run the agent
Manual migrationNone, but high labor costLocate and redo each page by hand
Custom migration APIBackend team plus release cyclesNew ticket, new deploy, new regression test

No backend developers were harmed in the process. Marketing and content owners own the whole thing. Any mistakes Optimizely's Agent Platform made can be deleted, modified, and re-run all from the Admin UI.

Rui Wang|Senior Solution Architect, Optimizely

Initial setup

For SaaS CMS, there is nothing special to do as all the SaaS CMS Tools are already registered in the Agent Platform tools list. For CMS 13, it does need developer to include the PaaS CMS Tools NuGet package in the solution and register the tools. But our product team has that in the roadmap to be included as default.

Source data

With traditional API approach for content migration, source data must be cleaned up structured data. But with Optimizely's Agent Platform, the source can be URLs, JSON, CSV, screenshots and Figma designs.

Keep in mind that using the Agent Platform to create new pages using JSON and CSV types will be much faster than URLs, screenshots and Figma, and consume less tokens.

Heads up on scraping: If your data source directly scrapes your old website, make sure the IPs of Optimizely Agent Platform and PaaS CMS tools are whitelisted. Many sites block agent traffic by default — this will cost you a day if you miss it.

Target content type in CMS

Traditional approach using API only works with structured content. Any content design that is not structured will need manual process.

With an Optimizely agent, structured source data can be easily mapped to content type field within the agent prompt by describing them and not coding them.

What about unstructured content or designs?

Use the Visual Builder feature that’s available in both SaaS CMS and CMS 13. To use Visual Builder, developers must implement all the elements needed for all design requirements. But from that point on, marketing and frontend users can takeover. You can let Optimizely Agent Platform make decisions on its own by picking suitable elements, creating sections, rows and columns to match the output to the design. Keep in mind that this could take longer per page and consumes more token.

A smarter approach would be building a sample page with all sections based on design, saving the sections as blueprints. Then during page creation reference to that page as a model so the Agent Platform can use blueprints and think less. If there are many pages with the same look and feel, create one page manually first and use that as the sample to feed to the Agent Platform for building the rest of the pages in batches.

Building agents with the Agent Platform

If you think creating an agent is hard, it's easier than ever before now with Optimizely's Agent Builder. Simply describe what you want to do and let Optimizely's Agent Platform create the agent for you. Describe the source type, target type, any dos and don'ts and let the Agent Platform handle the rest.

Pro tips: Agent-built agents may not be the most efficient — you're letting AI handle a lot of the discovery and thinking. Run a couple of tests, review the logs, and fine-tune. Call out which tools the agent should use directly in the prompt, remove unnecessary steps you spot in the logs, and lower the inference level if the task doesn't need deep reasoning. That alone can save meaningful runtime and credits.

Run agents in batches

When you do mass migration or creation, creating pages in batches would save you time. To do that, there should be step 0 in the agent that handles the discovery for source data model, target design, mapping, parent folder, and asset location, etc. Then the next few steps to create content, validate, save for review or publishing, would be the rinse and repeat part of the agent’s tasks.

Now how many items should you create in a batch? There is no exact number. It depends on the complexity of the page, and how do you want to manage quality control. From our experiences, for simple content you can run 25 per batch before the Agent Platform decides to break the number into smaller batches. For complex pages, 5 – 10 items per batch would be good. The best practice is always running a test batch and monitoring the log in the Optimizely Agent Platform > Agent UI. Based on the runtime and the Agent Platform credit consumption, adjust later batches.

Where to run the agents

Although agents are managed in Optimizely’s Agent Platform UI, when it comes to running the agent, I would recommend doing it from the Mark Chat UI within CMS. It has better context of the CMS and content tree structure. You can select the parent page and call agent to create pages below the selected page.

I would also recommend using one conversation per page type/agent. Later batches carry context and learning from earlier batches which can help executions be faster and accurate.

Conclusion

Consider using Optimizely’s Agent Platform for your content migration strategy because it gives you these advantages:

  • Consistent field mapping. Each agent applies the same mapping rules to every page in its section, so page 100 is treated exactly like page one. Manual copy-and-paste drifts; agents do not.
  • Correction costs credits, not sprints. Improving the agents meant editing a prompt and running it again. The equivalent fix in custom API code requires a developer, a code review, and a deployment.
  • Marketing kept ownership. Your team defined the mapping, ran the agents, and validated the output, so subject-matter judgment stayed with the people who know the content.