Publish to your Storyblok space
Connect a Storyblok space and CiteAgentic creates each approved piece as a story in the content type you choose, with the title and markdown body written into your own fields. No OAuth app, no plugin.
Connecting Storyblok takes about five minutes and needs three values: your numeric space ID, the content type new stories should use, and a personal access token. Once connected, every approved draft can be pushed to Storyblok on demand or on a schedule.
What is the Storyblok integration?
The Storyblok integration creates each approved CiteAgentic draft as a new story in your space using the Storyblok Management API. It authenticates with a personal access token you generate yourself, so there is no app to install and nothing to approve in an OAuth screen.
By default stories are created as drafts, so nothing goes live on your site until you open it in Storyblok and publish. You can switch that to publish immediately if you prefer.
Why does it write markdown instead of richtext?
Storyblok's Richtext field stores content as structured JSON in a ProseMirror-style tree, not as text. Writing into it reliably would mean synthesising that tree and guessing at your component nesting.
Storyblok's Markdown and Textarea field types store plain strings, and CiteAgentic already renders every draft to clean markdown. So the integration writes markdown into a field you nominate. Point it at a Markdown field and your content arrives fully formatted, with headings, lists and links intact.
If your content type only has a Richtext body today, add a Markdown field to it and point the integration at that.
What do you need before you start?
You need three things, all from your own Storyblok account:
- A Storyblok space, and its numeric space ID.
- A content type component for the new stories, for example
pageorarticle. It must already exist in the space. - A personal access token with write access to that space.
You also need to know which region your space is hosted in. A token issued against a US space will fail against the EU host, which is the single most common setup mistake.
Where do you find your space ID, content type and token?
All three live in your Storyblok account, in three different places.
Space ID: open your space and go to Settings → General. It is a long
number, e.g. 288868932106293.
Content type: open Block Library and find the content-type block your pages use. You need its technical name (lowercase, no spaces), not its display name.
Personal access token: go to My account → Account settings → Personal access tokens, create a token, and copy it. Storyblok shows it once.
How do you connect Storyblok in CiteAgentic?
Open Site Settings → Integrations → Publishing channels, click + Storyblok, and fill in the form.
The fields map as follows:
| Field | Required | What to enter |
|---|---|---|
| Space ID | Yes | The numeric space ID from Settings → General |
| Region | No | Where the space is hosted. Defaults to EU |
| Content type | Yes | The component technical name, e.g. page |
| Title field key | No | Defaults to title |
| Body field key | No | A Markdown or Textarea field. Defaults to content |
| Parent folder ID | No | Numeric folder ID. Blank creates at the space root |
| On publish | No | Create as draft (default) or publish immediately |
| Personal access token | Yes | Stored encrypted and never shown again |
Click Test & connect. CiteAgentic fetches the space to validate the token, the region and the space ID, then lists the space's components to confirm your content type actually exists. If it does not, the error names the ones that do, so you can correct a typo without leaving the screen.
Which regions are supported?
Storyblok shards its Management API by data residency, and CiteAgentic supports all five hosts:
| Region | Management API host |
|---|---|
| EU (default) | mapi.storyblok.com |
| United States | api-us.storyblok.com |
| Canada | api-ca.storyblok.com |
| Australia | api-ap.storyblok.com |
| China | app.storyblokchina.cn |
Pick the one matching your space. If you are unsure, try EU first: a mismatch returns an authentication error rather than doing anything harmful.
How do you publish a draft to Storyblok?
There are two ways, and both use the same connection.
On demand: open any draft in Content Studio and choose Share ▾ → Publish to Storyblok. The story is created immediately and the draft is marked published.
On a schedule: link the Storyblok channel to a day in the content calendar. Once you approve that piece, it is created in Storyblok on its scheduled date.
Each piece becomes a story whose name and slug come from the draft title, with
your title field and markdown body field filled in. Storyblok stories have no
inherent public URL because your front end owns routing, so CiteAgentic links back
to the story in the Storyblok editor.
What errors might you see, and what do they mean?
The connection test translates Storyblok's responses into plain language. These are the ones you are most likely to hit:
- "Authentication failed." The token is wrong or expired, or the Region does not match where the space is hosted. Check the region before regenerating the token.
- "Space … not found." The space ID is wrong, or it belongs to an account the token cannot reach.
- "Space ID must be the numeric space ID." You entered a space name or slug. Use the number from Settings → General.
- "Content type … not found." The component name is wrong. The message lists the components that do exist in the space.
- "Storyblok rate-limited the request." Storyblok allows 3 requests per second on Starter and 6 on Growth and above. Wait a moment and retry.
If a scheduled publish fails, the channel is flagged with the error in Site Settings and the failure is recorded against that draft, so nothing fails silently.
Frequently asked questions
Does this publish to a Richtext field?
Are stories published live straight away?
Where do I find my space ID?
What access does the personal access token need?
Can I create stories inside a folder?
Is my token stored securely?
Ready to connect?
Site Settings → Integrations → Publishing channels → + Storyblok. Add your space ID, content type, and a personal access token.