{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-agen-for-work/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["Notification"]},"type":"markdown"},"seo":{"title":"Storyblok integration","siteUrl":"https://developers.frontegg.com/","llmstxt":{"title":"Frontegg Developer Documentation","description":"Authentication, authorization, and user management for Customer Identity, plus Agen for SaaS and Agen for Work. Guides, SDKs, and API references.","sections":[{"title":"Customer Identity (CIAM)","description":"Auth, SSO, SCIM, entitlements, and user management — guides, SDKs, and APIs.","includeFiles":["ciam/**/*.md"],"excludeFiles":[]},{"title":"Agen for SaaS","description":"Agentic access and authorization for SaaS products.","includeFiles":["agen-for-saas/**/*.md"],"excludeFiles":[]},{"title":"Agen for Work","description":"Agentic access and authorization for internal and workforce use.","includeFiles":["agen-for-work/**/*.md"],"excludeFiles":[]},{"title":"Platform","description":"Shared platform overview.","includeFiles":["platform/**/*.md"],"excludeFiles":[]}],"excludeFiles":["internal-docs/**","ciam/guides/env-settings/inject-client-ip.md","CLAUDE.md",".claude/**","**/images/**"],"hide":false}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"storyblok-integration","__idx":0},"children":["Storyblok integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Storyblok is a headless content management system (CMS) with a visual editor. Integrating Storyblok with Frontegg lets your application read and manage stories, components, assets, and other content through the Storyblok Management API on behalf of your users — all through Frontegg's integration layer. You can authenticate with either OAuth 2.0 (recommended when connecting on behalf of multiple users) or a Personal Access Token."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Prerequisites","type":"attention"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.storyblok.com/"},"children":["Storyblok"]}," account"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A Storyblok space hosted in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["European Union"]}," region. Spaces hosted in the US, Canada, Australia, or China are not currently supported, because Storyblok serves those regions from different API hosts. You can confirm your space's region in your Storyblok space settings."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For OAuth: access to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.storyblok.com/docs/plugins/oauth-authorization-flow"},"children":["Storyblok Partner Portal"]}," to create a plugin"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For a Personal Access Token: access to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["My Account"]}," at ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://app.storyblok.com/"},"children":["app.storyblok.com"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Note: Storyblok rate-limits the Management API to 3 requests per second on the Starter plan and 6 on Growth and above"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"connect-to-storyblok-with-oauth","__idx":1},"children":["Connect to Storyblok with OAuth"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You create a plugin in the Storyblok Partner Portal and configure OAuth 2 on it. The plugin provides the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]}," and defines the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["redirect URI"]}," that Storyblok returns users to after they authorize access."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-1-create-a-plugin","__idx":2},"children":["Step 1: Create a plugin"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sign in to the Storyblok Partner Portal and create a new ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Space Plugin"]}," (or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tool Plugin"]},"). Give it a descriptive name, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Frontegg Integration"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-2-configure-oauth-2","__idx":3},"children":["Step 2: Configure OAuth 2"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open the plugin's settings and go to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth 2"]}," section:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Redirect URI"]}," — Enter your Frontegg Redirect URL: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://YOUR_MCP_GATEWAY_URL/integration-callback"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Scopes"]}," — Grant ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["read_content"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["write_content"]}," (see the scopes table below)."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-3-copy-the-client-id-and-client-secret","__idx":4},"children":["Step 3: Copy the Client ID and Client Secret"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Storyblok displays the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]}," in the plugin settings. Copy both values."]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Keep your Client Secret safe","type":"attention"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Client Secret grants access to your account through the API. Treat it like a password and never expose it in client-side code or commit it to version control."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"use-a-personal-access-token-instead","__idx":5},"children":["Use a Personal Access Token instead"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you are connecting a single account rather than authorizing multiple users, you can use a Personal Access Token instead of an OAuth app:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Go to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["My Account"]}," at ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://app.storyblok.com/"},"children":["app.storyblok.com"]}," and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Generate new token"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Copy the token. It grants broad access to your account, so store it securely."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A Personal Access Token grants access to every space in your account, while OAuth authorizes one space at a time — choose OAuth if you want to scope access to a single space."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"configure-the-frontegg-portal","__idx":6},"children":["Configure the Frontegg portal"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the integration in the Frontegg portal using the method you chose:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Frontegg portal"]}," and navigate to [ENVIRONMENT] → Integrations → Storyblok."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth"]},", enter the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]},". For a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Personal Access Token"]},", enter the token in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Personal Access Token"]}," field instead."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The OAuth app grants the following scopes:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Scope"},"children":["Scope"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["read_content"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read access to content"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["write_content"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Write access to content"]}]}]}]}]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Keep your credentials secure","type":"attention"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Never share or commit your Client Secret or Personal Access Token to version control."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"additional-resources","__idx":7},"children":["Additional resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.storyblok.com/docs/api/management"},"children":["Storyblok Management API documentation"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.storyblok.com/docs/plugins/oauth-authorization-flow"},"children":["Storyblok OAuth 2.0 authorization flow"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.storyblok.com/docs/plugins/space-plugins"},"children":["Storyblok Space Plugins"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/agen-for-work/connectors/redirect-url"},"children":["How to get your Redirect URL"]}]}]}]}]},"headings":[{"value":"Storyblok integration","id":"storyblok-integration","depth":2},{"value":"Connect to Storyblok with OAuth","id":"connect-to-storyblok-with-oauth","depth":3},{"value":"Step 1: Create a plugin","id":"step-1-create-a-plugin","depth":4},{"value":"Step 2: Configure OAuth 2","id":"step-2-configure-oauth-2","depth":4},{"value":"Step 3: Copy the Client ID and Client Secret","id":"step-3-copy-the-client-id-and-client-secret","depth":4},{"value":"Use a Personal Access Token instead","id":"use-a-personal-access-token-instead","depth":3},{"value":"Configure the Frontegg portal","id":"configure-the-frontegg-portal","depth":3},{"value":"Additional resources","id":"additional-resources","depth":3}],"frontmatter":{"category":"Content Management","seo":{"title":"Storyblok integration"}},"lastModified":"2026-08-11T08:08:59.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/agen-for-work/connectors/marketplace/storyblok","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}