Headless CMS FAQs
Access Token Removal FAQs
Access Token removal refers to the deprecation of Access Tokens in Contentstack for stacks created after December 16, 2020. Thus, new stacks no longer support Access Tokens for authentication.
Instead, you can:
Use Delivery Tokens with the access_token header for Content Delivery API requests. Use Management Tokens or Authtokens for Content Management API requests.
This enhances security and provides more control over content access.
Access Tokens provided broad stack-level access, including both published and draft content across environments, which increased security risks. To enhance security and improve management flexibility, Contentstack introduced Delivery Tokens and Management Tokens as more secure alternatives.
No. The deprecation only applies to stacks created after December 16, 2020. Stacks created before this date still support Access Tokens. However, using Delivery and Management Tokens is strongly recommended.
Yes. You can use a Management Token or your user-specific Authtoken to fetch unpublished or draft content.
The following example request uses an Access Token:
# Making a GET request to retrieve a specific entry from a given content type.curl -X GET \ 'https://api.contentstack.io/v3/content_types/{ContentTypeUid}/entries/{EntryUid}?include_publish_details=true&include_workflow=true' \ -H 'accept-encoding: application/json' \ # Ensures JSON response -H 'access_token: {your_access_token}' \ # Authorization token for the API -H 'api_key: {your_api_key}' # API key identifying the stackThis request does not work for stacks created after December 16, 2020. Replace {your_access_token} with your Delivery Token.
To replace Access Tokens with Delivery Tokens:
Generate a separate Delivery Token for each publishing environment. Use the Delivery Token value in the access_token header for Content Delivery API calls.
To replace Access Tokens with Management Tokens:
For published content (Content Delivery API): Use a Delivery Token in the access_token header.
-H 'access_token: {delivery_token}'For unpublished content (Content Management API): Use a Management Token in the authorization header.
-H 'authorization: {management_token}'No. Contentstack does not log Access Token usage. You must manually replace Access Tokens with Delivery or Management Tokens in your scripts and integrations.
The access_token key remains valid for older stacks (before December 16, 2020). New stacks must use Delivery Tokens in this header. For newer stacks, use the Delivery Token value in the access_token header.
You can refer to the Types of Tokens document to understand the differences, usage, and limitations.
No. Use:
Delivery Tokens with the access_token header (Content Delivery API) Management Tokens with the authorization header (Content Management API)
Architecture FAQs
Partially headless setup means you have some portion of your website on a traditional setup and the remaining on a headless CMS. This setup is useful in cases when migrating from a conventional CMS to a headless CMS.
The partially headless architecture diagram shows how one content section, such as blog, is migrated to a headless CMS, whereas the rest of the digital properties remain on a traditional setup.
A simple site is a website that has a few pages and limited third-party integration. An example of a simple website could be a marketing site of an enterprise, which uses basic integration services such as website search, site analytics, and so on.
If the sole purpose of your website is to serve content, and is likely to deliver the same content to all users, you must go for a static website. Dynamic or simple website architecture, on the other hand, integrates well with other apps, helps you do more with content (such as deliver personalized content, etc.) and enables user interaction.
Yes. In such a case, it is recommended to use the complex website architecture as it offers the required flexibility and agility to add more services.
So initially, if your website is simple but gradually develops to become complex, use the complex website architecture for effective scaling.
The dynamic website architecture provides better flexibility and agility. You can add more services as required, without impacting or changing any other components, enabling quick scaling.
Stack Assets FAQs
The maximum allowed size for a single asset file is 700 MB. Additionally, you can define custom file size limits (both maximum and minimum) using the File Size Limit validation rule.
Yes. A maximum of 10,000 assets can be uploaded in a stack. The limit can be increased based on your plan. Contact our support team for more details.
Contentstack does not support applying Image Delivery API requests on images directly inserted into text fields. However, you can achieve this by following these steps:
Upload the Image as an Asset: Upload the image to the Asset module using the Upload Asset API call. The response body will include the url parameter containing the asset’s URL and a unique uid for the uploaded asset. Insert the URL into the Text Field: In the Rich Text Editor (RTE) or any other text field, switch to the HTML code view and use the asset URL as the image source instead of directly inserting the image. Use the Image Delivery API: With the asset’s UID and URL, you can apply Image Delivery API requests to modify the image as needed.
Yes, you can use the Image Delivery API to query the same asset with different dimensions.
No, bulk editing of assets is not supported. You can edit only one asset at a time. For more details, refer to the available bulk operations on assets.
Yes, the additional metadata support for assets/entries is available.
No, adding metadata via the API does not increment the version of the entry or asset.
When you publish an entry or asset, its associated metadata is also published. However, for bulk publishing of entries or assets, the metadata is not published. For more information, refer to the publish metadata documentation.
You can add additional metadata to an asset or entry only through the Metadata for Entries and Assets Content Management API requests.
The maximum metadata size allowed per extension is 5 KB. This includes the total metadata defined for all entries and assets associated with the extension.
When an asset is unpublished, it becomes inaccessible in the environments and locales it was unpublished from. However, the URL remains active and accessible within the Contentstack assets repository unless the asset is deleted.
No, once an asset is uploaded, the filename cannot be changed.
Replacing an asset does not break references in entries as long as you are using permanent URLs.
Yes, Contentstack allows you to organize assets into folders for easier management. You can create nested folders and move assets between them.
Yes, Contentstack maintains a version history for assets, allowing you to view and restore previous versions if necessary.
Asset Folder-level Permission FAQs
Asset folder-level permissions define specific actions a custom user role can perform on an asset folder. This ensures that users only interact with the folders and assets they are authorized to access, providing enhanced control over content management.
Yes, you can select multiple asset folders and assign them to a custom role simultaneously. This streamlines the process of managing permissions across multiple folders.
Yes, you can assign distinct permissions to different asset folders. For example, you could grant “Read” permission to one folder (e.g., Folder 1) and “Publish” permission to another (e.g., Folder 2), depending on your organizational needs.
Yes, when you assign permissions to a folder, those permissions also apply to its assets and any subfolders, ensuring consistent access control within the folder hierarchy.
Yes, you can modify or revoke permissions for a custom role at any time. This change will immediately take effect, updating the role's access to the folder, its assets, and its subfolders.
When a user belongs to multiple roles with varying permissions:
Permissive actions are merged: If one role grants "Update" permission and another grants "Publish," the user will have both permissions. Cannot Do permissions take precedence: If one role allows "Read" and another explicitly denies "Read," the restriction takes priority, and the user’s access is limited.
This ensures that restrictive permissions are prioritized for better control and security.
Branches FAQs
The modules currently available in Contentstack will not be affected. Some modules are branch-specific. Whereas some are globally available throughout all the branches. You will have an additional scope section where you can decide whether you want that module for either all or specific branches for which you want the module.
Please refer to our Branch-Specific Modules and Global Modules documentation for more information.
Modules such as Content Types, Global Fields, Entries, Assets, Publish Queue, Releases, Languages, Extensions, Audit Logs, Global search, and Labels are branch specific. They can be created, updated, or deleted within a particular branch without affecting any other branch. Their details can differ across the other branches present in a stack.
Please refer to our Branch-Specific module documentation for more information.
Modules such as Environments, Webhooks, Workflows, Publish Rules, Users, Roles, and Tokens are globally available. Details for these modules are available across every branch of the stack.
Please refer to our Global Modules documentation for more information.
Any user with the role “Owner,” “Admin,” and “Developer” will be able to use the branches feature. Content managers can only work within the branches assigned to them. Custom roles can access branches as per the permissions assigned to them.
Yes. You can set up a webhook or workflow for a specific branch. The system allows the creation of branch-specific workflows for a content type.
Yes, you can add languages only to a specific branch of the stack. That language will not be available in other branches of the stack. Please refer to the Languages section in our Branch-specific Modules document for more information.
Extensions are specific to a branch. If you add an extension within a branch, it won’t be available across other branches. Please refer to the Extensions section in our Branch-specific Modules document for more information.
No, the main branch cannot be deleted. Please refer to the Limitations of Branches document.
Yes, two different aliases can point to the same branch. Learn how to Assign an Alias to a Branch.
No, you cannot have the same unique ID for a branch and an alias.
You can retrieve information from all or a specific branch. You can also create and delete a branch using the API requests. You will need to pass the branch header if you want to execute calls within specific branches. Please refer to the Branches collection in our Content Management API documentation for more information.
You can add a branch header while executing an API request to get details specific to a branch. If this header is not mentioned, by default, data will be retrieved from the "main" branch of your stack. The response body for every request will contain the _branch parameter specifying the branch from which the information is retrieved. Please refer to our Content Management API documentation for more information. You can also visit the API Change Log for more details about the breaking changes.
You can compare two branches to get the differences in the content type or global field modules, by either using the Comparing Branches requests in Content Management API or the Compare Branches using the CLI.
You can merge the differences in the content type or global field modules of two branches, by either using the Merging Branches requests in Content Management API or the Branch Merge using the CLI.
No, currently the compare and merge feature is only available for the content type and global field modules.
No, currently the compare and merge feature is only available via CMA requests or CLI commands.
You can compare or merge two branches at a time. Please refer to our documentation on Comparing and Merging Branches for more information.
Yes, there are various merge strategies to choose from while merging two branches. Please refer to our Merging Branches documentation for more information on how to select the best possible merge strategy.
Before performing a merge, pre-checks are performed to make sure the merge can complete. If these pre-checks fail, the merge will not be attempted, and you’ll see that merge job as failed, with an explanation of why. If these checks pass, the merge will be performed. By default, a backup branch is created of the branch you are merging into before any merge action takes place. You can create and point an alias to this backup branch to get your production website back to it’s previous state. Please refer to our Merging Branches documentation for more information on how to select the best possible merge strategy.
CLI FAQs
Use the
Set Region
command to set up and use the Europe, Azure North America, Azure Europe, or Google North America region.
No. The Delete Token command removes the token only from the current session and not from the stack.
Yes. Refer to the
Clone a Stack
guide to get started.
You can use the cm:export-to-csv CLI command to export stack data into a CSV file. For more details refer our detailed guide on the topic.
The Bootstrap Starter Apps command automates the procedure of stack creation and setting up the project (starter app). Follow this guide to set up and run a starter app with minimal steps.
No. Currently, the branches merge feature is not supported.
Content Type FAQs
Yes. You can create and add custom fields to your content type. To learn more, refer to the Custom Fields documentation.
Yes. A content type can have up to 500 fields.
No. The Title field is a default field and cannot be removed.
No. The Title field is always unique by default.
The Reference field allows you to include entries from other content types within a content type.
When you create a content type and add a field, follow these steps to change its display name:
Click the “Properties” (gear) icon for the field. Enter a suitable title under the Display Name property.
Yes. You can add tooltips using the Help Text property of a field.
Click the “Properties” (gear) icon for the field. In the Help Text field, enter the text you want to display as a tooltip. Hyperlinks are supported.
Tip: Keep tooltips short and precise.
No. Once created, a content type’s UID cannot be changed. However, you can edit the UID while creating the content type.
Field UIDs must contain only lowercase characters (a–z) and numbers (0–9). Uppercase letters are not allowed.
This error occurs when a field UID uses a reserved keyword. Contentstack restricts certain keywords from being used as UIDs in content types or entries.
No. Contentstack lets you compare content type versions, but you cannot revert to an earlier schema version.
You can restore a content type using APIs:
Fetch the previous version of the content type using the Versioning API. Use the Import a Content Type API to import the version you fetched.
Warning: Restoring a previous version saves it as a new version, which may lead to data loss.
Yes. The Compare Versions screen lets you select any two saved versions of a content type, even if they are not consecutive.
No. Field reordering is not tracked in content type version comparisons because it does not affect the underlying data.
Versioning applies only to the content type schema. Entry data, workflow states, and published content remain unaffected.
No. You cannot directly restore fields from a previous version, but you can manually recreate them using the comparison view as a reference.
Contentstack uses Added, Deleted, and Modified tags to indicate schema changes between versions.
No. Contentstack automatically assigns sequential version numbers, which cannot be renamed or manually managed.
No. All saved versions of a content type are retained, although performance may be affected if an unusually large number of versions is stored.
Yes. Contentstack provides:
Starter apps that include ready-made content type templates (JSON files). You can import these JSON files into your stack to get started. Prebuilt content models that you can use directly to speed up your setup.
Refer to the Best Practices for Content Type Changes guide. It covers scenarios to help you avoid data loss when making schema changes.
Yes. Each key and value can contain up to 100 characters.
Yes. The JSON schema for Select fields includes both key and value data. Refer to the Select Field Schema documentation for details.
Yes. All existing choices are lost if you toggle this option.
Yes. You can migrate content using CLI. Refer to the JSON RTE Migration Guide.
Yes. You can migrate all entries in a content type from HTML RTE fields to JSON RTE fields in just a few minutes. Refer to the JSON RTE Migration guide.
In the formatting bar, click Property > Add Properties, enter the details in the modal that appears, and click Apply.
Yes. Add the include_html parameter when fetching an entry. For examples, refer to the following API requests:
Contentstack FAQs
Contentstack is a headless CMS with an API-first approach that puts content at the center. It is designed to simplify the process of publication by separating code from content. You can access, create, and manage content in Contentstack, via RESTful APIs, across multiple channels such as websites, mobile apps, or any other platform. Go through our Contentstack website.
You will first need a Contentstack account to get started. Once you have an account, read our docs to understand how Contentstack works. Developers who are well aware of Contentstack and are interested in creating websites and apps can get started with our docs on various platforms. While new users, content managers, and editors can go through the basic concepts of creating a website or app in Contentstack in our Content Manager's Guide.
Yes, you can go through the Platforms and SDKs section where you can find our step-by-step tutorial for creating a website or app in Contentstack for some of the common platforms, such as JavaScript, iOS, React Native, etc.
You can also refer to the Sample Apps for more step-by-step guides.
Since Contentstack is a cloud-based CMS, you do not need anything (except for an internet connection, a browser, and a Contentstack account) to get started.
Contentstack provides 24x7 online support. You can contact the support team either by using the in-product chatbox or by emailing us at [email protected].
To learn more about Contentstack, visit Contentstack Academy.
Contentstack does not provide any formal training. However, it provides extensive documentation that covers a wide range of topics including, important concepts, guides, tutorials, SDK and API references, code samples, and short videos that help you learn and get started with Contentstack.
Contentstack is a cloud-based CMS. This means that you just need an internet connection on your desktop, laptop, or tablet to get started with Contentstack.
Contentstack runs on all modern desktop browsers.
Contentstack stores all of its data in MongoDB Server.
You are free to host your website with any provider of your choice. Alternatively, you can use Contentstack’s own front-end hosting and deployment platform, Contentstack Launch, for websites built on the Contentstack CMS.
Contentstack DataSync FAQs
No, the Sync tokens and Data are stored in the Filesystem in a plain-text format.
Yes, you can store your data on Filesystem, as well as on other database systems, such as MongoDB.
You can switch from contentstack-express to DataSync by following the steps mentioned in the migration guide.
Delivery Token FAQs
Both Access Tokens and Delivery Tokens provide read-only access to a stack.
Access Tokens can retrieve published and unpublished (draft) entries, regardless of the environment. Delivery Tokens can only retrieve published entries from the specific environment linked to the token.Note: Access Tokens are no longer supported for stacks created after December 16, 2020. Use Delivery Tokens for accessing published content and Management Tokens for Content Management API requests.Additional Resource: Refer to Types of Tokens to learn more about different tokens available in Contentstack.
No. Delivery Tokens are read-only and can only be used to retrieve published content. You cannot use them to create or update content.
No. You can use Delivery Tokens only to fetch published content from the environment they are associated with. They cannot retrieve draft or unpublished content.
No. Preview Tokens are linked with Delivery Tokens. You must first create a Delivery Token and generate a Preview Token.
No. A Delivery Token is strictly environment-specific. You must create separate Delivery Tokens for each environment for clear data separation.
Yes. Management Tokens provide full access to your stack, including unpublished content, and must remain private.
Delivery Tokens offer read-only access to only the published content, making them suitable for use in public-facing applications. They help maintain better security and data boundaries.
Anyone with access to your stack's settings can generate a Preview Token.
Entries FAQs
Contentstack offers Live Preview functionality, enabling you to review your entry content across various channels before saving or publishing it on your live website. This feature allows you to edit an entry and observe content changes simultaneously in real-time.
When you delete an entry that has been published, that entry will get unpublished. This means that the entry will cease to display on your web/mobile property.
Entry UID is unique per stack.
Every time you save an entry with changes, Contentstack creates a new version of the entry. Users can view all the versions and compare any two versions of an entry at a time. If you wish to switch back to a previous version, you can simply click the Version drop-down of your entry's page and 'View' the version or 'Compare' an earlier version with the current version from the list.
If you wish to make any previous version as the latest version of the entry, just select the required previous version and click on 'Save'.
The 'Publish Queue' section shows the list of all the items sent for publishing, along with its current publish status (published/pending/failed).
First, you need to check whether the ‘Deploy Content to Server’ option is enabled for the environment to which the entry is published. Then, the latest version of the contentstack-express server needs to be installed on your system. Until then, the status of entries shall be displayed as pending.
Yes. Currently, you can bulk publish multiple entries. Check out the CLI guide and Publish an Entry sections to know more.
You can also bulk publish multiple entries with nested references at once. Check out our Bulk Publish Entries with Nested References documentation to know more.
Yes, you can publish all nested references up to 5 levels of depth by publishing a single parent entry. Check out our Publish Entries with Nested References documentation to know more.
To create entries in a stack, you need to be either the owner of the stack or you need to be assigned a role that contains write access to the stack. If you are not the owner of the stack, you need to acquire write access to your role from the owner of the stack.
When you publish an entry, the system automatically puts it in the queue for publishing. The ‘Publish Queue’ section shows the list of all the items sent for publishing, along with their current status. You cannot manually change the status of an entry in the Publish Queue.
Contentstack does not support the auto-save feature, and so, unsaved data will be lost if not saved manually by the user. To avoid such inconveniences, always make sure you save the data before navigating away from the page.
No. The published entries in this case will not be affected. It will only be affected if you republish the entries on ‘staging’ after making changes to the content type ABC. Note that making changes to an existing content type (having entries) may cause the entries to lose data in Contentstack, but not on the published environment.
Entry Comments FAQs
Users or roles with "read" access to a specific content type or entry can access the entry comments feature. For more information, refer to the Mention Users or Roles in a Comment document.
No, webhooks cannot currently be triggered by entry comments.
If you delete a field with associated comments, both the field and its comments will no longer appear in the entry editor. The discussion automatically resolves and moves to the Resolved section in the Discussions tab. You can access these details anytime through the Discussions tab in the right navigation panel. For more information, refer to the Entry Comments document.
No, comments can only be added to the subfields of "Group" and "Global Fields", but not to the parent field as a whole. For more information, refer to the Add a Comment document.
To add comments to the subfields of a "Group", "Modular Blocks", or "Global" field marked as "Multiple," you must first enter data in the fields and save the entry. After saving, you can start adding comments to the subfields. For more information, refer to the Add a Comment document.
No, comments can only be added to the fields inside each block of a "Modular Blocks" field, not to the parent "Modular Blocks" field as a whole. For more information, refer to the Add a Comment document.
No, only one active discussion is allowed per field. However, an entry can have multiple open discussions across different fields. For more information, refer to the About Discussions document.
Yes, you can reopen a resolved discussion if there is no active discussion on the field it was originally linked to. For more information, refer to the Reopen a Discussion document.
Yes, discussions can be field-specific for each localized version of an entry. However, the "Comments" feature is not available for unlocalized entries or older versions. For more information, refer to the About Discussions document.
No, changes or edits made to comments are not tracked. Once submitted, comments are saved as-is.
No, comments and discussions are not included in the exported entry data.
Yes, tagged users receive email and in-app notifications.
No, only users with access to the content type or entry can be tagged or notified. For more information, refer to the Mention Users or Roles in a Comment document.
No, comments are specific to the field in the locale they are added to and do not carry over to other localized versions.
No, changes to the master locale entry do not affect the comments or discussions in localized versions.
No, currently, the comments feature cannot be disabled for specific fields or entries.
Resolved discussions remain accessible in the Resolved section of the Discussions tab for future reference. For more information, refer to the View Discussions Timeline document.
If an entry is deleted, all associated comments and discussions are permanently removed. While you can restore the entry from the Trash, the previous discussions cannot be recovered. For more information, refer to the Edit or Delete a Comment document.
Entry Variants FAQs
Entry Variants allow you to create different versions of an entry based on specific criteria, such as different languages, regions, or user preferences. This feature helps manage diverse content within the same entry structure.
Learn more about Entry Variants.
To create Entry Variants, go to the Entries section within your stack. When creating or editing an entry, you can create entry variants by selecting a variant from the “Variants” dropdown and updating the content specific to the selected variant.
Learn more about creating entry variants.
Yes, you can create Entry Variants for all content type entries available in your stack as long as your content type is linked to variant groups.
Learn to manage variant groups.
You can switch between Entry Variants using the “Variants” dropdown menu available in the entry editor. Select the desired variant to view or edit it.
Yes, some limitations include the Taxonomy not supporting the Variants feature and that you cannot create, delete, or edit the title and description of variant groups or variants within the stack.
Note: Variant Groups correspond to the experiences created within your Personalize projects.
Learn more about the limitations for entry variants.
No, you cannot directly localize an entry variant. However, you can create an entry variant specifically for a localized language.
To do this, select a localized entry first, and then create an entry variant for that language. This allows you to manage content variations for different languages.
Managing versions of Entry Variants can be more complex than standard entries. Use the version history feature to track changes and revert to previous versions as needed.
Learn more about managing versions of entry variants.
Yes, each entry variant can be published independently, allowing you to control which variants are live at any given time.
Learn more about publishing entry variants.
Publishing one entry variant does not impact the published status of other entry variants for the same entry. Each entry variant's status is managed separately.
Learn more about publishing entry variants.
You can publish entry variants in all the available languages of your stack. However, an entry variant can only be created for a language if the base entry is localized for that particular language.
Learn more about how publishing works with entry variants.
Yes, unpublishing an entry variant will remove it from public view, while other published entry variants of the same entry remain unaffected.
Learn more about unpublishing entry variants.
Yes, you can select entry variants from the entries list page and bulk publish them.
Learn more about how publishing works with entry variants.
Environments FAQs
An environment in Contentstack is a specific publishing channel for your content. It helps you manage and preview your content effectively at different stages, such as development, staging, or production, before making it available to the public. This ensures content quality, reduced errors, and a seamless user experience.
Yes, you can publish content simultaneously to multiple environments, such as development, staging, and production. This simplifies your workflow and ensures content consistency across environments.
If you delete an environment with published content, the associated entries and assets remain in Contentstack but become inaccessible via that environment.
Delivery tokens linked to the deleted environment are invalidated, preventing content retrieval through APIs.
Warning: This action is permanent, and you cannot restore a deleted environment.
You can automate content deployments to multiple environments simultaneously by configuring Webhooks or using Automate.
Webhooks allow you to trigger automatic deployments to multiple servers or services whenever you publish or update content.
Automate provides visual workflows to schedule, coordinate, and manage deployments across multiple environments, ensuring consistency.
Yes, each environment can have a different Base URL. This allows you to publish content to distinct locations, such as separate URLs for development, staging, and production, based on your deployment workflow.
No, an environment is specific to a single stack and cannot be shared across multiple stacks. Each stack requires its own set of environments to manage and deploy content independently.
Environments support multilingual content by allowing language-specific Base URLs. You can set different URLs per environment for each language, enabling content to be published and managed effectively across multiple languages and regions.
The Base URL is the consistent part of the destination’s web address. It helps Contentstack identify the destination to which you will publish the content, for example, www.yourdomain.com.
No, you do not need to enter the Base URL while setting up the environment for your mobile application.
This is because the apps fetch content directly from Contentstack via APIs.
Yes, environments are
global modules
available across all
branches of your
stack.
Any environment created in the main branch will be accessible in all other branches.
Experience Extensions FAQs
To separate an extension from Contentstack, we make use of the HTML5 sandbox attribute on the iframe. And, the following sandbox flags are enabled:
allow-scripts: This flag re-enables an extension to run JavaScript in its own sandbox allow-popups: Use this flag to enable your extension to open pop-ups. allow-popups-to-escape-sandbox: This flag allows the sandboxed document to open new windows without imposing any sandbox-specific restrictions on them.
Note: For external hosting of extensions, the allow-same-origin option will be enabled, where the origin refers to the domain where you've hosted the extensions. Also, ensure that the response header has the exact origin URL passed in the request header.
For Contentstack-hosted extensions, the iframe's origin will be null as we don't enable the allow-same-origin flag.
Yes, it is mandatory to host your extensions on HTTPS as we do not allow users to reference non-HTTPS URLs (i.e., http://) with the exception of Localhost URLs (http://localhost) which are used for development purposes.
If you plan to serve your extension from localhost, block mixed content protection in Chrome and Firefox.
Since an extension is run in a sandboxed iframe, it receives the origin null. Because of this reason, custom web fonts do not work as expected. In order to overcome this, you need to configure your servers to send the headers: Access-Control-Allow-Origin null or Access-Control-Allow-Origin
Yes, but only of the fields that you create using Contentstack’s UI Extensions. You cannot customize the appearance of Contentstack’s default fields
There are two ways to install Extensions in Contentstack:
Note: Extensions are going to be deprecated soon. We encourage you to visit our Marketplace to get a complete list of available apps.
Color picker YouTube video selector Key-value pair fields Product catalog viewer Salesforce/Marketo data fetcher
For more experience use cases, read All Contentstack Experience Extensions document.
The possibilities are endless. You can create a custom field and/or integrate the field with third-party apps.
No, there are no validation rules to be followed when choosing extension names. But do try to keep it short because long names can break the layout.
Yes, you can use multiple extensions in a content type. There are no limitations pertaining to using Extension fields. However, for content types, we have a field limitation of 100, which is applicable to Extension fields too.
Yes, there are certain limitations to using extensions. They are as follows:
Size: The maximum size of an extension is 500 KB Title: The title of an extension cannot exceed 256 characters Stack limit: At most 50 extensions can be installed in a stack. Config file size: The size limit of an extension’s configuration file is 10 KB JSON data type size: The maximum size limit of the JSON Data Type is 10 KB Browser-support: Internally hosted extensions are not supported on Internet Explorer and Microsoft Edge as they lack support for the <iframe> srcdoc attribute.
Yes, it is possible to add configuration externally on a stack-level. Refer to our API documentation on configuration from the Extension SDK during runtime.
To understand how this is done, refer to the Create New Custom Field article.
As the extension runs on the browser, a simple console debugger can be used to debug extensions.
If any URL defined in extension.json contains error or is invalid, the extension will not be rendered properly, i.e., it will be broken, and in some cases, it may not show up at all.
If you remove an installed extension, all the content that has been stored using the extension field will remain unaffected until another extension with the same UID but different attributes is used instead of the deleted extension in the content type.
It accepts multiple values if you enable the “Multiple” property while setting up the extension. To enable "Multiple," edit the extension, and check the Multiple checkbox on the extension configuration page.
The supported data types for an Extension field are: Text, Boolean, JSON, Number, and Date. Depending on the data that you want your extension field to consume, you can select any one of the data types.
When you update an extension, it is important to update the content type too (within which the extension is being used) by simply saving the content type once again. This integrates the updated changes in the extension with the content type.
When an extension is deleted, the following things may happen:
The entry data for the field remains unchanged, unless another extension with the same UID as of the deleted extension but with changed data type or the “Multiple” setting is added. The entry data for the field will not be rendered in UI.
Tip: If you need to render the entry data unchanged, you need to add a new extension with the same UID as of the deleted extension, with the same data type and set the “Multiple” option.
No, it will not affect any existing entries.
Theoretically, yes. An extension can affect your content owing to the fact that they have access to all the content that the user running the extension has. It is advisable that users take utmost care while building/using extensions to avoid any kind of data loss.
Field Validation FAQs
Yes. You can add custom validations to “Single Line Textbox” and “Multi Line textbox” fields by setting the “Validations (Regex)” property.
The “Validation (Regex)” field property is available for “Single Line Textbox” and “Multi Line textbox” fields. You can find common examples of validations in our documentation. Since you can add validations using regex, learning how regex works might be helpful.
No, you can only define one validation rule for a single field.
Validations can be added to “Single Line Textbox” and “Multi Line textbox” fields using regex (regular expressions). When creating a content type, perform the following steps to add regex validation to a field in order to check for email addresses:
Edit the required content type. Click on the “Email” field. This opens the Edit Properties window of the field. Now, enter the following regex value in the “Validation (Regex)” property. This will validate email addresses:
[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
Yes, you can set validations on the “File” field to restrict users from uploading certain file types. To do this, click the “File” field to open its properties. Then, use the “Allow file type(s)” property to allow the upload of specific file types.
Global Field FAQs
After creating a Global field, you can add it to any content type by editing the content type, inserting a new field, selecting Global, and choosing the desired Global field from the list.
Learn more about adding Global fields to content types.
Yes, Contentstack now allows nesting of Global fields up to 5 levels deep, including the parent field. This enhancement enables more flexible and complex content modeling. Learn more Nested Global Fields.
Global fields are ideal for content that is reused across multiple content types, such as SEO metadata, author information, or address details.
For example, an SEO Global field can include Meta Title and Meta Description fields, which can then be added to various content types to ensure consistent SEO data entry.
Learn more about Global Field Use Cases.
When you update a Global field’s schema, the changes automatically reflect in all content types where the Global field is used. This ensures consistency across your content model and reduces the need for repetitive updates.
Learn more about editing a Global field.
Yes, you can delete a Global field. However, deleting a Global field will result in the loss of data associated with that field in all existing entries. It’s advisable to ensure that the field is no longer needed before deletion.
Learn more about deleting a Global field.
Yes, Global fields are specific to the branch in which they are created. For example, if you create a SEO Global field within the development branch, you will be able to use or access this Global field only within that development branch.
Learn more about Branch-specific Modules.
The Reference field lets you link entries from the same or different content types, allowing dynamic relationships between content entries.
The Global field, on the other hand, is a reusable set of predefined fields that can be created once and added to multiple content types. Unlike the Reference field, which pulls existing content, a Global field requires users to input values separately for each entry where it is used.
A Group field is used to group related fields together within a single content type. It helps organize fields logically, especially when dealing with repeated or structured data (e.g., contact information, SEO fields).
A Global field, on the other hand, is a reusable set of fields that you can create once and reference across multiple content types. It’s ideal for maintaining consistency and reducing redundancy in your content model. Updates made to a Global field automatically reflect wherever it is used.
GraphQL FAQs
To try out Contentstack's GraphQL Content Delivery API, access the GraphQL explorer through the following endpoint:
https://www.contentstack.com/docs/developers/apis/graphql-content-delivery-api/explorer/?api_key=blt95a0a7afb9613f51&access_token=csd2e15b5bad2bf983e44dca27&environment=productionYou can apply your own stack details to test the GraphQL API requests over your stack.
Each entry or asset associated with a content type has its own set of system-defined fields. These fields provide additional information about the entity.
Let’s understand the different system fields generated by Contentstack’s GraphQL Content Delivery API for each entry or asset:
System FieldsDescriptionuid (String)Represents the unique ID of an entry or assetversion (Integer)Determines the version number assigned to an entry or assetcontent_type_uid (String)Determines the unique ID of the content type to which the entry or asset belongslocale (String)Determines the language in which the entry has been localizedpublish_detailsDetermines the following publishing details for an entry or asset:environment (String): Represents the publishing environmentlocale (String): Represents the publishing localetime (DateTime): Represents the publishing date and timeuser (String): Represents the publishercreated_at (DateTime)Determines the date and time at which the entry or asset was createdupdated_at (DateTime)Determines the date and time at which the entry or asset was last modifiedcreated_by (String)Represents the user who created the entry or added the assetupdated_by (String)Represents the user who last modified the entry or assettags (String)Determines the specific tags assigned to an entry or asset
To avoid the hassles of passing specific entry UIDs while fetching an entry from a singleton content type, you can prefix the content type UID with all_, e.g., all_header. You can query singleton content types in the same way as you query content types with multiple entries.
Consider the following query that attempts to fetch an entry of the Header singleton content type, which stores website header content:
query {
all_header { # Where the header content type is of type singleton.
total
items {
title
}
}
}Note: All the filters and ordering functions will be available to the user. They would work the same as how you query a content type with multiple entries.
When an API request hits the Contentstack server, internally the {content_type_uid}Where filter is assigned a JSON scalar value. Since the where filter accepts JSON scalar input types, you can create filters on keys that may not exist on the current content type's schema. Contentstack processes your API requests without any errors.
In Contentstack's GraphQL documents, you assign names to several entities, such as operations, content types, fields, variables, and fragments. All the GraphQL names you define must follow the same grammatical form of /[_A-Za-z][_0-9A-Za-z]*/.
Additional Resource: You can refer to the GraphQL documentation to learn more about the naming specifications.
The aforementioned naming convention means if you have a content type name that starts with a number, it will end up throwing the following error:
{
"errors": [
{
"message": "Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \"{content_type_name}\" does not."
},
...
]
}Tip: To prevent typename collisions, you can avoid using special characters while naming content types or fields.
Contentstack returns the MAX_DOCUMENT_LIMIT_EXCEEDED error message when a GraphQL API request attempts to fetch more than 7,500 documents (assets, entries, their referenced assets and entries, etc.).
To resolve this error, you can reduce the total number of referenced items being queried or pass the skip or limit parameters while querying referenced items. Learn more about fetching referenced entries or assets.
Contentstack counts each GraphQL query as one irrespective of the number of content types queried in it. Similarly, the rate limit remains the same whether you query one or more than one content types in a single API request.
JSON Rich Text Editor FAQs
Yes, you can migrate content from existing HTML-based RTE to the new JSON RTE using CLI. Please refer to our migration guide for more details.
Yes, Contentstack allows you to migrate your rich text content from your existing HTML-based RTE fields to the new JSON RTE fields for all entries of a content type in just a few minutes. Please refer to our migration guide for more details.
You can use the
Properties
option in
More options
to add tags in the JSON RTE.
Yes, you can add the include_html parameter while fetching an entry to get a HTML response. Please refer to the following API requests in our CMA API documentation:
JSON RTE Plugins FAQs
Yes, we have three prebuilt plugins namely Highlight, Info Panel, and Word Count. For more information, refer to our Use Prebuilt JSON RTE Plugins documentation.
No, you cannot create plugins for the HTML based editor. These plugins are only available for the JSON Rich Text Editor in the new Contentstack user interface.
Yes, you can create customized plugins for your JSON Rich Text Editor. For more information, refer to our Create New JSON RTE Plugin documentation.
No, you can host your plugin in Contentstack by uploading the plugin.system.js file in Assets and using this file URL to add the plugin to a stack. For more information, refer to the Host the Custom JSON RTE Plugin section in our Create New JSON RTE Plugin documentation.
Yes, you can clone the extensions repository and change the source code for the JSON RTE plugin you want to update. You’ll then need to host this new code and add it to your stack. For more information, refer to our Create New JSON RTE Plugin documentation.
Yes, you can create, update, or delete plugins via API. Please check our JSON RTE Plugins CMA request collection.
Yes, you can test your plugin on a local host. For more information, refer to the Test the JSON RTE Plugin section in our Create New JSON RTE Plugin documentation.
Labels FAQs
Labels in Contentstack help you organize content types into logical folders, making it easier to manage and access them.
Labels make it easier to organize content types based on teams, projects, or any specific criteria. This improves navigation and simplifies content type management.
Yes, labels are branch-specific. A label created in one branch (e.g., development) can only be applied to content types within that branch.
Yes, you can edit or delete labels by accessing the Manage Labels modal. You can rename a label, nest it under another label, or delete it if no longer needed.
Yes, you can assign multiple labels to a content type. For more details, refer to the About Labels documentation.
Content types without labels are listed under [Unlabeled] in the Content Type Views section on the Entry List page. For more details, refer to the About Labels documentation.
No, labels are not included when exporting or importing content types.
Yes, you can create, edit, rename, nest, and delete labels in Contentstack. For detailed instructions, refer to the Manage Labels documentation.
Localization FAQs
Contentstack supports writing or adding content from right to left (RTL) using the JSON Rich Text Editor streamlining the process of content management and editing. However, for other text fields, users can paste Arabic and Hebrew content copied from any source file. Learn how localization works.
No, Contentstack does not provide any translation service.
The default language of a stack is known as the master language of a stack. Once it is set while creating a stack, it cannot be changed. Read more about master language.
No. You need to perform the following steps to localize an entry.
Select the language using the language selector option, say French - France. The entry page for ‘French - France’ shows an Unlocalized, unpublished copy of the main entry in Master language. Now, make changes in this entry in order to localize it in ‘French - France’, and click on Save or Publish.
This will create a new copy of the same entry. This new copy will then cease to fetch data from the main entry in master language, and the entry will be considered as localized in ‘French - France’.
Yes, you can retrieve content from the fallback language version of an entry or asset if the current localized version hasn’t been published. Pass the include_fallback=true query parameter to fetch the published version from the fallback language. Learn more about how the fallback logic works while retrieving published content.
You can also refer to our Content Delivery API documentation on entries and assets to understand how you can fetch fallback content for published entries.
If the fallback language for the specified locale is the master language itself, then the include_fallback:true query parameter is rendered inapplicable.
Live Preview FAQs
To set up Live Preview, you need to first configure the feature for the website for which you want to preview content. Once configured, you can enable Live Preview for the stack that holds your website content through the stack’s “Settings”.
Learn how to Set up Live Preview for your website and enable the feature within your stack.
No, you do not need to save or publish your entry to preview content. The changes you make to an entry reflect in the preview window in real-time.
Yes, you can preview the content of your website even if the server is running on localhost.
Yes, the functionality for multi-level references is expected to work seamlessly in Live Preview 2.0.
Management Token FAQs
Both management tokens and authtokens allow read-write access to a stack, enabling authorized CMA (Content Management API) requests.
Authtokens are user-specific and include personal user details with every API request. Management tokens are stack-level tokens not tied to any user, meaning role-specific permissions do not apply.Additional Resource: Refer to the Types of Tokens document to learn about tokens.
Yes, Management Tokens support create, read, update, and delete operations for both published and unpublished (draft) content of your stack, irrespective of the publishing environment.
Yes, you can set an expiration limit for the Management Token or generate one without an expiry date.
Additional Resource: Learn more about setting expiration limits while generating a Management Token.
You can update a token’s name, description, scope, permissions, expiry date, and rate limits. However, you cannot modify the generated token string.
Additional Resource: Refer to the Edit a Management Token document for further details.
Use Management Tokens for automation, CI/CD pipelines, external integrations, or in Single Sign-On environments. This avoids the risk of exposing personal authtokens.
Not entirely. While Management Tokens support most CMA (Content Management API) requests, they cannot manage:
Publish rules requiring user interaction User roles Workflow stage assignments
No, Management Tokens do not have permissions to manage user invitations or removals.
Miscellaneous FAQs
You can add custom filters for retrieving content via API calls. When executing the GET calls to retrieve content, you can pass certain queries as parameters. These queries act as filters and fetch all the content that satisfy the specified query expression.
To know more about the queries that can be used to filter out content, refer the Queries section of our API docs.
Contentstack uses CDN which helps to deliver content and implements caching, wherein the CDN maintains cached copies of the resource that have been accessed via API calls and make them available to users for future requests.
Contentstack uses two frameworks for websites – Contentstack Express and Contentstack SDK.
Yes, the Authtoken is unique per user. The authtoken is very important as it is required to perform the write API calls.
To retrieve the API Key of your stack, perform the steps given below after logging into your Contentstack account:
In your stack, click the Settings icon on the left navigation panel. By default, you will be on the Stack option. At the right-hand side of the page, you will find the API Credentials section under which you will get the API Key for your stack.
To retrieve the Authtoken, you need to log in to your Contentstack account via the login call of the User Session API Request. And, in the response body of the call, you will find your Authtoken.
Markdown is a markup language with plain text formatting syntax. It does not support inline styling (CSS). However, you can input HTML in Markdown. Here's the official Markdown documentation on inline HTML.
You can import content types as well as entries into your stacks in Contentstack. Our documentation provides in-depth guides and video tutorials on how to import content types and entries.
If you are using Contentstack’s web framework, routing is handled by the router that is available in the app.js file or the custom plugin of your framework. Learn more about how routing works with Contentstack.
A unique identifier (UID) is an alphanumeric string that is associated with an entity (content type, entry, asset, or field) in Contentstack. UIDs make it possible to address/identify that entity so that it can be accessed and interacted with.
Yes. many external applications can be integrated with Contentstack. Check out the external integrations page to learn more.
Yes. Through plugins and hooks, you can add custom logic to extend the functionality of Contentstack. Learn how this works.
Nested Reference Publishing FAQs
You can publish nested referenced items up to a default depth of 5 levels at a time, for both single and bulk publishing, and can vary as per your organization’s plan.
You can only select a maximum of 50 locales in which you want to publish content.
You can only select a maximum of 50 environments to which you want to publish content.
Yes, the "Nested Reference Publishing" feature supports scheduled publishing options.
No, you cannot selectively publish specific child entries of a parent entry.
Yes, you get a tree view of all nested items while publishing an entry.
You can select a maximum of
100
parent entries when publishing entries in bulk.
No, while bulk publishing entries, you cannot view the nested references for any of the selected parent entries.
Yes, you can check the status of all published tasks in the
Publish Queue
.
Preview Sharing FAQs
The Share button in Visual Editor will be disabled if your Live Preview SDK version is older than v3.2.0.
To enable sharing functionality, make sure you’re using Live Preview SDK v3.2.0 or later.
Yes, you can share the preview link with multiple internal and stakeholders for collaborative feedback.
Yes, comments are threaded, allowing reviewers and content managers to reply within a discussion thread
Resolved comments can be accessed in the Resolved section within the Discussions panel.
Yes, you can reopen a resolved comment if further discussion is required.
Only the original commenter can delete their respective comment.
By default, the expiration period is 7 days, but it can be adjusted when generating the preview link.
No, you need to generate a new preview link after expiration.
Yes, both internal and external reviewers receive email notifications if they are tagged in new comments.
Preview Sharing allows both internal and external stakeholders to review content and leave comments anywhere on the page, while Visual Editor Discussions are intended for internal teams to provide field-level comments focused on design and structure directly within Contentstack.
Releases FAQs
You can update all entries and assets within a release to their latest versions using the Update release items to their latest versions option.
This warning indicates you're trying to add an entry to a release that was created before the bulk add to release feature was enabled. To resolve this, clone the older release into a new one that supports nested references, and then add the entries to the cloned release.
No, you cannot update the items of a locked release. However, you can unlock a release and update the items to their latest version.
Yes, you can update release items to their latest versions to update the unlocalized release entry to its localized version.
If you update the release to their latest versions, all the entries within the release will get updated to their latest versions. However, if an entry is in an in-progress state, it will return an error during the publishing operation.
No, you cannot update specific release items to their latest versions individually. You need to create a separate release to update specific items individually.
In Stack Bulk Task Queue, you will see the items added to the release. Details such as items removed from release and who locked or unlocked the releases are not visible in the Stack Bulk Task Queue.
Yes, you can duplicate a release by cloning a release. This will create a new release with the same content as the original release.
Release status will be changed to deployed once the deployment is completed. You can also check the deployment status in Publish Queue.
Search FAQs
Yes, you can use the Quick Search feature to search for entries and assets from any location within your stack.
Yes, you can share your saved views with other collaborators within the stack.
Additional Resource: Refer to our Share Saved Views document for more information.
Only users with Edit access can update a saved view. Users with View access can modify the view, but must save it as a new one.
You will receive a notification via the bell icon when someone shares a view with you.
Yes, you can select multiple users or roles in the Share View modal and assign appropriate permissions.
No, saved views can only be shared within the same
stack.
Popular Views are predefined sets of filters and settings tailored for common search scenarios, such as All Entries or Not Published.
Saved Views are custom views that you create and save based on your specific search settings. These views can be accessed later for repeated use.
No, Popular Views are predefined and cannot be changed or updated. However, you can modify the results generated by a popular view and save them as a new Saved View.
To customize the displayed filters, click the Manage Filters button at the bottom of the left panel. Then, select the desired filters and rearrange them according to your needs.
Additional Resource: Refer to our Use Filters document for more information.
Yes, you can.
Additional Resource: Refer to our Advanced Search document for more information.
Yes, you can edit the title of your saved view and update an existing view with additional queries.
Additional Resource: To learn more about modifying views, refer to our Use Saved Views document.
Yes, you can search for custom fields by selecting the Specific field option from the dropdown in the search bar.
Additional Resource: Refer to our Basic Search document for more information.
You can view localized entries using the Language filter, which narrows the entries list to a specific language. This filter is accessible from the Filters panel on the left or by clicking the “Filter” icon in the Language column of the entries table.
Additional Resource: For more information, refer to our Get Localized Entries documentation.
Stack FAQs
Yes, you need a Stack to start working with Contentstack. All content, including content types, entries, and assets, is stored within a Stack.
After creating the stack, you are automatically redirected to it. You can now start adding content and managing assets.
Yes, the stack Owner or Admin can edit a stack’s details.
Deleting a stack removes all associated entries, assets, and settings. If you have accidentally deleted a stack, the Contentstack Support team can assist with data restoration. For further information, refer to the Restore Deleted Content document.
To find the Stack’s API key, log in to your Contentstack account and perform the following steps:
Go to your stack and click the “Settings” icon in the left navigation panel or use the shortcut key “S” (for Windows and MacOS users). View the stack’s API Key in the API Credentials section.
You can use it to authenticate and make API requests.
No, you cannot change the Master Language after creating the Stack. However, you can add multiple languages to localize your content.
Once you transfer the ownership,
The new owner gets full control over the stack. You lose Stack Owner privileges but remain a user.
Yes, you can track all changes using Audit Logs.
Yes, you can duplicate stacks. You can also use Branches to create multiple copies of your stack content.
Taxonomy FAQs
The taxonomy feature is a global module that will be available across all branches in a stack.
Taxonomy is the higher-level module that contains terms which are the main pieces that help classify entries. For example, if you want to classify your entries based on regions, you can create a taxonomy called Regions and have terms within it such as North America, Europe, Australia, India, etc.
Learn more about creating taxonomy and creating terms.
The modules currently available in Contentstack will not be affected. You can create taxonomies as per your requirements, and simply add them to the content types, and classify the entries by adding terms.
If you delete a taxonomy, its association with all the content types to which it was added is lost. Also, the terms within the taxonomy also lose their association to the entries.
Note: Once deleted, you can restore a taxonomy within 14 days.
If you delete terms within a taxonomy, all its child terms are deleted as well. As a result, the entries to which these terms were linked will lose their connection.
Note: Once deleted, you can restore a term within 14 days.
Terms serve as fundamental elements for categorizing entries. You can incorporate multiple terms within a taxonomy, organizing them in a hierarchical structure. Subsequently, you can associate these terms with entries.
Learn more about creating terms and adding terms to entries.
Certainly, you have the flexibility to rearrange and shift terms within a taxonomy as needed, allowing for a more organized and structured classification.
Learn more about moving terms.
You can retrieve information for all or a specific taxonomy. You can also create and delete taxonomies using the API requests.
Refer to the Taxonomy collection in our Content Management API documentation for more information.
You can retrieve information for all or a specific taxonomy via the API requests.
Refer to the Taxonomy collection in our Content Delivery API documentation for more information.
Yes, we have introduced the following enhancements to the Content Management API requests:
Timeline FAQs
Timeline is a feature that allows content managers to visualize how their website will appear once scheduled updates are made live. It provides a comprehensive view of upcoming content transformations.
Timeline works by enabling users to set specific dates and times for content updates. It then allows them to preview these changes in a simulated environment, ensuring everything looks as intended before going live.
Learn more about Preview Content across a Timeline.
Yes, Timeline allows you to check the appearance of content editions without the need to schedule them initially. This flexibility helps in refining content before committing to a publishing schedule.
Learn more about Previewing Entries.
Yes, Timeline supports various types of content updates, including text changes, image updates, layout adjustments, and more. It offers a holistic preview experience for all scheduled changes.
By using Timeline, you can streamline your workflow by ensuring that updates align with your site's design and user experience goals. It also helps in coordinating content releases and maintaining consistency across scheduled changes.
Learn more about Preview Content across a Timeline.
The key differences between Timeline and the Release Preview app in Contentstack lie in their implementation, capabilities, and integration within the Contentstack ecosystem.
Implementation:
Release Preview App: Visualizes future changes before a scheduled release, requires marketplace integration. Timeline: Core feature with backend support for a seamless experience.
Capabilities:
Release Preview App: Limited to specific release dates. Timeline: Preview or compare the website for any future date.
Integration:
Release Preview App: Requires separate installation and setup. Timeline: Built-in, no extra setup needed.
Timeline offers better functionality, flexibility, and integration than the Release Preview App.
Note: The Release Preview app is no longer supported and has been removed from the Contentstack marketplace.
Core Integration: No extra installations required. Backend Support: Smoother and more reliable. Enhanced Flexibility: Preview any future date. Comprehensive Comparison: Compare across different future releases/scheduled publishes. Future-Proof: Regular updates and improvements.
Note: The Release Preview app is no longer supported and has been removed from the Contentstack marketplace.
Yes, Timeline supports previewing content across various environments, allowing you to visualize how updates will appear before they go live.
Yes, Timeline supports previewing content in multiple languages, helping you ensure consistency and accuracy across localized versions of your website.
Visual Editor FAQs
Visual Editor is an intuitive feature that allows content creators to edit, manage, and preview web pages in real time. It includes enhanced collaboration, automation options, and advanced field editing with modifiers and AI tools.
Learn more about Visual Editor.
Yes, you can modify text, images, and other components directly on the canvas using the toolbar. For advanced fields or structured edits, you can use the Form panel. All updates appear in real time on the preview, giving you immediate visual feedback.
Learn more about editing pages.
Yes, you can rearrange modular blocks and field instances within the page layout. Use the arrow controls on the canvas to move components vertically or horizontally based on their structure.
Learn more about editing pages.
To set up Visual Editor, ensure that your organization has the Live Preview and Visual Editor plans enabled. Additionally, you need to have a configured live preview setup.
Learn more about setting up Visual Editor.
The Form panel lets you edit content directly alongside a live preview of your webpage. It’s the fastest way to update content and see those changes in real time, without switching tabs or losing context.
You can use the breadcrumb trail at the top to navigate between parent and referenced entries. You can edit referenced entries inline without opening a new tab, making the editing experience seamless and efficient.
These features streamline content updates and help maintain visual and structural context throughout the editing process.
Once you have made your changes in Visual Editor, click Save to save your edits. Then, click the Publish button to see all the modified entries, where you can choose to bulk publish them at once.
Learn more about Publishing a Page.
Yes, the Discussions panel allows team members to leave comments and feedback directly on any fields or components within a page. You can also view active discussions, resolved feedback, and the timeline for all discussions across web pages.
Learn more about Discussions.
The Audiences feature in Visual Editor allows you to preview personalized content by simulating how it will appear to different audience segments. Using specific filters, you can preview and customize the page for a targeted set of users, ensuring tailored content reaches the right audience.
Learn more about Audiences.
Visual Editor offers a WYSIWYG (What You See Is What You Get) interface, enabling you to edit content directly on the canvas of your web page. This allows for a more intuitive and immersive experience, as you can see how your changes will look in real time while editing the layout and content together. It also supports field modifiers and sidebar extensions like Automate and AI Assistant within the canvas, allowing you to work across multiple entries in a visual environment.
In contrast, the traditional entry editor focuses on editing individual fields of entries in a structured form view. It requires you to modify text, images, and other components for one entry at a time, without a live preview of the overall page.
While the traditional editor is effective for detailed content management, Visual Editor provides a comprehensive view, making it easier to understand the impact of your changes as you go.
Learn more about Visual Editor.
Yes, use the Automate app from the right sidebar to trigger automations directly within Visual Editor. You can streamline tasks like updating content, triggering workflows, or applying translations. All changes appear instantly on the canvas, so you can see the results in real time.
Learn more about Automate.
When working on a page with multiple entries, Visual Editor displays contextual metadata, such as content type, field name, and reference path when you hover over a field. This helps you quickly identify the associated entry and ensures you update the correct content.
Yes, you can access AI-powered field modifiers directly on the canvas. You can open a draggable modal, use the AI Assistant to refine field content, and view your updates in real time without opening the Form panel.
Webhooks FAQs
In the case where a third party services is down during a webhook POST call, you won't receive any notifications. But, users have the provision to retry the webhook operation. You can check webhook logs to view the failed requests and can retry them.
When a release is deployed, it triggers the webhooks for the individual items (entries and assets) of the release, if such webhook events are defined.
In such cases, a source key is added to the webhook data of an event that is triggered via a release. This key contains the JSON data of the source event (type, title, and UID).
Here's what is added to the webhook data:
"source": {
"type": "release",
"title": "{{release_title}}",
"uid": "{{release_uid}}"
},You can trigger a webhook for several events as listed in the Webhook Events article.
Yes, you can filter the webhook execution details returned in the API response based on a specific date range. To do so, pass from and to as query parameters while running the Get executions of a webhook API request. You need to provide the dates for both these parameters in ISO format.
For instance, to specify December 8, 2017, you can provide the following value in ISO date format:
2017-12-08T00:00:00.000Z
Contentstack supports several authentication methods for webhooks including HTTP Basic Auth, OAuth 2.0 Client Credential, and Bearer Token. Each method offers a different level of security and integration flexibility to suit various use cases.
Note: The Basic Auth method is available by default. To enable the OAuth 2.0 Client Credential authentication method for your organization, please contact our support team.
If an OAuth token expires, the webhook should return a status code of 4xx (typically 400, 401, or 403) with specific error messages like invalid_request, invalid_token, or insufficient_scope. Contentstack will then request a new token and retry the webhook request.
You can specify additional parameters required by your OAuth authorization server using the Request Query Parameters field in the webhook settings. This allows you to provide context or instructions in key-value format.
Note: The request query parameters will be appended to the access token URL.
Workflows FAQs
You can create a minimum of 2 and a maximum of 20 Workflow stages.
Yes. You can add more than one workflow for a content type, as long as each workflow is associated with a distinct branch.
First, you need to add all the stages at once, and later on you can browse through Stage transition rules to select a specific stage under the Next available stages section.
No, you cannot add more than one publish rule for a content type.
Yes, workflows can be integrated with publish rules for automated publishing. You can set up rules to automatically publish content when it reaches certain stages of the workflow. For more information, refer to the publish rules documentation.
Currently, Contentstack does not support cloning or copying workflows directly. You need to manually create a new workflow and replicate the steps from the existing one.