Draft content vs personalized variants, how do preview and public tokens interact?
Our frontend switches between the Storyblok preview token and the public token depending on whether we're inside the Visual Editor, standard draft/published setup. Now that some blocks are connected to Croct slots I'm confused about how the two systems interact. If an editor changes a block in draft, does that draft version show up in the Croct previews too? And inside the Visual Editor iframe, which variant renders? Feels like there are two preview systems layered on top of each other and I can't picture it
2 answers
The key thing to internalize is the division of labor: Croct resolves which variant a visitor should get, but the content itself still flows through your Storyblok delivery setup. So the draft/published distinction follows whatever token your frontend is using at that moment, same as before.
Inside the Visual Editor iframe you are on the preview token, and the block renders as the editable Storyblok default, since your Storyblok content is the fallback for the slot. Draft edits show up there immediately like they always did.
For checking a specific variant against a specific audience, that is what Croct preview links are for. You generate them from the experience or experiment editor and they are valid for 24 hours. Whether that preview shows draft or published Storyblok data depends, again, on which token the environment you open it on is running.
ok so the trick is they are orthogonal, token decides draft vs published, Croct decides which variant. that untangles it, thanks
Small practical tip on top of Maya's answer: we keep a staging environment permanently on the preview token and generate Croct preview links against that. Stakeholders then see draft copy and the personalized variant in one link, which is usually what they actually want when reviewing. Just remember the staging domain has to be in your trusted origins or the preview link won't activate.