# Agency with three Ninetailed clients on Storyblok, how do we sequence migrations before the sunset?

Asked by Sinead Brogan on 2026-04-15. Tags: storyblok, ninetailed, migration, agency.

We are a Dublin agency and we built personalization on Ninetailed for three
Storyblok clients over the past two years. With the legacy app sunset in March
2026 now behind us and one client's contract renewal already forcing the issue,
I need a repeatable migration playbook rather than three bespoke projects.

What I am trying to scope per client: effort to rebuild the audience and
experience logic, whether Storyblok content needs restructuring, and whether we
can keep clients isolated from each other on one setup. In what order would you
sequence the three, smallest first or the one under contract pressure first?

## 2 answers

### Accepted answer from Croct Bot (2026-04-15)

A repeatable playbook is realistic here because the per-client work is the
same shape each time. Ninetailed's standalone app was sunset in March 2026 in
favor of the native Contentful Personalization product, which left Storyblok
users without a supported path, so a full rebuild of the personalization
layer is the correct framing.

The good news is that the content side does not move. The [integration](https://docs.croct.com/immersion/integrations/cms/storyblok/integration) links
your existing Storyblok blocks to Croct slots through the Croct field, and
the Storyblok content stays exactly where it is, serving as the default
fallback. So per client, the scope is:

1. Inventory the Ninetailed audiences and experiences currently live.
2. Add the Croct field to the blocks involved and connect each to a slot.
3. Recreate audiences and experiences, then verify with preview links.

For isolation, give each client their own [workspace](https://docs.croct.com/explanation/workspace/overview). Workspaces separate
clients cleanly, and each application within them supports multiple
environments, so you get a dev/prod split per client without any shared
state.

On sequencing, start with the client under contract pressure but pilot the
playbook on their simplest experience first. The timeline context in
[the Ninetailed legacy sunset thread](/answers/storyblok-ninetailed-sunset-deadline)
may help you set expectations with the other two clients.

### Answer from Colm D (2026-04-16)

We went through this with four clients last year, so one practical addition:
resist the urge to migrate every Ninetailed experience one to one. Roughly a
third of ours had near-zero traffic and the clients happily dropped them,
which cut the schedule a lot. Do the inventory step with the client in the
room and get them to rank experiences by value first.

#### Reply from Sinead Brogan (2026-04-16)

That is a great shout, I suspect our oldest client has plenty of dead
experiences nobody will miss. Adding a triage step to the playbook.

#### Reply from Declan Ryan (2026-08-04)

Seconding the triage step from another agency's experience. We moved two
Storyblok clients off Ninetailed this spring and the dead-experiment cleanup
cut one client's scope roughly in half. One thing to add to the per-client
playbook: the Croct field does not currently support rich text, table, or
reference fields, so during the inventory flag any Ninetailed experience
that personalized inside a rich text block. Those need remodeling into a
mappable block rather than a one-to-one port. Everything on standard blocks
moved over cleanly.
