---
title: "Headless CMS FAQs"
description: "Headless CMS FAQs"
url: "https://www.contentstack.com/docs/headless-cms/faqs"
product: "Contentstack"
doc_type: "guide"
audience:
  - developers
  - admins
version: "current"
last_updated: "2026-04-21"
---

# Headless CMS FAQs

## Access Token Removal FAQs

### What is Access Token removal?

Access Token removal refers to the deprecation of Access Tokens in Contentstack for [stacks](/docs/developers/set-up-stack/about-stack) created after **December 16, 2020.** Thus, new stacks no longer support Access Tokens for authentication.

Instead, you can:

*   Use [Delivery Tokens](/docs/developers/create-tokens/about-delivery-tokens/) with the access\_token header for [Content Delivery API](/docs/developers/apis/content-delivery-api) requests.
*   Use [Management Tokens](/docs/developers/create-tokens/about-management-tokens/) or [Authtokens](https://www.contentstack.com/docs/developers/create-tokens/types-of-tokens#authentication-tokens-auth-tokens) for [Content Management API](/docs/developers/apis/content-management-api/) requests.

This enhances security and provides more control over content access.

### Why were Access Tokens deprecated?

Access Tokens provided broad stack-level access, including both published and draft content across [environments](/docs/developers/set-up-environments/about-environments), which increased security risks. To enhance security and improve management flexibility, Contentstack introduced [Delivery Tokens](/docs/developers/create-tokens/about-delivery-tokens/) and [Management Tokens](/docs/developers/create-tokens/about-management-tokens/) as more secure alternatives.

### Is there a way to reset my existing Access Token?

Yes. The stack [Owner](/docs/developers/invite-users-and-assign-roles/types-of-roles#owner), [Admin](/docs/developers/invite-users-and-assign-roles/types-of-roles#admin), or [Developer](/docs/developers/invite-users-and-assign-roles/types-of-roles#developer) can reset the Access Token for stacks created before **December 16, 2020.**

### What tokens should I use instead of the Access Token?

*   Use Delivery Tokens to fetch environment-specific published content such as [assets](/docs/content-managers/author-content/about-assets) and [entries](/docs/content-managers/author-content/about-entries) via the Content Delivery API.
*   Use Management Tokens or Authtokens to fetch unpublished or draft content via the Content Management API.

### Does Access Token deprecation affect all stacks?

No. The deprecation only applies to stacks created after **December 16, 2020**. [Stacks](/docs/developers/set-up-stack/about-stack) created before this date still support Access Tokens. However, using Delivery and Management Tokens is strongly recommended.

### Can I view unpublished or draft content without the Access Token?

Yes. You can use a Management Token or your user-specific Authtoken to fetch unpublished or draft content.

### Give me an example request that no longer works since Access Token support ended?

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 stack

This request **does not** work for stacks created after **December 16, 2020**. Replace {your\_access\_token} with your Delivery Token.

### How do I replace Access Tokens with Delivery or Management Tokens?

To replace Access Tokens with Delivery Tokens:

1.  [Generate a separate Delivery Token](/docs/developers/create-tokens/create-a-delivery-token) for each publishing environment.
2.  Use the Delivery Token value in the access\_token header for Content Delivery API calls.

To replace Access Tokens with Management Tokens:

1.  Generate a Management Token or request one from the stack [Owner](/docs/developers/invite-users-and-assign-roles/types-of-roles#owner) / [Admin](/docs/developers/invite-users-and-assign-roles/types-of-roles#admin).
2.  Use the Management Token value in the authorization header for Content Management API calls.

### How can I replace the Access Token in my existing scripts?

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}'`

### Can I see when my Access Token was last used?

No. Contentstack does not log Access Token usage. You must manually replace Access Tokens with Delivery or Management Tokens in your scripts and integrations.

### Why am I still seeing the access_token key in headers after deprecation?

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.

### Is there a quick reference guide to understand tokens in Contentstack?

You can refer to the [Types of Tokens](/docs/developers/create-tokens/types-of-tokens) document to understand the differences, usage, and limitations.

### Can I use a Management Token with the access_token parameter?

No. Use:

*   **Delivery Tokens** with the access\_token header (Content Delivery API)
*   **Management Tokens** with the authorization header (Content Management API)

## Architecture FAQs

### What is a partially headless setup, and when do I need one? What does a fully headless setup look like?

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](/docs/developers/architecture-diagrams/partially-headless-setup-detailed-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.

### What do we consider a simple site?

A simple site is a website that has a few pages and limited third-party integration. An example of a [simple website](/docs/developers/architecture-diagrams/simple-website-detailed-architecture) could be a marketing site of an enterprise, which uses basic integration services such as website search, site analytics, and so on.

### How do I know if I should set up a static site or  a simple site?

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](/docs/developers/architecture-diagrams/dynamic-website-detailed-architecture) or [simple website](/docs/developers/architecture-diagrams/simple-website-detailed-architecture) 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.

### Can I start simple and move to a dynamic setup?

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.

### Which setup scales the best?

The [dynamic website](/docs/developers/architecture-diagrams/dynamic-website-detailed-architecture) 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

### What types of media files are supported?

Contentstack supports various media file types, including image links, video links, GIFs, and more. These files can be uploaded as [assets](/docs/content-managers/working-with-assets/about-assets) and used in [entries](/docs/content-managers/working-with-entries/about-entries).

### What is the maximum allowed size of a single asset (file) that can be uploaded?

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](/docs/developers/how-to-guides/validations#file-size-limit) validation rule.

### Is there a limit to the total number of assets that can be uploaded in a stack?

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](mailto:support@contentstack.com) team for more details.

### How to use Image Delivery API requests on images inserted directly into the Rich Text Editor (RTE)?

Contentstack does not support applying [Image Delivery API](/docs/developers/apis/image-delivery-api/) requests on images directly inserted into text fields. However, you can achieve this by following these steps:

1.  **Upload the Image as an Asset**: Upload the image to the Asset module using the [Upload Asset](/docs/developers/apis/content-management-api#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.
2.  **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.
3.  **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.

### Is it possible to query the same asset with different dimensions?

Yes, you can use the [Image Delivery API](/docs/developers/apis/image-delivery-api/) to query the same asset with different dimensions.

### Is it possible to edit assets in bulk?

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](/docs/content-managers/author-content#bulk-operations-on-assets).

### Does Contentstack support additional metadata for assets and entries?

Yes, the additional metadata support for assets/entries is available.

### Does the version of an asset or entry change when additional metadata is added using the API?

No, adding metadata via the API does not increment the version of the entry or asset.

### If I publish an asset or entry, will its metadata also be published?

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](/docs/developers/apis/content-management-api#publish-metadata) documentation.

### How can I add additional metadata to an asset or entry?

You can add additional metadata to an asset or entry only through the [Metadata for Entries and Assets](/docs/developers/apis/content-management-api#metadata-for-entries-and-assets) Content Management API requests.

### What is the maximum metadata size limit for an entry or asset?

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.

### What happens to an asset's URL if it is unpublished?

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.

### Can I customize the asset filename after uploading it?

No, once an asset is uploaded, the filename cannot be changed.

### Does replacing an asset affect its references in entries?

Replacing an asset does not break references in entries as long as you are using [permanent URLs](/docs/content-managers/author-content/generate-a-permanent-asset-url/).

### Can I organize assets into folders or categories?

Yes, Contentstack allows you to organize assets into [folders](/docs/content-managers/author-content/create-a-folder) for easier management. You can create nested folders and move assets between them.

### Is it possible to restore a deleted asset?

[Trash](/docs/developers/manage-trash/about-trash) maintains a backup of all deleted assets for up to **14 days** from the date of deletion. You can [restore](/docs/developers/manage-trash/restore-a-deleted-asset) deleted assets before they are permanently deleted.

### Does Contentstack support asset versioning?

Yes, Contentstack maintains a [version history](/docs/content-managers/author-content/about-asset-versioning) for assets, allowing you to view and restore previous versions if necessary.

## Asset Folder-level Permission FAQs

### What is the primary purpose of asset folder-level permissions?

[Asset folder-level permissions](/docs/developers/invite-users-and-assign-roles/create-a-role#permissions-on-assets/) 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.

### Can I assign permissions to multiple asset folders at once?

Yes, you can select multiple asset folders and assign them to a custom role simultaneously. This streamlines the process of managing [permissions](/docs/developers/invite-users-and-assign-roles/create-a-role#permissions-on-assets/) across multiple folders.

### Can I assign different permissions to different asset folders?

Yes, you can assign distinct [permissions](/docs/developers/invite-users-and-assign-roles/create-a-role#permissions-on-assets/) 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.

### Do folder-level permissions apply to the assets and subfolders within a folder?

Yes, when you assign [permissions](/docs/developers/invite-users-and-assign-roles/create-a-role#permissions-on-assets/) to a folder, those permissions also apply to its assets and any subfolders, ensuring consistent access control within the folder hierarchy.

### Can I revoke folder-level permissions from a custom role?

Yes, you can modify or revoke [permissions](/docs/developers/invite-users-and-assign-roles/create-a-role#permissions-on-assets/) 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.

### What happens if a user belongs to multiple roles with different permissions?

When a user belongs to multiple roles with varying [permissions](/docs/developers/invite-users-and-assign-roles/create-a-role#permissions-on-assets/):

*   **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

### How does this feature affect the other modules in Contentstack?

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](/docs/developers/branches/branch-specific-modules) and [Global Modules](/docs/developers/branches/global-modules) documentation for more information.

### What are branch-specific modules?

Modules such as [Content Types](/docs/developers/create-content-types/about-content-types), [Global Fields](/docs/developers/global-field/about-global-field), [Entries](/docs/content-managers/working-with-entries/about-entries), [Assets](/docs/content-managers/working-with-assets/about-assets), [Publish Queue](/docs/content-managers/publish-content/view-publish-status-of-entries-assets-in-publish-queue), [Releases](/docs/developers/create-releases/about-releases), [Languages](/docs/developers/multilingual-content/about-languages), [Extensions](/docs/developers/about-experience-extensions), [Audit Logs](/docs/developers/set-up-stack/monitor-stack-activities-in-audit-log), [Global search](/docs/developers/branches/branch-specific-modules/#global-search), and [Labels](/docs/developers/create-content-types/about-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](/docs/developers/branches/branch-specific-modules) documentation for more information.

### What are global modules?

Modules such as [Environments](/docs/developers/set-up-environments/about-environments), [Webhooks](/docs/developers/set-up-webhooks/about-webhooks), [Workflows](/docs/developers/set-up-workflows-and-publish-rules/about-workflows), [Publish Rules](/docs/developers/set-up-workflows-and-publish-rules/about-publish-rules), [Users](/docs/developers/invite-users-and-assign-roles/about-stack-users), [Roles,](/docs/developers/invite-users-and-assign-roles/about-stack-roles) and [Tokens](/docs/developers/create-tokens/types-of-tokens) are globally available. Details for these modules are available across every branch of the stack.

Please refer to our [Global Modules](/docs/developers/branches/global-modules) documentation for more information.

### Which Roles can access the branches feature?

Any user with the role “[Owner,](/docs/developers/invite-users-and-assign-roles/types-of-roles/#owner)” “[Admin,](/docs/developers/invite-users-and-assign-roles/types-of-roles/#admin)” and “[Developer](/docs/developers/invite-users-and-assign-roles/types-of-roles/#developer)” will be able to use the branches feature. [Content managers](/docs/developers/invite-users-and-assign-roles/types-of-roles/#content-manager) can only work within the branches assigned to them. [Custom roles](/docs/developers/invite-users-and-assign-roles/types-of-roles/#custom-role) can access branches as per the permissions assigned to them.

### Can we set up a webhook or workflow for a specific branch?

Yes. You can set up a webhook or workflow for a specific branch. The system allows the creation of [branch-specific](https://www.contentstack.com/docs/developers/branches/branch-specific-modules) workflows for a content type.

### Can I add languages specific to a branch?

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](/docs/developers/branches/branch-specific-modules/#languages) section in our [Branch-specific Modules](/docs/developers/branches/branch-specific-modules/) document for more information.

### How do I work with Extensions within branches?

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](/docs/developers/branches/branch-specific-modules/#extensions) section in our [Branch-specific Modules](/docs/developers/branches/branch-specific-modules/) document for more information.

### Can I delete the main branch?

No, the main branch cannot be deleted. Please refer to the [Limitations of Branches](/docs/developers/branches/limitations-of-branches) document.

### Can two different aliases point to the same branch?

Yes, two different aliases can point to the same branch. Learn how to [Assign an Alias to a Branch](/docs/developers/branches/assign-an-alias-to-a-branch).

### Can a branch and an alias have the same unique ID?

No, you cannot have the same unique ID for a branch and an alias.

### How do I work with branches using Content Management API?

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](/docs/developers/apis/content-management-api#branches) collection in our Content Management API documentation for more information.

### What changes are expected in the existing Content Management API requests?

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](/docs/developers/apis/content-management-api) documentation for more information. You can also visit the [API Change Log](/docs/developers/apis/api-change-log/february-25-2022) for more details about the breaking changes.

### How can I compare branches?

You can compare two branches to get the differences in the content type or global field modules, by either using the [Comparing Branches](/docs/developers/apis/content-management-api/#branches) requests in [Content Management API](/docs/developers/apis/content-management-api/) or the [Compare Branches using the CLI.](/docs/developers/cli/compare-and-merge-branches-using-the-cli/#steps-to-compare-branches)

### How can I merge branches?

You can merge the differences in the content type or global field modules of two branches, by either using the [Merging Branches](/docs/developers/apis/content-management-api/#merging-branches) requests in [Content Management API](/docs/developers/apis/content-management-api/#branches) or the [Branch Merge using the CLI.](/docs/developers/cli/compare-and-merge-branches-using-the-cli/#steps-to-merge-branches)

### Is the compare and merge feature available for all the modules in a branch?

No, currently the compare and merge feature is only available for the content type and global field modules.

### Can I compare and merge branches via the CMS?

No, currently the compare and merge feature is only available via [CMA requests](/docs/developers/apis/content-management-api/#comparing-branches) or [CLI commands.](/docs/developers/cli/compare-and-merge-branches-using-the-cli/)

### How many branches can I compare or merge at once?

You can compare or merge two branches at a time. Please refer to our documentation on [Comparing and Merging Branches](/docs/developers/branches/about-compare-and-merge-branches/) for more information.

### Are there different strategies for merging two branches?

Yes, there are various merge strategies to choose from while merging two branches. Please refer to our [Merging Branches](/docs/developers/branches/merging-branches) documentation for more information on how to select the best possible merge strategy.

### What if my merge action fails?

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](/docs/developers/branches/merging-branches) documentation for more information on how to select the best possible merge strategy.

## CLI FAQs

### How can I use the Europe, Azure North America, Azure Europe, or Google North America endpoint to execute CLI commands?

Use the

Set Region

command to set up and use the Europe, Azure North America, Azure Europe, or Google North America region.

### Does the “Delete Token” command delete the token from the stack?

No. The [Delete Token](/docs/developers/cli/cli-authentication#delete-token) command removes the token only from the current session and not from the stack.

### Can I clone stacks using CLI?

Yes. Refer to the

Clone a Stack

guide to get started.

### How does the export and import command work?

You can use the [export](/docs/developers/cli/export-content-using-the-cli) and [import](/docs/developers/cli/import-content-using-the-cli) commands to migrate your content from one stack to another. To do this, first you need to use the export command to export the content from the source stack and then use the import command to import it into the destination stack.

### How to export content into a .CSV file?

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](/docs/developers/cli/export-content-to-csv-file) on the topic.

### What is the Bootstrap Starter Apps command?

The Bootstrap Starter Apps command automates the procedure of stack creation and setting up the project (starter app). Follow [this](/docs/developers/cli/bootstrap-starter-apps) guide to set up and run a starter app with minimal steps.

### Can I merge branches using the CLI migration command?

No. Currently, the **branches** **merge feature** is **not supported**.

## Content Type FAQs

### Can I add custom fields to a content type?

Yes. You can create and add custom fields to your content type. To learn more, refer to the [Custom Fields](/docs/developers/create-custom-fields/about-custom-fields) documentation.

### Is there a limit to the number of fields in a content type?

Yes. A content type can have up to **500 fields**.

### Can I remove the default “Title” field from a content type?

No. The [Title](/docs/developers/create-content-types/title) field is a default field and cannot be removed.

### Can the “Title” field be set as non-unique?

No. The **Title** field is always unique by default.

### How do references work in content types?

The [Reference](/docs/developers/create-content-types/reference) field allows you to include entries from other content types within a content type.

### How do I change the display name of a field?

When you [create a content type](/docs/developers/create-content-types/create-a-content-type) and add a field, follow these steps to change its display name:

1.  Click the “Properties” (gear) icon for the field.
2.  Enter a suitable title under the [Display Name](/docs/developers/create-content-types/display-name) property.

### Can I add tooltips to fields?

Yes. You can add tooltips using the [Help Text](/docs/developers/create-content-types/help-text) property of a field.

1.  Click the “Properties” (gear) icon for the field.
2.  In the **Help Text** field, enter the text you want to display as a tooltip.
3.  Hyperlinks are supported.

**Tip**: Keep tooltips short and precise.

### Can I change the UID of a content type?

No. Once created, a content type’s UID cannot be changed. However, you can edit the UID while [creating the content type](/docs/developers/create-content-types/create-a-content-type).

### Why do I get an error when changing a field UID to camelCase?

Field UIDs must contain only lowercase characters (a–z) and numbers (0–9). Uppercase letters are not allowed.

### Why do I get the error “Schema.3.uid is a restricted value”?

This error occurs when a field UID uses a reserved keyword. Contentstack [restricts certain keywords](/docs/developers/create-content-types/restricted-keywords-for-uids) from being used as UIDs in content types or entries.

### Can I revert to a previous version of a content type via the UI?

No. Contentstack lets you [compare content type versions](/docs/developers/create-content-types/content-type-versioning), but you cannot revert to an earlier schema version.

### How do I restore a previous version of a content type?

You can restore a content type using APIs:

1.  Fetch the previous version of the content type using the [Versioning API](/docs/developers/apis/content-management-api#get-a-single-content-type).
2.  Use the [Import a Content Type API](/docs/developers/apis/content-management-api#import-content-type) to import the version you fetched.

**Warning**: Restoring a previous version saves it as a new version, which may lead to data loss.

### Can I compare non-sequential versions?

Yes. The **Compare Versions** screen lets you select any two saved versions of a content type, even if they are not consecutive.

### Does field reordering appear in comparisons?

No. Field reordering is not tracked in content type version comparisons because it does not affect the underlying data.

### Does versioning affect entries or only schemas?

Versioning applies only to the **content type schema**. Entry data, workflow states, and published content remain unaffected.

### Can I restore or copy fields from an older version?

No. You cannot directly restore fields from a previous version, but you can manually recreate them using the comparison view as a reference.

### How are schema changes highlighted in comparisons?

Contentstack uses **Added**, **Deleted**, and **Modified** tags to indicate schema changes between versions.

### Are version numbers editable?

No. Contentstack automatically assigns sequential version numbers, which cannot be renamed or manually managed.

### Is there a limit to the number of versions stored?

No. All saved versions of a content type are retained, although performance may be affected if an unusually large number of versions is stored.

### Do you provide sample content type templates?

Yes. Contentstack provides:

*   [Starter apps](/docs/developers/sample-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](/docs/developers/create-content-types/import-prebuilt-content-models/) that you can use directly to speed up your setup.

### What are the best practices for changing a content type schema?

Refer to the [Best Practices for Content Type Changes](/docs/developers/how-to-guides/content-type-change-management) guide. It covers scenarios to help you avoid data loss when making schema changes.

### Is there a character limit for key-value pairs in Select fields?

Yes. Each key and value can contain up to **100 characters**.

### Will the JSON schema change for Select fields with key-value pairs?

Yes. The JSON schema for Select fields includes both key and value data. Refer to the [Select Field Schema](/docs/developers/create-content-types/json-schema-for-creating-a-content-type#select) documentation for details.

### Will choices be deleted if I toggle the Enable key-value option in Select fields?

Yes. All existing choices are lost if you toggle this option.

### Can I migrate content from HTML RTE to JSON RTE?

Yes. You can migrate content using CLI. Refer to the [JSON RTE Migration](/docs/developers/cli/migrate-content-from-html-rte-to-json-rte/) Guide.

### Can I migrate HTML RTE to JSON RTE in bulk?

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](/docs/developers/cli/migrate-content-from-html-rte-to-json-rte/) guide.

### How do I add HTML tags in JSON RTE?

In the formatting bar, click **Property** > **Add Properties**, enter the details in the modal that appears, and click **Apply**.

### Can I get an HTML response from JSON RTE?

Yes. Add the include\_html parameter when fetching an entry. For examples, refer to the following API requests:

*   [Create a content type with JSON RTE](/docs/developers/apis/content-management-api#create-content-type-with-json-rte)
*   [Create an entry with JSON RTE](/docs/developers/apis/content-management-api#create-an-entry-with-json-rte)
*   [Update an entry with JSON RTE](/docs/developers/apis/content-management-api#update-an-entry-with-json-rte)

## Contentstack FAQs

### What is Contentstack?

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](https://www.contentstack.com/) website.

### How do I get started with Contentstack?

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](/docs/developers#development-resources). While new users, content managers, and editors can go through the basic concepts of creating a website or app in Contentstack [](/docs/content-managers)in our [Content Manager's Guide](/docs/content-managers).

### Is there a step-by-step tutorial to create a website/app from scratch?

Yes, you can go through the [Platforms and SDKs](/docs/developers#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](/docs/developers/sample-apps) for more step-by-step guides.

### What software do I need to get Contentstack running?

Since Contentstack is a cloud-based CMS, you do not need anything (except for an internet connection, a browser, and a [Contentstack](https://www.contentstack.com/) account) to get started.

### What kind of support does Contentstack provide?

Contentstack provides 24x7 online support. You can contact the support team either by using the in-product chatbox or by emailing us at [support@contentstack.com](mailto:support@contentstack.com).

To learn more about Contentstack, visit [Contentstack Academy](https://www.contentstack.com/academy).

### Does Contentstack provide any kind of training?

Contentstack does not provide any formal training. However, it provides extensive [documentation](/docs) 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.

### What hardware do I need to get Contentstack running?

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.

### What browsers do you support? Are there any system requirements for using Contentstack?

Contentstack runs on all modern desktop browsers.

### Where does Contentstack store/save my data?

Contentstack stores all of its data in MongoDB Server.

### Do I have to host my website with Contentstack?

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](/docs/developers/launch/about-launch/), for websites built on the Contentstack CMS.

## Contentstack DataSync FAQs

### Are the Sync tokens and Data stored in encrypted formats?

No, the Sync tokens and Data are stored in the Filesystem in a plain-text format.

### Can I store my data on other database systems?

Yes, you can store your data on Filesystem, as well as on other database systems, such as MongoDB.

### Currently, I am running a website on contentstack-express. So, how can I switch from contentstack-express to DataSync?

You can switch from contentstack-express to DataSync by following the steps mentioned in the [migration guide](/docs/developers/develop-apps-with-datasync/contentstack-datasync-vs-contentstack-express#migrate-from-contentstack-express-to-contentstack-datasync).

## Delivery Token FAQs

### ​What is the difference between Access Tokens and Delivery Tokens?

Both Access Tokens and Delivery Tokens provide read-only access to a [stack](/docs/developers/set-up-stack/about-stack).

*   [Access Tokens](https://www.contentstack.com/docs/developers/create-tokens/types-of-tokens#access-tokens) can retrieve published and unpublished (draft) [entries](/docs/content-managers/author-content/about-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](/docs/developers/create-tokens/types-of-tokens) to learn more about different tokens available in Contentstack.

### Can I use Delivery Tokens to create content?

No. **Delivery Tokens** are read-only and can only be used to retrieve published content. You cannot use them to create or update content.

### Can I use Delivery Tokens to fetch unpublished 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.

### Can I have a Preview Token without a Delivery Token?

No. [Preview Tokens](/docs/developers/create-tokens/about-delivery-tokens#understanding-preview-tokens) are linked with Delivery Tokens. You must first [create a Delivery Token](/docs/developers/create-tokens/create-a-delivery-token) and [generate a Preview Token](https://www.contentstack.com/docs/developers/create-tokens/create-a-delivery-token#create-a-preview-token-for-an-existing-delivery-token).

### Can the same Delivery Token be used for both production and staging environments?

No. A Delivery Token is strictly [environment](/docs/developers/set-up-environments/about-environments)\-specific. You must [create separate Delivery Tokens](/docs/developers/create-tokens/create-a-delivery-token) for each environment for clear data separation.

### Do I need Delivery Tokens if I'm already using Management Tokens?

Yes. [Management Tokens](/docs/developers/create-tokens/about-management-tokens) provide full access to your [stack](/docs/developers/set-up-stack/about-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.

### Who can create a Preview Token?

Anyone with access to your stack's settings can generate a Preview Token.

## Drafts and Auto Save FAQs

### What Happens if I Close the Editor?

[Drafts and Auto Save](/docs/content-managers/author-content/about-drafts-and-auto-save) automatically stores draft updates, so you do not need to manually click **Save** before leaving the editor.

If you close the browser tab or refresh the page:

*   Your most recent synced changes remain saved as a draft
*   The draft state loads automatically when you reopen the entry
*   The browser does not display the standard “unsaved changes” warning

**Note** If your internet connection drops before changes are synced, recent edits may not be saved. Confirm that the status indicator shows that changes are synced before leaving the page.

### Does a Draft Automatically Convert to a Version?

No. [Drafts and Auto Save](/docs/content-managers/author-content/about-drafts-and-auto-save) creates and updates draft states only.

A draft becomes a major version only when you explicitly click **Save** or **Publish**.

Until then:

*   Changes remain in draft state
*   Entry Listing page displays a **Draft** pill

### What Happens During Network Delays or Sync Conflicts?

[Drafts and Auto Save](/docs/content-managers/author-content/about-drafts-and-auto-save) uses a debounce-based mechanism. Changes sync automatically after you pause typing.

If a network delay occurs:

*   The status indicator shows that changes are syncing
*   Editing may pause and become temporarily unavailable, if connectivity is lost

If another user edits the same entry:

*   Fields they are editing become locked for you
*   You can view updates shortly after they are saved
*   You cannot modify a field that is currently locked

**Warning** You cannot edit a field while another user is actively editing it. The field becomes available after the lock is released.

### Can I Compare Draft Changes?

Yes. You can compare:

*   Minor draft updates (auto-saved changes)
*   Major saved versions

Compare helps you:

*   Review collaborative edits
*   Validate changes before saving
*   Identify differences between draft and major versions

**Note** Draft versions are retained only for the **five most recent major versions** of an entry. When newer major versions are created, draft updates associated with older major versions are automatically removed. As a result, only recent drafts appear in the version comparison panel.

### What If Another Version Is Newer Than My Draft?

If another user saves or publishes a newer version while you are editing:

*   A notification appears
*   Editing may be temporarily restricted
*   You must compare your draft with the newer version before saving to avoid overwriting changes

**Note** Always compare your draft with the latest version before saving if you receive a notification about a newer version.

### Do Drafts and Auto Save Create Too Many Versions?

No. Minor updates are grouped in draft logs. Only explicit **Save** or **Publish** actions create major versions.

This reduces unnecessary version creation while maintaining a clear version history.

### Can Multiple Users Edit the Same Entry at the Same Time?

Yes, with field-level locking.

*   Each field locks individually when edited
*   Other users can edit different unlocked fields
*   Structural actions in container fields may be restricted if nested fields are locked

This allows collaboration while preventing direct editing conflicts.

## Entries FAQs

### How can I preview my entry before publishing?

Contentstack offers [Live Preview](/docs/content-managers/live-preview/about-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.

### If I have deleted an entry that has currently been published to an environment, how will this action impact the entry?

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.

### Is the entry UID unique per stack? Or is it unique to a content type?

Entry UID is unique per stack.

### How is versioning of entries handled?

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'.

### How do I know if an entry sent for publishing is actually published?

The '[Publish Queue](/docs/content-managers/publish-content/view-publish-status-of-entries-assets-in-publish-queue)' section shows the list of all the items sent for publishing, along with its current publish status (published/pending/failed).

### I am wondering why the status of the entries in my Publish Queue is marked as 'Pending'? When I attempt to retrieve entries using the Content Delivery API I get an empty array.

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.

### Can we bulk publish multiple entries at once?

Yes. Currently, you can [bulk publish multiple entries](/docs/content-managers/author-content/bulk-publish-entries). Check out the [CLI guide](/docs/developers/web-framework/contentstack-express-command-line-utility#publish) and [Publish an Entry](/docs/content-managers/working-with-entries/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](/docs/content-managers/author-content/bulk-publish-entries/#bulk-publish-entries-with-nested-references) documentation to know more.

### Can I publish nested references while publishing a single entry?

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](/docs/content-managers/author-content/publish-an-entry/#publish-entries-with-nested-references) documentation to know more.

### I am trying to create a new entry using the API and I am getting the following permissions error: { "error_message": "Access denied. You have insufficient permissions to perform this operation.", "error_code": 162 }. What could be the problem?

To create entries in a stack, you need to be either the [owner of the stack](/docs/developers/invite-users-and-assign-roles/types-of-roles#owner) 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.

### I have published entries but have not been able to find information on how to change the status in the Publish Queue.

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.

### Does Contentstack provide auto-save feature? If, by chance, I leave the page while in the midst of creating an entry or content type, will Contentstack save the data?

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.

### If I have published a set of entries of Content Type ‘ABC’ on an environment (let’s say, staging), and then made some changes to the structure of this content type, will this impact the entries that I had published on ‘staging’?

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](/docs/content-managers/working-with-entries/about-entries) to lose data in Contentstack, but not on the published [environment](/docs/developers/set-up-environments/about-environments).

## Entry Comments FAQs

### Which users or roles can use the entry comments feature?

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](https://www.contentstack.com/docs/content-managers/author-content/mention-users-or-roles-in-a-comment) document.

### Can we set up a webhook to trigger based on entry comments?

No, webhooks cannot currently be triggered by entry comments.

### I have comments on a field that was later deleted. Can I still access those 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](https://www.contentstack.com/docs/content-managers/author-content/about-entry-comments/) document.

### Can I add comments to a Global field or Group field as a whole?

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](https://www.contentstack.com/docs/content-managers/author-content/add-a-comment) document.

### I am unable to add comments to a Global field in my entry marked as “Multiple”. How can I resolve this?

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](https://www.contentstack.com/docs/content-managers/author-content/add-a-comment) document.

### Can I add comments to a Modular Blocks field as a whole?

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](https://www.contentstack.com/docs/content-managers/author-content/add-a-comment) document.

### Can I have more than one active discussion in the same field?

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](https://www.contentstack.com/docs/content-managers/author-content/about-discussions) document.

### Can I reopen a resolved discussion?

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](https://www.contentstack.com/docs/content-managers/author-content/reopen-a-discussion) document.

### Can I have separate discussions for entries present in the master locale and other localized versions of the entry?

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](https://www.contentstack.com/docs/content-managers/author-content/about-discussions) document.

### Can I track the history of changes to a comment?

No, changes or edits made to comments are not tracked. Once submitted, comments are saved as-is.

### Are comments visible in exported entries?

No, comments and discussions are not included in the exported entry data.

### Will users be notified when a comment is added?

Yes, tagged users receive email and [in-app notifications](https://www.contentstack.com/docs/manage-notifications).

### Is it possible to tag external users or teams in a comment?

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](https://www.contentstack.com/docs/content-managers/author-content/mention-users-or-roles-in-a-comment) document.

### Do comments in one locale carry over to other locales?

No, comments are specific to the field in the locale they are added to and do not carry over to other localized versions.

### If I change the master locale entry, will it impact comments in localized versions?

No, changes to the master locale entry do not affect the comments or discussions in localized versions.

### Can I disable the comments feature for specific fields or entries?

No, currently, the comments feature cannot be disabled for specific fields or entries.

### What happens to old discussions after they are resolved?

Resolved discussions remain accessible in the **Resolved** section of the **Discussions** tab for future reference. For more information, refer to the [View Discussions Timeline](https://www.contentstack.com/docs/content-managers/author-content/view-discussions-timeline) document.

### What happens to comments if an entry is deleted?

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](https://www.contentstack.com/docs/content-managers/author-content/edit-or-delete-a-comment) document.

## Entry Variants FAQs

### What are Entry Variants in Contentstack?

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](/docs/content-managers/entry-variants/about-entry-variants).

### How do I create 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](/docs/content-managers/entry-variants/create-an-entry-variant).

### Can I use Entry Variants with all content types?

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](/docs/developers/variants/manage-variant-groups).

### How do I switch between Entry Variants?

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.

### Are there any limitations when using Entry Variants?

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](/docs/personalize/about-experiences) created within your Personalize projects.

Learn more about the [limitations for entry variants](/docs/content-managers/entry-variants/limitations-for-entry-variants).

### Can I localize 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.

### How do I manage versions of Entry Variants?

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](/docs/content-managers/entry-variants/manage-versions-of-entry-variants).

### Can I publish entry variants independently?

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](/docs/content-managers/entry-variants/publish-an-entry-variant).

### How does publishing affect other variants of the same entry?

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](/docs/content-managers/entry-variants/publish-an-entry-variant).

### How does language-specific publishing work for 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](/docs/content-managers/entry-variants/understanding-how-publishing-works-with-entry-variants).

### Can I unpublish an entry variant?

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](/docs/developers/variants/manage-variant-groups#unpublishing).

### Can I publish all entry variants at once?

Yes, you can select entry variants from the entries list page and bulk publish them.

Learn more about [how publishing works with entry variants](/docs/content-managers/entry-variants/understanding-how-publishing-works-with-entry-variants).

## Environments FAQs

### What is an environment in Contentstack, and why do I need one?

An [environment](/docs/developers/set-up-environments/about-environments) 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.

### Can I use multiple environments within a single stack?

Yes, you can create and manage multiple environments within a single stack. You can also create custom channels for specific needs (e.g., mobile apps, social media) using [Automate](/docs/developers/automation-hub-guides/about-automation-hub) or [Webhooks](/docs/developers/set-up-webhooks/about-webhooks).

### Is it possible to publish content simultaneously to multiple environments?

Yes, you can [publish](/docs/content-managers/author-content/publish-an-entry) content simultaneously to multiple environments, such as **development**, **staging**, and **production**. This simplifies your workflow and ensures content consistency across environments.

### Can I create environments for mobile applications or social media platforms?

Yes, Contentstack allows you to create dedicated environments tailored specifically for **mobile apps**, **social media**, or other custom channels using [Automate](/docs/developers/automation-hub-guides/about-automation-hub) or [Webhooks](/docs/developers/set-up-webhooks/about-webhooks).

### Who has permission to create, edit, or delete environments in Contentstack?

Only the stack [Admin](/docs/developers/invite-users-and-assign-roles/types-of-roles#admin) and [Developer](/docs/developers/invite-users-and-assign-roles/types-of-roles#developer) can [create](/docs/developers/set-up-environments/add-an-environment), [edit](/docs/developers/set-up-environments/edit-an-environment), or [delete](/docs/developers/set-up-environments/delete-an-environment) an environment.

### What happens if I delete an environment that already has published content?

If you [delete an environment](/docs/developers/set-up-environments/delete-an-environment) with published content, the associated [entries](/docs/content-managers/author-content/about-entries) and [assets](/docs/content-managers/author-content/about-assets) remain in Contentstack but become inaccessible via that environment.

[Delivery tokens](/docs/developers/create-tokens/about-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.

### How can I automate content deployments to multiple environments simultaneously?

You can automate content deployments to multiple environments simultaneously by configuring [Webhooks](/docs/developers/set-up-webhooks/about-webhooks) or using [Automate](/docs/developers/automation-hub-guides/about-automation-hub).

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.

### Can different environments have different base URLs?

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.

### Is it possible to use the same environment for multiple stacks?

No, an environment is specific to a single [stack](/docs/developers/set-up-stack/about-stack) and cannot be shared across multiple stacks. Each stack requires its own set of environments to manage and deploy content independently.

### How do environments interact with multilingual content setups?

Environments support multilingual content by allowing language-specific **Base URLs**. You can set different URLs per environment for each [language](/docs/developers/multilingual-content/about-languages), enabling content to be published and managed effectively across multiple languages and regions.

### While setting up an environment, why do you ask for the base URL?

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.

### Should I enter a base URL while setting up an environment for my mobile application?

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.

### Are environments shared across all branches in Contentstack?

Yes, environments are  
[global modules](/docs/developers/branches/global-modules)  
available across all  
[branches](/docs/developers/branches/about-branches) of your  
[stack](/docs/developers/set-up-stack/about-stack).  
Any environment created in the main branch will be accessible in all other branches.

## Experience Extensions FAQs

### How do you sandbox an extension iframe?

To separate an extension from Contentstack, we make use of the [HTML5 sandbox attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox) 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.

### Is hosting extensions on HTTPS a mandatory process?

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](https://support.google.com/chrome/answer/1342714) and [Firefox](https://support.mozilla.org/en-US/kb/mixed-content-blocking-firefox).

### Do we need to make use of the CORS mechanism?

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

### Can I customize Contentstack’s field appearance?

Yes, but only of the fields that you create using Contentstack’s UI [Extensions](/docs/developers/about-experience-extensions). You cannot customize the appearance of Contentstack’s default fields

### How can I install an Extension?

There are two ways to install Extensions in Contentstack:

*   Via [Contentstack UI](/docs/developers/developer-hub/about-ui-locations).
*   Using [Extensions Content Management APIs](/docs/developers/apis/content-management-api#extensions)

**Note:** Extensions are going to be deprecated soon. We encourage you to visit our [Marketplace](/docs/developers/marketplace-apps) to get a complete list of available apps.

### What are common use cases for Extensions?

*   [Color picker](/docs/developers/create-custom-fields/use-prebuilt-custom-fields/color-picker)
*   [YouTube video selector](/docs/developers/create-custom-fields/youtube)
*   [Key-value pair fields](/docs/developers/create-custom-fields/use-prebuilt-custom-fields/key-value-field)
*   Product catalog viewer
*   [Salesforce](/docs/developers/create-custom-widgets/salesforce-einstein)/[Marketo](/docs/developers/create-custom-fields/marketo-forms) data fetcher

For more experience use cases, read [All Contentstack Experience Extensions](/docs/developers/all-contentstack-experience-extensions) document.

The possibilities are endless. You can create a custom field and/or integrate the field with third-party apps.

### Are there any naming conventions to be followed when creating extensions?

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.

### When creating a particular content type, can I use multiple Extension fields? If yes, is there any limitation to it?

Yes, you can use multiple [extensions](/docs/developers/about-experience-extensions) in a [content type](/docs/developers/create-content-types/about-content-types). 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.

### Are there any limitations to using extensions in general?

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](https://caniuse.com/#feat=iframe-srcdoc) attribute.

### Is it possible to externally configure the code of an Extension?

Yes, it is possible to add configuration externally on a stack-level. Refer to our [API documentation](/docs/developers/apis/content-management-api#extensions) on configuration from the Extension SDK during runtime.

To understand how this is done, refer to the [Create New Custom Field](/docs/developers/create-custom-fields/create-new-custom-field) article.

### How do you debug extensions?

As the extension runs on the browser, a simple console debugger can be used to debug extensions.

### What happens if I deploy a broken extension?

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.

### What happens with the content once an extension is removed?

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.

### Does the extension field accept multiple values?

It accepts multiple values if you enable the “[Multiple](/docs/developers/create-content-types/multiple)” property while setting up the extension. To enable "Multiple," edit the extension, and check the **Multiple** checkbox on the extension configuration page.

### What are the supported data types for an Extension? How do we decide which data type to select?

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.

### I updated an extension recently. Since then, the field shows an error in the entry page. What could have gone wrong?

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.

### What happens when an extension is deleted?

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](/docs/developers/create-content-types/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.

### I have updated an extension. Will it affect any existing entries?

No, it will not affect any existing entries.

### Can an extension destroy existing content?

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

### Can I add custom validations to the fields of a content type?

Yes. You can add custom validations to “[Single Line Textbox](/docs/developers/create-content-types/single-line-textbox)” and “[Multi Line textbox](/docs/developers/create-content-types/multi-line-textbox)” fields by setting the “[Validations (Regex)](/docs/developers/create-content-types/validation-regex)” property.

### Are there any examples of validations that you can set on a field?

The “[Validation (Regex)](/docs/developers/create-content-types/validation-regex)” field property is available for “[Single Line Textbox](/docs/developers/create-content-types/single-line-textbox)” and “[Multi Line textbox](/docs/developers/create-content-types/multi-line-textbox)” fields. You can find common examples of validations in our [documentation](/docs/developers/how-to-guides/validations). Since you can add validations using regex, learning [how regex works](http://www.regular-expressions.info/) might be helpful.

### Can I define multiple validation rules to a single field?

No, you can only define one validation rule for a single field.

### How do I add a validation for an email address for a field?

Validations can be added to “[Single Line Textbox](/docs/developers/create-content-types/single-line-textbox)” and “[Multi Line textbox](/docs/developers/create-content-types/multi-line-textbox)” fields using regex (regular expressions). When [creating a content type](/docs/developers/create-content-types/create-a-content-type), perform the following steps to add regex validation to a field in order to check for email addresses:

1.  Edit the required content type. Click on the “Email” field. This opens the **Edit Properties** window of the field.
2.  Now, enter the following regex value in the “[Validation (Regex)](/docs/developers/create-content-types/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\])?

### Can I restrict users from uploading some image types? I want my users to be able to upload only PNG files and not JPEG or any other image type.

Yes, you can set validations on the “[File](/docs/developers/create-content-types/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)](/docs/developers/create-content-types/allowed-file-types)” property to allow the upload of specific file types.

## Global Field FAQs

### How can I use a Global field within a content type?

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](/docs/developers/global-field/add-the-global-field-to-content-types/).

### Can I nest Global fields within other Global fields?

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](/docs/developers/global-field/create-a-global-field#using-nested-global-fields).

### What are some common use cases for 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](/docs/developers/global-field/global-field-use-cases/).

### How do updates to a Global field affect content types?

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](/docs/developers/global-field/edit-a-global-field/).

### Can I delete a Global field, and what happens if I do?

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](/docs/developers/global-field/delete-a-global-field/).

### Are Global fields stack-specific?

Yes, Global fields are specific to the stack in which they are created. However, you can [export](/docs/developers/global-field/export-a-global-field/) and [import](/docs/developers/global-field/import-a-global-field/) them across multiple stacks.

### Are Global fields branch-specific?

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](/docs/developers/branches/branch-specific-modules).

### Who can create and manage Global fields?

Only users with the roles of stack [Owner](/docs/developers/invite-users-and-assign-roles/types-of-roles#owner), [Admin](/docs/developers/invite-users-and-assign-roles/types-of-roles#admin), or [Developer](/docs/developers/invite-users-and-assign-roles/types-of-roles#developer) have the permissions to create and manage Global fields.

### What is the difference between Global field and Reference field?

The [Reference](/docs/developers/create-content-types/reference) field lets you link entries from the same or different content types, allowing dynamic relationships between content entries.  

  
The [Global](/docs/developers/global-field) 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.

### What is the difference between a Global Field and a Group Field?

A [Group](/docs/developers/create-content-types/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](/docs/developers/create-content-types/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

### How to use the GraphQL explorer for your stack?

To try out Contentstack's [GraphQL Content Delivery API](/docs/developers/apis/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=production`

You can apply your own stack details to test the GraphQL API requests over your stack.

### What are the GraphQL System-defined Fields?

Each [entry](/docs/content-managers/author-content/about-entries) or [asset](/docs/content-managers/author-content/about-assets) associated with a [content type](/docs/developers/create-content-types/about-content-types) 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 Fields****Description**uid (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

### How do I fetch data of singleton content types without passing the entry UID?

To avoid the hassles of passing specific entry UIDs while fetching an entry from a [singleton](/docs/developers/create-content-types/single-vs-multiple-content-types) 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](/docs/developers/apis/graphql-content-delivery-api#get-a-list-of-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.

### Why does the "where" filter not throw an error when I query a field that does not exist in the current schema?

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.

### What restricted special characters should I avoid while defining names for GraphQL entities such as content types, fields, etc.?

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](https://spec.graphql.org/June2018/#sec-Names).

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.

### What is the MAX_DOCUMENT_LIMIT_EXCEEDED error and how to resolve it?

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](/docs/developers/apis/graphql-content-delivery-api#retrieving-referenced-entries-or-assets).

### If I query three different content types in a single GraphQL API request, does it count as three queries or one?

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

### Can I migrate content from existing HTML-based RTE to the new JSON RTE?

Yes, you can migrate content from existing HTML-based RTE to the new JSON RTE using CLI. Please refer to our [migration guide](/docs/developers/cli/migrate-content-from-html-rte-to-json-rte) for more details.

### Can I migrate content from HTML-based RTE to JSON RTE in bulk?

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](/docs/developers/cli/migrate-content-from-html-rte-to-json-rte) for more details.

### How can I add class HTML tags in the new JSON RTE?

You can use the

Properties

option in

More options

to add tags in the JSON RTE.

### Can I get a HTML response for my 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:

*   [Create a content type with JSON RTE](/docs/developers/apis/content-management-api#create-content-type-with-json-rte)
*   [Create an entry with JSON RTE](/docs/developers/apis/content-management-api#create-an-entry-with-json-rte)
*   [Update an entry with JSON RTE](/docs/developers/apis/content-management-api#update-an-entry-with-json-rte)

## JSON RTE Plugins FAQs

### Do you have any prebuilt plugins for the JSON Rich Text Editor?

Yes, we have **three** prebuilt plugins, namely Highlight, Info Panel, and Word Count. For more information, refer to our [RTE Location](/docs/developers/developer-hub/rte-location) documentation.

### Can I create plugins for the HTML-based rich text editor?

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](/docs/introducing-the-new-contentstack/).

### Can I create customized JSON RTE plugins?

Yes, you can create customized plugins for your JSON Rich Text Editor. For more information, refer to our [RTE Location](/docs/developers/developer-hub/rte-location) documentation.

### Is it necessary to host the JSON RTE plugin on an external server?

No, you can host your plugin in Contentstack by uploading the plugin.system.js file to Assets and using this file URL to add the plugin to a stack. For more information, refer to the [RTE Location](/docs/developers/developer-hub/rte-location) documentation.

### Can I change the source code for the prebuilt JSON RTE plugins?

Yes, you can clone the [extensions](https://github.com/contentstack/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 [RTE Location](/docs/developers/developer-hub/rte-location) documentation.

### Can I create JSON RTE plugins via API?

Yes, you can create, update, or delete plugins via API. Please check our [JSON RTE Plugins CMA request](/docs/developers/apis/content-management-api/#json-rte-plugins) collection.

### Can I test my plugin locally?

Yes, you can test your plugin on a local host. For more information, refer to the [RTE Location](/docs/developers/developer-hub/rte-location) documentation.

## Labels FAQs

### What are Content Type Labels in Contentstack?

[Labels](/docs/developers/create-content-types/about-labels/) in Contentstack help you organize content types into logical folders, making it easier to manage and access them.

### Why should I use labels for content types?

[Labels](https://www.contentstack.com/docs/developers/create-content-types/about-labels/) make it easier to organize content types based on teams, projects, or any specific criteria. This improves navigation and simplifies content type management.

### Are labels branch-specific?

Yes, labels are [branch-specific](/docs/developers/branches/branch-specific-modules#labels). A label created in one branch (e.g., development) can only be applied to content types within that branch.

### Are labels private to users?

No, [labels](/docs/developers/create-content-types/about-labels) are not private. The labels you create for a particular [stack](/docs/developers/set-up-stack/about-stack) are visible to all stack [users](/docs/developers/invite-users-and-assign-roles/about-stack-users).

### Can I edit or delete a label?

Yes, you can edit or delete labels by accessing the [Manage Labels](/docs/developers/create-content-types/manage-labels) modal. You can rename a label, nest it under another label, or delete it if no longer needed.

### Can I assign multiple labels to a single content type?

Yes, you can assign multiple labels to a content type. For more details, refer to the [About Labels](https://www.contentstack.com/docs/developers/create-content-types/about-labels) documentation.

### What happens to content types without labels?

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](https://www.contentstack.com/docs/developers/create-content-types/about-labels) documentation.

### Can labels be exported or imported with content types?

No, labels are not included when exporting or importing content types.

### Can I manage labels in Contentstack?

Yes, you can create, edit, rename, nest, and delete labels in Contentstack. For detailed instructions, refer to the [Manage Labels](https://contentstack-com.contentstackapps.com/docs/developers/create-content-types/manage-labels/) documentation.

## Localization FAQs

### Does Contentstack provide the ability to create right-to-left content for languages such as Arabic and Hebrew?

Contentstack supports [writing or adding content from right to left (RTL)](/docs/developers/json-rich-text-editor/right-to-left-content-writing-within-the-json-rte) 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](/docs/developers/multilingual-content/about-localization) works.

### Does Contentstack provide translation service?

No, Contentstack does not provide any translation service.

### How can I change the default language of a stack?

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.](/docs/developers/multilingual-content/set-the-master-language)

### If a user publishes an entry of a master language to another language where it has not been published yet, will the system automatically save the entry as a localized entry for that other language?

No. You need to perform the following steps to localize an entry.   

1.  Select the language using the language selector option, say **French - France**.
2.  The entry page for ‘French - France’ shows an Unlocalized, unpublished copy of the main entry in Master language.
3.  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’.

### Can I retrieve published content from the fallback language while using Contentstack’s Content Delivery API?

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](/docs/developers/multilingual-content/about-fallback-languages#retrieve-fallback-language-content-for-published-entries).

You can also refer to our Content Delivery API documentation on [entries](/docs/developers/apis/content-delivery-api#entries) and [assets](/docs/developers/apis/content-delivery-api#assets) to understand how you can fetch fallback content for published entries.

### What happens if the fallback language for the locale I specify in the API request is the master language itself?

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

### How can I set up the Live Preview feature?

To set up [Live Preview](/docs/content-managers/author-content/about-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](/docs/developers/set-up-live-preview/set-up-live-preview-for-your-website/) and [enable the feature within your stack](/docs/developers/set-up-live-preview/set-up-live-preview-for-your-stack/).

### Do I need to save or publish the entry to preview my content?

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.

### Can I preview content without an HTTP-hosted website?

Yes, you can preview the content of your website even if the server is running on localhost.

### Does Live Preview support multi-level references?

Yes, the functionality for multi-level references is expected to work seamlessly in Live Preview 2.0.

## Management Token FAQs

### What is the difference between management tokens and authtokens?

Both [management tokens](/docs/developers/create-tokens/about-management-tokens) and [authtokens](/docs/developers/create-tokens/types-of-tokens#authentication-tokens-auth-tokens) allow read-write access to a [stack](/docs/developers/set-up-stack/about-stack), enabling authorized [CMA (Content Management API)](/docs/developers/apis/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](/docs/developers/create-tokens/types-of-tokens) document to learn about tokens.

### Can developers generate management tokens?

No, only the stack [Admin](/docs/developers/invite-users-and-assign-roles/types-of-roles#admin) and [Owner](/docs/developers/invite-users-and-assign-roles/types-of-roles#owner) can generate Management Tokens.

### Can management tokens be used to create content?

Yes, Management Tokens support create, read, update, and delete operations for both published and unpublished (draft) content of your [stack](/docs/developers/set-up-stack/about-stack), irrespective of the [publishing environment](/docs/developers/set-up-environments/about-environments).

### Can I set an expiry date for my management token?

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](/docs/developers/create-tokens/generate-a-management-token).

### Can I modify a Management Token after creation?

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](/docs/developers/create-tokens/edit-a-management-token) document for further details.

### Why should I use Management Tokens instead of Authtokens?

Use Management Tokens for automation, CI/CD pipelines, external integrations, or in [Single Sign-On](/docs/developers/single-sign-on/about-single-sign-on-sso) environments. This avoids the risk of exposing personal [authtokens](/docs/developers/create-tokens/types-of-tokens#authentication-tokens-auth-tokens).

### Can Management Tokens replace Authtokens completely?

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

### Can Management Tokens invite or remove users from the stack?

No, Management Tokens do not have permissions to manage user [invitations](/docs/developers/invite-users-and-assign-roles/add-a-new-user) or [removals](/docs/developers/invite-users-and-assign-roles/remove-a-user).

## Miscellaneous FAQs

### How can I add a custom filter?

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](/docs/developers/apis/content-delivery-api#queries) section of our API docs.

### How does caching work with Contentstack?

Contentstack uses [CDN](/docs/developers/cdn-and-caching/what-is-cdn-and-how-it-works) 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.

### Which framework do you use for websites?

Contentstack uses two frameworks for websites – [Contentstack Express](/docs/developers/web-framework/contentstack-express-command-line-utility) and [Contentstack SDK](/docs/developers/sdks).

### What is the right way to get the stack API Key and the Authtoken? Is the Authtoken unique per user?

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](https://www.contentstack.com/login):

1.  In your stack, click the **Settings** icon on the left navigation panel.
2.  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](/docs/developers/create-tokens/types-of-tokens#authentication-tokens-authtokens), you need to log in to your Contentstack account via the login call of the [User Session](/docs/developers/apis/content-management-api#user-session) API Request. And, in the response body of the call, you will find your Authtoken.

### Which SDKs do you provide?

We provide the following SDKs: 

*   [Android](/docs/developers/android)
*   [iOS](/docs/developers/ios)
*   [React Native](/docs/developers/react-native)
*   [NodeJS](/docs/developers/nodejs)
*   [Java](/docs/developers/java)
*   [JavaScript](/docs/developers/javascript-browser)
*   [PHP](/docs/developers/php)
*   [.NET](/docs/developers/dot-net)
*   [Ruby](/docs/developers/ruby)
*   [Python](/docs/developers/python)
*   [Dart](/docs/developers/dart)

### How do I add CSS styles to an image using Markdown?

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](http://daringfireball.net/projects/markdown/syntax#html).

### How can I import data to Contentstack?

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](/docs/developers/create-content-types/import-a-content-type) and [entries](/docs/content-managers/working-with-entries/import-an-entry).

### How to handle routing?

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](/docs/developers/advanced-topics/routing) with Contentstack.

### What is unique ID? I see it everywhere.

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.

### Is there a way to integrate Contentstack with other external apps?

Yes. many external applications can be integrated with Contentstack. Check out the [external integrations](/docs/developers/integrations) page to learn more.

### Can I add my custom logic to Contentstack?

Yes. Through plugins and hooks, you can add custom logic to extend the functionality of Contentstack. Learn [how this works.](/docs/developers/web-framework-deep-dive/plugins)

## Nested Reference Publishing FAQs

### How many levels of nested references can I publish when publishing a single entry or multiple entries?

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.

### How many locales can I select when publishing a single entry or bulk entries?

You can only select a maximum of **50** locales in which you want to publish content.

### How many environments can I select when publishing a single entry or bulk entries?

You can only select a maximum of **50** environments to which you want to publish content.

### Can I schedule the publishing of nested referenced items?

Yes, the "Nested Reference Publishing" feature supports scheduled publishing options.

### Can we select and publish specific child entries of a parent entry?

No, you cannot selectively publish specific child entries of a parent entry.

### Can I view the nested references while publishing an entry?

Yes, you get a tree view of all nested items while publishing an entry.

### How many parent entries can I select when performing bulk publishing of entries?

You can select a maximum of

100

parent entries when publishing entries in bulk.

### While bulk publishing, can I view nested references of each parent entry?

No, while bulk publishing entries, you cannot view the nested references for any of the selected parent entries.

### Can I check the status of all my published tasks?

Yes, you can check the status of all published tasks in the

Publish Queue

.

## Preview Sharing FAQs

### Why is the “Share” button in Visual Editor disabled?

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**.

### Can I share a preview with multiple reviewers?

Yes, you can share the preview link with multiple **internal** and stakeholders for collaborative feedback.

### Can I reply to a review comment?

Yes, comments are threaded, allowing reviewers and content managers to reply within a discussion thread

### Where can I find resolved comments?

Resolved comments can be accessed in the **Resolved** section within the Discussions panel.

### Can I reopen a resolved comment?

Yes, you can reopen a resolved comment if further discussion is required.

### How can I delete a comment?

Only the **original commenter** can delete their respective comment.

### How long does a preview link remain active?

By default, the expiration period is **7 days**, but it can be adjusted when generating the preview link.

### Can I reactivate an expired preview link?

No, you need to **generate a new preview link** after expiration.

### Are reviewers notified about new comments?

Yes, both internal and external reviewers receive email notifications if they are tagged in new comments.

### How is Preview Sharing different from Visual Editor Discussions?

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

### Can I add/remove items from a Release after deployment?

Yes, you can add or remove items from a release even after deployment using the unlock feature. Once you [unlock](/docs/content-managers/create-and-manage-releases/unlock-a-release) the release, you can modify its contents as needed. After making your changes, you can [lock](/docs/content-managers/create-and-manage-releases/lock-a-release) the release again.

### What items can I update with the Update release items to their latest versions option?

You can update all entries and assets within a release to their latest versions using the [Update release items to their latest versions](/docs/content-managers/create-and-manage-releases/update-release-items-to-their-latest-versions) option.

### I am trying to add an entry to a release, but I get a warning message about adding entries to an older release. What does this mean?

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](/docs/content-managers/create-and-manage-releases/clone-a-release) the older release into a new one that supports [nested references](/docs/content-managers/publish-content/about-nested-reference-publishing), and then add the entries to the cloned release.

### Can I update the items of a release if the release is locked?

No, you cannot update the items of a locked release. However, you can [unlock](/docs/content-managers/create-and-manage-releases/unlock-a-release) a release and update the items to their latest version.

### Can I update an unlocalized release entry that gets localized later?

Yes, you can [update release items to their latest versions](/docs/content-managers/create-and-manage-releases/update-release-items-to-their-latest-versions) to update the unlocalized release entry to its localized version.

### What happens to a release update if my release contains an entry with an in-progress latest 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.

### Can I update specific items of a release to their latest versions individually?

No, you cannot update specific release items to their latest versions individually. You need to create a separate release to update specific items individually.

### How do I view the history of changes made to a release?

In [Stack Bulk Task Queue](/docs/content-managers/author-content/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.

### Can I duplicate a release?

Yes, you can duplicate a release by [cloning a release](/docs/content-managers/create-and-manage-releases/clone-a-release). This will create a new release with the same content as the original release.

### How do I know if a release has been successfully deployed?

Release status will be changed to deployed once the deployment is completed. You can also check the deployment status in [Publish Queue](/docs/content-managers/publish-content/view-publish-status-of-entries-assets-in-publish-queue).

## Search FAQs

### Is there a way to search from any module in a stack?

Yes, you can use the [Quick Search](/docs/content-managers/search-content/quick-search) feature to search for [entries](/docs/content-managers/author-content/about-entries) and [assets](/docs/content-managers/author-content/about-assets) from any location within your [stack](/docs/developers/set-up-stack/about-stack).

### Can I share my saved views with other users?

Yes, you can share your saved views with other collaborators within the stack.

**Additional Resource:** Refer to our [Share Saved Views](/docs/content-managers/search-content/shared-views) document for more information.

### Can shared users modify the view?

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.

### How will I know if someone has shared a view with me?

You will receive a notification via the bell icon when someone shares a view with you.

### Can I share a view with multiple roles at once?

Yes, you can select multiple users or roles in the **Share View** modal and assign appropriate permissions.

### Can I share a view with users from another stack?

No, saved views can only be shared within the same  
[stack](/docs/developers/set-up-stack/about-stack).

### Is there a limit to the number of saved views I can create?

You can save a maximum of **500 views**, including [entries](/docs/content-managers/author-content/about-entries) and [assets](/docs/content-managers/author-content/about-assets).

### What are Popular Views and Saved Views in Contentstack?

**Popular Views** are predefined sets of filters and settings tailored for common search scenarios, such as **All Entries** or **Not Published**.

[Saved Views](/docs/content-managers/search-content/save-your-views) are custom views that you create and save based on your specific search settings. These views can be accessed later for repeated use.

### Can I update Popular Views?

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](/docs/content-managers/search-content/save-your-views).

### How can I customize the search filters I see on the left panel?

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](/docs/content-managers/search-content/use-filters) document for more information.

### Can I nest conditions/queries in an advanced search?

Yes, you can.

**Additional Resource:** Refer to our [Advanced Search](/docs/content-managers/search-content/advanced-search) document for more information.

### Can I edit my views?

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](/docs/content-managers/search-content/use-saved-views) document.

### Can I search for Custom Fields through the app's search?

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](/docs/content-managers/search-content/basic-search) document for more information.

### How can I filter and view only localized entries on the Entries list page?

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](/docs/content-managers/search-content/get-localized-entries) documentation.

## Stack FAQs

### I just signed up for Contentstack. Do I need to create a Stack right away?

Yes, you need a Stack to start working with Contentstack. All content, including [content types](/docs/developers/create-content-types/about-content-types), [entries](/docs/content-managers/author-content/about-entries/), and [assets](/docs/content-managers/author-content/about-assets/), is stored within a Stack.

After [creating the stack](/docs/developers/set-up-stack/create-a-new-stack), you are automatically redirected to it. You can now start adding content and managing assets.

### How many Stacks can I create?

You can create only **one stack per minute** as an Organization [Owner](https://www.contentstack.com/docs/developers/invite-users-and-assign-roles/types-of-roles#owner) or [Admin](https://www.contentstack.com/docs/developers/invite-users-and-assign-roles/types-of-roles#admin). A Contentstack subscription includes at least one Stack. You can purchase additional Stacks as required.

### Can I rename my Stack after creation?

Yes, the stack [Owner](/docs/developers/invite-users-and-assign-roles/types-of-roles#owner) or [Admin](/docs/developers/invite-users-and-assign-roles/types-of-roles#admin) can [edit a stack’s details](/docs/developers/set-up-stack/edit-a-stack).

### What happens if I delete a Stack? Can I recover it?

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](/docs/content-managers/author-content/restore-deleted-content) document.

### Where can I find the Stack’s API Key?

To find the Stack’s API key, log in to your [Contentstack account](https://www.contentstack.com/login/) and perform the following steps:

1.  Go to your [stack](/docs/developers/set-up-stack/about-stack) and click the “Settings” icon in the left navigation panel or use the shortcut key “S” (for Windows and MacOS users).
2.  View the stack’s API Key in the **API Credentials** section.

You can use it to authenticate and make API requests.

### Can I change my Stack’s primary language?

No, you cannot change the [Master Language](/docs/developers/multilingual-content/set-the-master-language) after creating the Stack. However, you can add multiple languages to [localize](/docs/developers/multilingual-content/about-localization/) your content.

### Who can create a Stack, and why do I not see the option?

Only Organization [Owners](/docs/developers/invite-users-and-assign-roles/types-of-roles#owner) and [Admins](/docs/developers/invite-users-and-assign-roles/types-of-roles#admin) can create Stacks. You can contact your administrator to check your permissions.

### What happens if I transfer Stack ownership?

Once you transfer the ownership,

*   The new owner gets full control over the stack.
*   You lose Stack Owner privileges but remain a user.

### Can I track who made changes to my Stack?

Yes, you can track all changes using [Audit Logs](/docs/developers/set-up-stack/monitor-stack-activities-in-audit-log).

### How can I duplicate my Stack?

Yes, you can [duplicate stacks](https://www.contentstack.com/docs/developers/cli/cloning-a-stack). You can also use [Branches](https://www.contentstack.com/docs/developers/branches/about-branches) to create multiple copies of your stack content.

## Taxonomy FAQs

### Is the taxonomy feature a global or branch-specific module?

The taxonomy feature is a [global module](/docs/developers/branches/global-modules) that will be available across all branches in a stack.

### What is the difference between Taxonomy and Terms?

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](/docs/developers/taxonomy/create-a-taxonomy) and [creating terms](/docs/developers/taxonomy/create-a-term).

### How does this feature affect the other modules in Contentstack?

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](/docs/developers/taxonomy/add-taxonomy-to-a-content-type), and [classify the entries by adding terms](/docs/content-managers/author-content/adding-terms-to-entries-with-taxonomy).

### What happens if I delete a taxonomy?

If you [delete a taxonomy](/docs/developers/taxonomy/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](/docs/developers/manage-trash/restore-a-deleted-taxonomy) within 14 days.

### What happens if I delete a few terms within a taxonomy?

If you [delete terms](/docs/developers/taxonomy/delete-a-term) 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](/docs/developers/manage-trash/restore-a-deleted-term) within 14 days.

### What are terms and how to work with them?

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](/docs/developers/taxonomy/create-a-term) and [adding terms to entries](/docs/content-managers/author-content/adding-terms-to-entries-with-taxonomy).

### Is it possible to reposition terms within a taxonomy?

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](/docs/developers/taxonomy/move-or-reorder-a-term).

### How do I work with taxonomy using the Content Management API?

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](/docs/developers/apis/content-management-api#taxonomy) in our Content Management API documentation for more information.

### How do I work with taxonomy using the Content Delivery API?

You can retrieve information for all or a specific taxonomy via the API requests.

Refer to the [Taxonomy collection](/docs/developers/apis/content-delivery-api#taxonomy) in our Content Delivery API documentation for more information.

### Are there changes to any existing requests in the Content Management API?

Yes, we have introduced the following enhancements to the Content Management API requests:

*   [Create a content type with taxonomy](/docs/developers/apis/content-management-api#create-content-type-with-taxonomy)
*   [Create an entry with taxonomy](/docs/developers/apis/content-management-api#create-an-entry-with-taxonomy)

## Timeline FAQs

### What is Timeline?

[Timeline](/docs/content-managers/timeline/about-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.

### How does Timeline work?

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](/docs/content-managers/timeline/preview-content-across-a-timeline/).

### Can I preview content without scheduling it first?

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](/docs/content-managers/author-content/preview-entry/).

### Is Timeline compatible with different types of content updates?

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.

### How can Timeline enhance my workflow?

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](/docs/content-managers/timeline/preview-content-across-a-timeline/).

### What is the difference between Timeline and the Release Preview app in Contentstack?

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.

### Why choose Timeline over the Release Preview app?

*   **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.

### Can Timeline handle updates across different environments (e.g., development, staging, production)?

Yes, Timeline supports previewing content across various environments, allowing you to visualize how updates will appear before they go live.

### Can Timeline be used for previewing localized content in different languages?

Yes, Timeline supports previewing content in multiple languages, helping you ensure consistency and accuracy across localized versions of your website.

## Visual Editor FAQs

### What is Visual Editor in Contentstack?

**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](/docs/content-managers/visual-editor/about-visual-editor).

### Can I edit my page content directly in 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](/docs/content-managers/visual-editor/edit-page).

### Can I rearrange components on my page using Visual Editor?

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](/docs/content-managers/visual-editor/edit-page).

### How do I set up Visual Editor?

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](/docs/developers/set-up-visual-editor/set-up-visual-editor-for-your-website).

### What is the Form panel used for in Visual Editor?

The [Form](/docs/content-managers/visual-editor/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.

### How do I deploy or publish changes made in Visual Editor?

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](/docs/content-managers/visual-editor/publish-page).

### Can I collaborate with my team in Visual Editor?

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](/docs/content-managers/visual-editor/discussions).

### How does the Audiences feature work?

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](/docs/content-managers/visual-editor/audiences).

### What is the difference between Visual Editor and the traditional entry editor?

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](/docs/content-managers/visual-editor/about-visual-editor).

### Can I run automations directly from 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](/docs/content-managers/visual-editor/automate).

### How do I know which entry a field belongs to when editing multiple entries?

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.

### Can I use the AI Assistant to edit fields directly on the canvas?

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

### If an error occurs during a webhook POST (to a third-party service) will we receive any notifications and also is it possible to retry the operation?

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](/docs/developers/set-up-webhooks/view-webhook-logs) to view the failed requests and can retry them.

### How do I differentiate between the webhook data received when an entry is published or unpublished directly and the webhook data received when an entry is published or unpublished via a release deployment?

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}}"   },`

### For which events can I trigger a webhook in Contentstack?

You can trigger a webhook for several events as listed in the [Webhook Events](/docs/developers/set-up-webhooks/webhook-events) article.

### Can I filter the webhook execution details returned in the API response based on a date range?

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](/docs/developers/apis/content-management-api#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

### What are the authentication methods available for webhooks?

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](mailto:support@contentstack.com) team.

### What happens if the OAuth token used by my webhook expires?

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.

### How can I specify additional parameters for OAuth 2.0 in my webhook?

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

### What is the minimum and maximum number of Workflow stages that can be created?

You can create a minimum of **2** and a maximum of **20** Workflow stages.

### Can I add more than one workflow for a content type?

Yes. You can add more than one workflow for a content type, as long as each [workflow](https://www.contentstack.com/docs/developers/set-up-workflows-and-publish-rules/about-workflows) is associated with a distinct branch.

### Why cannot I see any stages to select a specific stage in the “Next available stages” section?

First, you need to add all the [stages](/docs/developers/set-up-workflows-and-publish-rules/about-workflow-stages) at once, and later on you can browse through **Stage transition rules** to select a specific stage under the **Next available stages** section.

### Can I add more than one publish rule for a content type?

No, you cannot add more than one [publish rule](/docs/developers/set-up-workflows-and-publish-rules/about-publish-rules) for a [content type](/docs/developers/create-content-types/about-content-types).

### Can workflows be used for automated publishing?

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](https://www.contentstack.com/docs/developers/set-up-workflows-and-publish-rules/about-publish-rules) documentation.

### Can workflows be cloned or copied?

Currently, Contentstack does not support cloning or copying workflows directly. You need to manually [create a new workflow](https://www.contentstack.com/docs/developers/set-up-workflows-and-publish-rules/add-workflows-and-stages/) and replicate the steps from the existing one.