Skip navigation

Product changelog

  • Breaking changes
  • Show only released changes

Translate your non-localizable elements

You can now convert your existing non-localizable elements into localizable ones. This means that your previously non-localizable content can now be translated across languages. 

During the conversion, we’ll copy the converted element’s content from the default language to all other languages.

Converting a non-localizable element into a localizable one

Converting a non-localizable element into a localizable one

The transition to localizable is permanent. You can’t turn existing localizable elements into non-localizable ones.

Turn rich text HTML into portable text or JSON

We've released an open-source rich text resolver for JavaScript available as @kontent-ai/rich-text-resolver. Check out examples of use on GitHub.

The resolver is an alternative to the rich text resolution in the Delivery JS SDK. Use the resolver to transform the rich text HTML into a tree structure and transform the tree structure to the portable text standard that’s supported by the majority of popular frameworks such as React, Svelte, Vue.js.

Need to enable your customers to easily call you directly from your app? That's a piece of cake now. Add phone links directly from the rich text editor in Kontent.ai. You can also insert phone links using Management API.

Phone link in rich text editor

Flexible workflow scopes are here

Up until now, you could define only one scope rule per workflow. Newly, you can add as many combinations of content types and collections to the rules as you need. 

Establish the proper rules that suit your project requirements perfectly, without compromises.

Multiple scope rules per workflow

Sync API generally available

Sync API is now generally available to all customers. Use the API whenever you need to process recent changes in an async way.

The API is supported in the latest versions of the JavaScript Delivery SDK and .NET Delivery SDK.

Extended delivery models in .NET model generator

We've added extended delivery models to the Kontent.ai model generator for .NET.

If you specify the -e True flag when using the generator, it reads the element limitations of your content types and reflects the limitations in the generated classes. This saves you time and leads to better code.

Achieve immortality for your content with redirects!

Redirects are essential in the world of web apps. They ensure that people find your content even after you change its URL by moving or renaming it.

But how to tackle redirects under Kontent.ai? Head over to our new tutorial on redirects to find out!

Quick overview of your team’s learning progress

Kontent.ai e-learning can speed up the onboarding of your colleagues and show them options they may not discover otherwise.

We know that successful onboarding is crucial for your team’s efficiency. To help subscription admins achieve the most with their teams, they can see the learning progress of users under their subscription.

Spaces in Web Spotlight

You can now use spaces to configure multiple Web Spotlight trees. This is especially handy if you're using one project for multiple brands or channels.

Stay on top of your subscription plan limits

It's always handy to be in control of what you use, right? 

Your Kontent.ai subscription plan and its limits are no exception, and it's good to know how to avoid exceeding the limits.

Our new article is here to help: Stay on top of your plan limits and steer clear of overuse charges.

Easier learning about advanced content modeling

We split the 3-hour Advanced content modeling course by topics into multiple new courses. Content-wise, the topics are the same, but they're arranged into a series of smaller courses that are easier to digest. This is to help you better retain the knowledge you gain.

The new path starts with basics and gradually dives into topics that emerge on your content modeling journey.

Here's the complete content modeling series:

Content modeling checklist

Whether you're just starting your content modeling journey or you already have a solid content model, it's a good practice to check your content model regularly and find ways to improve it. 

Check out our quick content modeling checklist to ensure you're following the latest best practices.

Language fallbacks for linked content

You can now choose from two language fallback behaviors for Delivery API.

  • The default fallback behavior aims for language consistency of the returned content. You get linked content only if it's translated to the same language as the parent content item.
  • The opt-in fallback behavior aims for independent evaluation of language fallbacks for every linked content item. You might get linked content even if it isn't translated to the same language as the parent content item.

If you'd like to opt-in for language fallbacks for linked content, let us know.

The guide on SEO now better, shorter, faster

We gave our content optimization guide a make-over to make it more to the point, better structured, and easier to read.

If you're running a website as a part of your project, search engine optimization, a.k.a. SEO, is surely a big topic for you. Head over to the shiny new guide to see all the things that can be done to help people find your content more easily.

Limit your workflows to collections

Improve your content governance with workflows limited to collections. Different company departments often require different workflow steps and approval processes.

For example, you can set up your workflow so that content in the Marketing collection is limited to the Marketing workflow.

This is how you restrict your workflow to a collection.

Need to translate at scale?

Ensure consistent and accurate translations, even at large scale! Check our new guide on integrating a translation management system with your Kontent.ai project.

Make the right decisions so that the translation process works just the way you want.

Option to remove deprecated API keys

If you've already started using the new personal API keys for Management API, you can now remove the deprecated API key using the Remove key button.

The deprecated API key remains available and valid until April 30, 2023. We recommend you switch to the new personal API keys before that date.

You can now remove the deprecated API key for Management API. Make sure to first switch to personal API key in your apps.

Developer's insights on avoiding pitfalls of content modeling

Watch our interview with Mike Wills, VP of Technology at BlueModus, who talks about the classical pitfalls developers face when they're tasked with creating a content model. As Mike admits, he himself fell into the traps he discusses. We invite you to watch the interview, so that you don't have to face the same issues yourself.

You'll learn why semantic relations in content models are important and why the change of mindset is useful for creating a content model that content creators will love.

Content modeling starts with understanding the why

Our new micro-course, The 'Why' behind your content model, is the right place for you to start your content modeling adventure. Learn what content modeling is, who are the main stakeholders and, last but not least, what are the benefits of investing your time in it.

The course is primarily aimed at information architects, developers, and content managers.

Manage multiple previews with spaces

With spaces, you can manage multiple websites under one project for easier content reuse. In this first release, we're introducing the option to add multiple previews to a project. Check it out!

You can also manage spaces via Management API.

Access browser storage in custom elements and Web Spotlight

You can now access browser storage in your custom elements and in Web Spotlight. This means you can access cookies, local storage, and any other browser storage as long as the user's browser permits it. You might need to request access otherwise.

New year, new courses... 8 of them!

You can now go through eight new E-learning courses explaining concepts to different audiences. Which will you go through?

The first two courses are available for everyone after sign-up, while the rest is available for subscriptions with E-learning activated and partner subscriptions.

New personal API keys

For Management API and Subscription API, you can now create personal API keys. The new API keys inherit permissions of the user who creates them. The API keys created before Jan 23, 2023 are now deprecated and will stop working after April 30, 2023.

You can now also set custom expiration dates for new API keys. The maximum expiration date for new API keys is 5 years for Delivery API and 2 years for Management API. Your existing Delivery API keys have an expiration date of 10 years and remain valid.

Sunsetting Management API v1

We sunset Management API v1 on Jan 3, 2023. We recommend that you build your new scripts and integrations with Management API v2.

Changes to cipher suites supported by Kontent.ai APIs

We updated the certificate cipher suites used and accepted by all Kontent.ai APIs to support the latest technologies such as HTTP/3, TLS 1.3, QUIC, 0-RTT, and IPv6. While TLS 1.2 remains supported, we've preserved only the cipher suites considered strong enough.

Make sure that the operating system of your servers and apps supports at least one of the following cipher suites: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.

If you come across any issues or have questions, contact our support.

Non-localizable elements generally available

Non-localizable elements are now out of early access and available to everyone. This means you can mark specific content elements as non-localizable to ensure the elements have the same value in all languages.

Time zones in Delivery GraphQL API

When you get content items with date & time elements via Delivery GraphQL API, you can now use time zone information. The time zone information is currently limited to date & time elements in newly created or recently updated content items.

The GraphQL schema for date & time elements changed from the now deprecated DateTime value to an object field with the value and display_timezone properties.

Web URL regex pattern supports longer domains now

We've updated the regular expression for web URLs validation so that it now supports longer top-level domain names (TLDs). You can now use it to validate also URLs such as https://oxford.education or www.safelife.lifeinsurance.

If you're already using the Web URL pattern for validation, you'll see it's automatically changed to Custom pattern after this release. This is to keep the old pattern for you and prevent a breaking change. You can always change the validation to the updated Web URL pattern by selecting the option anew.

Deprecating Swift SDK for Delivery API

The Swift Delivery SDK is no longer being maintained and has been deprecated. We recommend calling Delivery API directly in your native iOS apps.

You can also generate your own Swift SDK based on the OpenAPI specification for Delivery API using a tool like Swagger codegen.

Time zones available via Delivery REST API

When you get content items with date & time elements via Delivery REST API, you can now use timezone information. This is currently limited to date & time elements in newly created or recently updated content items.

We'll add timezone information to date & time elements in your existing content in Delivery API in the upcoming weeks.

Renamed Java, PHP, and Ruby packages

We've renamed the Kontent.ai open source packages for Java, PHP, and Ruby. This means the packages' major versions were increased. We recommend that you use the latest package versions in your apps.

For a comprehensive list of changes in the packages, check the individual packages' GitHub releases on Kontent.ai GitHub.

Preview URLs are now easier to manage

Preview URL patterns in the project settings are now sorted primarily by the enabled option, then by the content type name. This helps you find the active preview URLs quickly, as they're not hidden amongst the inactive URLs anymore.

Preview URL patterns list in the Kontent.ai project settings

Enabled preview URLs are shown first

Nest headings up to six levels deep

On November 9, we're adding support for two more levels of headings in Kontent.ai. You'll be able to use the new heading levels in the Kontent.ai app, Management API, and with SDKs.

Are you using the .NET Management SDK to manage content types with rich text elements? Do you use rich text limitations? If so, you need to update the .NET Management SDK to version 4.2.0 or higher before November 9 to keep your code working. Take care that starting with version 4.0.0, only .NET 6 is supported.

In any case, prepare your app for the new heading levels. They'll be enabled by default in new content types and any existing rich text elements without limitations regarding headings or lists.

Please contact us if you have any questions about this update or need any help.

Reuse asset elements across languages

You can now mark asset elements as non-localizable to ensure they have the same values across all languages.

Non-localizable elements are available through the early access program. Let us know if you'd like to try!

Validation of default values in content types

Kontent.ai now validates element default values in content types. 

Thanks to that, you'll clearly see when you set a default value that doesn't meet the element's limitations. This helps to keep your content model clean and up to date. If you need to, you can still save your content types regardless of the warning.

This update doesn't include default values changed via Management API.

Introducing Sync API

Sync API gives you a new way to synchronize changes made to your content items. The API lets you know if your content changed in Delivery API or Delivery Preview API. Compared to webhooks, your app doesn't need to react immediately. You can react in your own time. 

Synchronize changes in specific items by using advanced filters. With Sync API, your app stays safe by processing just the changes it needs to know about.

Sync API is available through an early access program. Let us know if you'd like to try!

Increased query complexity limit for Delivery GraphQL API

To support more complex content queries with Delivery GraphQL API, we increased the query complexity limit to 2000. The limit represents the maximum number of content items and components your query can return.

Tell us what you think

You can now send us your feedback directly. In Kontent.ai, just click the heart icon in the bottom left corner and select Send your feedback.

No more deleted items, taxonomy terms, or assets in content types

On October 26, we're updating Management API, so that it no longer allows saving content types with references to deleted content items, taxonomy terms, or assets. It may happen that you set a default value or write a guideline in a content type, and someone deletes the term, item, or asset you used. Management API currently allows saving content types with these invalid references. After October 26, you'll get an error instead. 

We recommend you to go through your content model and clean up references to any such deleted terms, items, and assets.

To make your life easier, we're updating Kontent.ai app in this regard as well. After October 12, the Kontent.ai app won't let you save content types with guidelines or default values referencing deleted terms, items, or assets.

Reuse linked items and subpages elements across languages

You can now mark linked items and subpages elements as non-localizable to ensure they have the same values across all languages.

Non-localizable elements are available through the early access program. Let us know if you'd like to try!

Deleted taxonomy terms are now clearly shown

When you use a taxonomy term in a content item and someone deletes the term, it's now clearly visible. Up until now, deleted terms just disappeared. Newly, deleted terms are shown in red as “Deleted taxonomy term”. This applies also to taxonomy elements' default values.

When publishing a content item with deleted terms, you'll see a friendly warning, similarly as with deleted assets or linked items.

The selected taxonomy term has been deleted

New tools to help you keep your content model nice and tidy

We've expanded the content type validation. It's no longer possible in the Kontent.ai app to save a content type with deleted assets, content items, or taxonomy terms in default values. This helps you keep your content model clean and up-to-date.

There's also new validation for the guidelines element. To prevent confusion, you now can't save a content type with deleted assets in guidelines.

This update doesn't include the Management API validation. We'll release that separately on October 26.

Adjusted behavior for selecting linked content when publishing content items

When you publish a content item with linked content, you can select its linked content items and publish them at the same time. We've made some changes to the way the selection works.

By default, the list of the linked content items is expanded one level deep. You can expand the list to any level necessary. This gives you more control over the content you're publishing.

Selecting linked content to publish together with a content item

When you're selecting linked items to publish, you can now go as deep as necessary. For example, this is a list of linked content items expanded three levels deep.

Reuse taxonomy elements across languages

You can now mark taxonomy elements as non-localizable to ensure they have the same values across all languages.

Non-localizable elements are available through the early access program. Let us know if you'd like to try!

Set default values for linked items elements

Linked items elements can now have default values. If you know that specific linked items will be used repeatedly in your linked items elements, set those linked items as a default value. Save your content creators some time!

You can also set default values for linked items elements via API.

Time zones in Date & time element

Working with content for customers all around the globe? Need to set a Date & time element to 8 pm in New Orleans while you're in Paris? No more time offsets guesswork! You can now specify time zone in the Date & time element.

Reuse URL slugs and custom elements across languages

We've extended support for non-localizable elements. You can now mark URL slugs and custom elements as non-localizable to ensure the elements have the same values across all languages.

Non-localizable elements are available through the early access program. Let us know if you'd like to try!

See which elements contain default values

When you work on content items, you'll now see a short label telling you whether any of your elements currently contain a default value.

Default values for asset elements

Asset elements can now have default values. If you know that specific assets will be used repeatedly in your asset elements, set those assets as default value. Save your content creators some time!

You can also set default values for asset elements via API.

A little sneak peek into components

Having multiple components in a content item is an essential part of content modeling. But at the same time, it might be a bit overwhelming to navigate such content items. To quickly scan through collapsed components, you can now have a look at their text preview. This gives you an idea of what's inside the component and if it's what you're looking for.

Text preview of a component, shown in Web Spotlight

Maximum length of the collection name increased

Names of collections can now contain up to 200 characters (instead of the original 50) to better support more descriptive titles. On top of that, the collection codename can now also be up to 210 characters long.

Renamed .NET packages

We've renamed the names and namespaces for the following .NET open source packages. This means the packages' major versions were increased. We recommend that you use the latest package versions in your apps.

For a comprehensive list of changes in the packages, check the GitHub releases in the individual packages' GitHub repositories.

Renamed JavaScript packages

We've migrated the following Kontent.ai JavaScript open source packages under a new organization on npmjs.com. This means that the package names are now different and their major versions were increased. We recommend that you use the latest package versions in your apps.

For a comprehensive list of changes in the packages, check the changelog files in the packages' GitHub repositories.

Improved project validation via API

Use the improved project validation endpoints to check your projects for validation and consistency issues. For example, you might want to validate your projects after importing content.

The new endpoints are a replacement for the existing validation endpoint, which is now deprecated.

Find components by their content type

Ever wanted an easy way to find all places a content type is used in? It's easy with content items but what about components?

Say hello to the new filter! In the list of content types, you can now filter out all content items with components of the given content type.

You can use this when making changes to a content type but want to check the affected content first. Combined with the content items filter, the new option empowers you to find all places where the given content type is used.

Find all content items where the content type is used in components

Undo markdown formatting shorthands by backspace

When using markdown shorthands to format and structure text, you can now quickly revert the automatic markdown conversion by hitting the backspace key. This is another way to undo markdown conversion in addition to using CTRL + Z (or ⌘ + Z).

Hit the backspace key if you accidentally use a wrong markdown shorthand or want to keep the text as it was, effectively skipping the conversion.

Shortcuts for superscript and subscript

Ever needed to quickly write things like 24 = 16 ⟺ log2(16) = 4, or H2O? Now you can use keyboard shortcuts for superscript (Ctrl + Shift + .) and subscript (Ctrl + Shift + ,) that make writing expressions like that one a breeze. Check out more keyboard shortcuts.

Publish contents of non-localizable elements in one go

If you're publishing a content item in non-default language and the item contains non-localizable elements, you can now choose to publish the item's default variant together with the non-default variant in a single action.

With this small improvement, you can easily keep your non-localizable elements up-to-date in your published content.

Publishing of an item with a non-localizable element

Publishing of an item with a non-localizable element

Check your webhook's health status via API

With Management API v2, you can now check the health status of your webhooks. This means there's now a new health_status property that tells you if the webhook is operational, failing, or inactive.

Deprecating Management API v1

From July 1, 2022, the Management API v1 has been deprecated. Version 1 of the API hasn't received many updates in the last few years and we think it's time to bid farewell.

The deprecation period will last six months after which we plan to sunset version 1. We recommend that you build your new scripts and integrations around the Management API v2.

Ease-of-use improvements to Kontent

We've released several improvements to Kontent that make the lives of content creators and managers easier and more efficient:

  • Schedule with time zones – Working with content for customers all around the globe? Need to schedule content publishing for 9 am in New York while you're in Sydney? Say goodbye to time offsets guesswork! With the new time zone selector, schedule an item to publish or unpublish at an exact time in a particular time zone to get your content out at the right time. No matter where you are.
  • Default values for more elements – Set default values for Number, Date & time, and Multiple choice elements. You can also use the Management API to set default values.
  • Time respects browser settings – Time values in Kontent's UI are now displayed based on your browser's preferred site languages. For example, if your first preferred language is English (United States), the UI displays the time as 2:15 PM. For English (United Kingdom), the time's displayed as 14:15.
  • Improved API keys page – We've improved the layout and wording in the API keys section of Kontent. With this change, it's now clear what serves which purpose so you can find quickly what you need.
  • Web Spotlight settings moved – The settings page now sits on its own under the environment settings.

Improved error handling in the Delivery .NET SDK

We've released a new version of the Delivery .NET SDK. The main improvement is that the Delivery client now correctly forwards error responses from the Delivery API instead of just failing without providing meaningful information. This concerns mainly data listing requests.

It's now significantly more convenient to properly handle the data retrieval error cases so we strongly recommend upgrading your SDK to the new version.

Check out release notes on GitHub for details and tips on how to upgrade to this version.

Subscription API key has a new home

We're doing some late-spring cleaning and so we've moved the Subscription API key to a new, more logical place. Subscription admins can now find the key under the subscription administration.

New subscription API key location

Set default values for taxonomy elements

You can now set default values also for taxonomy elements. This is useful when you know that certain terms are going to be used very often in an element. You can save your content creators' time and set these terms as the element's default value.

Newly added content items with the taxonomy element will have the selected taxonomy terms prefilled automatically.

You can set also default values up using the Management API.

New features in the .NET Management SDK

We've released a few improvements to the .NET Management SDK:

Check out release details on GitHub for more information.

New scope for Management API rate limits

The scope of the rate limits for Management API changes from per user per project to per project. If you're using retry policy for your API requests, nothing changes for you.

If you're using multiple API keys to make API requests to a single project, you might see more Too Many Requests errors. Don't worry, your apps will keep working.

Editable codenames for content groups

You can now set a custom codename for a content group directly in the Kontent UI. This way, you can make sure that codenames always meet your web development needs.

Editing the codename of a content group.

Manage your workflows via API

You can now manage your workflows using the Management API. This means you can programmatically create, update, and delete your custom workflows.

To better support management of multiple workflows, we've deprecated two endpoints and we recommend using the new endpoints.

We've also updated our management SDKs so you can manage workflows in your scripts.

Save creators' time with default values

You can now specify default values for text elements. Default values can be useful with metadata information such as open graph content, or headings that might repeat in one way or form. With default values, the repeated information can be prefilled and can save time of your content creators.

Default values for more elements such as multiple choice and taxonomy are coming soon. Stay tuned.

Project cloning gets more secure

To enhance the security of your content when cloning projects, the subscription to which you clone needs to offer the same features as the original project's subscription.

For example, if you want to clone a project that has secure access enabled for Delivery API, the new project's subscription must support secure access as well. Same goes for Management API.

Not enough time to learn? We got you!

Life can get pretty busy and finding enough time to learn sounds like an impossible task to do. That's why we decided to make this a bit easier for you.

Get familiar with the basic concepts of the headless world via our new interactive micro-courses: Your journey to headless, Focused on content, and Kontent tailored to you. Each of these courses can be done during your lunch break as they only take 15 minutes to complete!

When editing content types, you can now limit the types of content items links. You can also quickly preselect all content types with URL slug elements.

With proper item link limitations, your content creators save time by choosing only from the items that can be linked. No need to think twice when adding links.

Increased performance of Delivery REST API

The Delivery API responses are now 30% smaller and 50% faster. This is possible thanks to minimizing the JSON responses and changing the way they're serialized.

Don't worry, nothing changes for your apps. You still get the same JSON responses as before, they just aren't pretty printed.

Kontent CLI can run a range of migrations

With the Kontent CLI, our migration template runner, you can now run a subset of your migrations based on a range you provide (using the new range parameter).

This makes it easier to use migrations in multiple environments. For example, after you clone a partially migrated project, you can run your remaining migrations from the last migration that was executed on the source project. Find more details in the readme.

.NET SDK supports non-localizable elements

You can now use the .NET Management SDK to set content type elements as non-localizable.

Check out release details on GitHub for more information.

Updated ASP.NET Core extensions

We've released an update 0.12.0 for ASP.NET Core extensions. It comes with reworked models for webhook deserialization and newly targets .NET 6.

Check out release details on Github.

Improved filtering of your users

User listings in your project and subscription now show only active users by default. If needed, you can still apply filters to see deactivated users as well.

This is to make your user management clearer, as only active users count to the user quota of your subscription.

New .NET model generator

We've released a new version 7 of the .NET model generator. It's compatible with the latest versions of the .NET SDKs for Management API and Delivery API.

Check out release details on GitHub.

Workflow preselection saves your time

When you change an item's workflow and there's only one workflow the item can move to, Kontent now disables the dropdown and selects the workflow for you automatically. 

It works the same when you convert a component to a content item and there's only one workflow available.

Content items with components open faster

If you have 15 or more components in a content item, they no longer expand automatically after you open the item. This speeds up the process of opening the content item so you can edit it sooner.

Quickly find unlabeled items

Consistent content labeling is important. With the new Not in filter, you can quickly find unlabeled content items.

For example, if you need to find items that aren't labeled by a taxonomy called Continents, you'd select ∅ Not in Continents from the list of filters.

Find items that aren't labeled by a taxonomy.

More room for your content!

Guidelines in content items are now collapsed by default to make more space for what matters most – creating your content. You can always expand or collapse the guidelines as needed.

Collapsible guidelines

Item's workflow info in revisions and the calendar

We've added information about the workflow of your content items to two new places:

  • A content item's revision list
  • An item's detail in the editorial calendar


Improved .NET Management SDK

We've released a revamped version of the .NET Management SDK. With the new version, you can:

  • Manage environments, subscriptions, users, content types, workflows, languages, and other parts of your project.
  • Use the new SDK in projects targeting .NET 6.
  • Write concise code with the new GetAllAsync extension method. 

Check out release details on GitHub for more information.

New guide on content personalization

We've introduced a new introductory guide on content personalization. The guide walks you through the steps you need to take to provide personalized content experiences for your users and customers in the digital realm.

Truly optional content elements

We've changed how the validation of optional elements works. After this update, you can leave optional elements empty regardless of other limitations you specify for them. The limitations are only applied when the optional element isn't empty.

If the new behavior is not desired in your app, set the elements as required.

New Delivery SDK with .NET 6 support

We released version 16 of the Delivery .NET SDK to bring you the following improvements.

Check out release details on GitHub with tips on how to upgrade to the latest version.

Preselected collection when linking items

When linking content items in rich text or linked items elements, the content list will be prefiltered to the collection of the parent content item.

This little change helps you select from the content that's relevant to what you're editing and save time.

Want to reuse elements in another language?

We've added support for non-localizable elements. This means you can mark certain types of elements as non-localizable, ensuring the elements will have the same value in all languages.

Non-localizable elements are currently available through early access program. Let us know if you'd like to try!

Spring updates to GraphQL API

With the Delivery GraphQL API, you can now:

  • Use the new predefined totalCount field in collection fields to find how many items the collection contains. Useful for paging!
  • Get individual content items by their internal IDs. Useful if you know the item's ID but not its codename.
  • See how your queries fare in terms of complexity and resource consumption. The API responses now come with two new headers, X-Complexity and X-Request-Charge. Use the headers to fine-tune your queries.

Advanced asset management comes to the Management API

The Management API v2 now supports managing asset renditions via new endpoints:

When upserting language variants, you can now work with the renditions property in the asset elements.

The asset endpoints were also extended by the elements property containing the asset taxonomy.

Quality of life improvements for workflows

When editing content types, you'll see to which workflows the content type is limited. You can change the limitations in workflow settings.

Applicable workflows for a given content type

Also, in Project settings > Workflow you now see the number of content items used by each workflow. This number counts for items in all languages.

Regex validation ease of use and control over URL slugs

We've added a few improvements to validation by regular expressions to make your life easier. Firstly, you can now use regular expressions to validate your URL slugs. This gives you more control over how your URLs are built. 

Secondly, you can choose from commonly used regular expressions directly in Kontent when you're setting up regex validation on content elements. This helps you to speed up the process of setting up the validations because you don't need to reinvent the wheel.

Manage environments via API

Your developers can now use the new Management API endpoints to clone, rename, delete, and mark environments as production. Use the new API endpoints for environment management to automate creation of new environments and backups.

Don't know which folder you've opened the other day? Kontent does!

When inserting images to a content item, the last visited folder is now remembered so there's no need to click through the asset library again and again. Less time searching for assets, more time being creative.

Get a clear picture of how your content items are sorted

You'll be no longer unsure about the way your content items are sorted. When you search for content items, you'll now see clearly in the search bar information on how the items are sorted. Moreover, if you set the list to custom sorting, for instance by name, you'll see a reset button to get back to the default sorting by relevance.

New Delivery PHP SDK with support for PHP 8

We've released a new version of the Delivery PHP SDK that targets PHP 8. We've also updated the sample PHP app. If you're on Windows, you might like the tutorial on windows-based PHP development.

We recommend you upgrade to the latest SDK version because PHP 7.4 is currently in Security Support and nears its end of life.

Faster builds with Gatsby stack updates

We've released version 8 of our Gatsby packages supporting Gatsby 4. Here's what's new:

Sensitive digital assets? No problem!

Do you work with sensitive content, content hidden behind sign-in walls, or projects that aren't public facing? With advanced asset management, you can now secure access to your project's assets so that only your apps can fetch your assets. Try it!

Assign a collection to your new content faster

Kontent now makes selecting the right collection easier. When creating a new content item, you'll see the collections you use the most on top. Moreover, when you filter out content items in the content list and then create a new item, Kontent recommends you the collections relevant to your filter setup. And, last but not least, when you create a new content item from within the linked items element, Kontent selects the parent item's collection for you.

Find your assets faster by sorting them

You can now sort your assets by title, creation date, and file size. When you select a sorting option, Kontent remembers it and will sort your assets the same also the next time you visit the asset library. You can also sort assets in the dialog for inserting an asset into a content item. Here, however, Kontent doesn't save your sorting options.

One step less to restore an older version of content

Restoring an older version of a published content item just got easier: you can do it directly and don't need to create a new version of the item first – the item gets to its first workflow step automatically.

Similarly, when you want to restore an archived content item from an older version, you can now do it directly without needing to restore it from its latest version first.

Navigating the Collections ocean is now a breeze!

The list of collections in project settings now has filtering – that means it's easier for you to find the collection you need. What's more, we moved the Create button to the top so when you need to create a new collection, you now no longer need to scroll all the way down to the bottom of the list.

Under the hood of Kontent

Ever wondered what Kontent runs on? Check out What is behind Kontent for a quick primer on Kontent's architecture and the external services it uses. With this knowledge, you can make better informed decisions when building your own apps.

Improve SEO of your assets

You can now use your own domain to serve assets to your website visitors. Set up a custom asset domain to make your asset URLs more trustworthy and boost the assets' SEO.

One custom domain is available to every subscription with Advanced asset management. You can always purchase more if you need separate domains for your projects.

Manage users in your projects through API

Manage users in your projects and subscriptions with Subscription API. You can use the new API endpoints to synchronize users and their permissions across projects under your subscription. You can also use them to create an integration with an identity provider that you use for authentication.

Check out how to invite and change roles of users in your project. For your subscriptions, use the new API endpoints to list projects under a subscription, activate or deactivate users, and more.

An existing project on Web Spotlight? No problem

Is your project used for a website, but you're not using Web Spotlight? We've prepared a tutorial describing transitioning to Web Spotlight, one step at the time, using lessons learned from our customers. Let's start a new year with Web Spotlight!

Improvements to Delivery GraphQL API

We've added several enhancements to the Delivery GraphQL API.

  • Secure access – Make secured requests with an API key.
  • Preview content – Get the latest content from your projects with a Preview API key.
  • Ordering – Use the new order argument in root queries to retrieve your content items in a specific order.
  • AND and OR operators – Combine multiple filters to make spot-on queries.
  • Extended filterable system fields – Filter your content items by codename, internal ID, and their language.

Regex validation unleashed – now in the UI!

Recently, we released regex validation support in the Management API v2. Now, you can set the regex validation for text elements directly in the Kontent UI!

On top of that, you can also create custom validation messages. This is a handy tool to let your content creators know how to fill in the text elements to meet the set requirements. Say goodbye to typos in your e-mails, URLs, or phone numbers!

Setting regex validation in the content type

Setting up regex validation for the text element 

Promote changes to production with environment swap

Your project environments just got a boost. With environment swap, you can now mark your non-production environments as production. This effectively swaps the production and non-production environments, giving you a way of pushing content model changes from an environment to production without migration.

After the swap, developers need to update their apps to use the new production's project ID and API keys. The former production environment will continue to work without interruption.

Revamped .NET Management SDK

We've released a new BETA version of the .NET Management SDK. The new version has been revamped and now fully supports everything the Management API v2 has to offer.

Use the SDK to implement integrations or write content migrations for your Kontent projects. See a detailed list of changes in the SDK changelog.

Customize images to create the perfect fit

With advanced asset management, you can now customize images linked from the asset element directly in the Kontent UI. This can be especially useful when the image does not meet the limitations set for the element and you need to adjust the image. There's no need to upload multiple versions of the same asset anymore, customize your images within a few clicks.

Developers need to apply customization query parameters to the asset's original URL in order to display customized images on the web. When retrieving content via Delivery API, you can find the details about the customized image in the renditions object property of the Asset element object.

Customize image to fit set limitations

Text elements on steroids with regex validations

Proper content modeling is difficult, especially when there are no elements that would enforce the specific data formats you need in your app. Say goodbye to complex custom elements used just to check the text format. Set custom validation rules with regular expressions and turn your text elements into a very versatile tool that does the job for you.

Eliminate typos in emails and URLs, enforce specific format of your product IDs, and make the lives of your reviewers easier. All this and much more with custom regex validations!

Custom regex validations can currently be set only with Management API but take effect in the Kontent app. The ability to set custom validations directly in Kontent is coming soon.

Improvements to Delivery JavaScript SDK

We've released a new version of the Delivery JavaScript SDK that comes with several improvements.

  • Automatic paging support for listing endpoints.
  • Easy mapping of raw JSON responses, for example, when you need to cache an API response on your own and re-map it to SDK models.
  • Model generator for JavaScript and TypeScript can now generate entire project structure. This means you don't need to hardcode string literals in your code.
  • Experimental support for json and object representation of rich text elements.
  • Removed TypeScript resolvers in favor of simpler types.
  • Async support for rich text resolvers.

See the complete list of changes in SDK changelog.

Say hi to Delivery GraphQL API

Get exactly the data you request with the new Delivery GraphQL API. Using GraphQL for content delivery can improve the efficiency of content queries, prevent over-fetching, and help support modern tech stacks.

You can use the Delivery GraphQL API as an alternative to the Delivery REST API in your apps. The new API is automatically available for Kontent projects in select subscription plans.

Multiple workflows

Step up your content governance with multiple workflows! We know that different types of content often require different workflow steps and approval processes. That's why you can now set up separate workflows for different types of your content. For example, marketing content and legal content can have different workflow steps, transitions, and role permissions.

Get in touch with us or check out our pricing page for more details.

List of available workflows in Project settings

Automatic refresh in Web Spotlight's preview

Live-editing in Web Spotlight just got easier! You can now see your latest changes automatically, without having to manually refresh the page when previewing content.

Web Spotlight will wait for your changes to become available via the Delivery Preview API and the preview will then be refreshed automatically.

For this improvement to work, you need to:

  1. Update to the latest version of the Smart link SDK.
  2. Make sure your preview environment has the X-KC-Wait-For-Loading-New-Content header set to true when fetching data from the Delivery Preview API.

Subpages element in Management API v2

The Management API now differentiates between the linked items element and the subpages element. For projects with Web Spotlight enabled, this change means two things:

  • You can add and modify subpages elements in your content types via API.
  • The type of the subpages elements has been changed from modular_content to subpages.

The Delivery API is not affected by this change. Also, if you don't use Web Spotlight, this change doesn't affect you.

Expand nested linked items

You can now expand nested linked items up to the 7th level of nesting when editing a content item. This is possible for items within the rich text element and linked items element.

Content item with several expanded nested linked items

Content item with several expanded linked items

Keep all your assets neatly organized

With your asset library growing each day, it’s easy to lose track of what’s actually in it. Advanced asset management gives you the tools you need to stay on top of your assets.

Create an asset taxonomy based on your needs to organize assets by regions, teams, descriptive tags, and more. Find relevant assets without any hassle and make asset management a breeze!

Get in touch with us or check out our pricing page for more details.

Manage all users in your subscription

In your subscription details, you'll now find a list of all users invited to the projects under your subscription. With this user overview, you can quickly:

  • Find specific people by their name, role, or project they're in.
  • Change user roles, including their access to content in specific environments, collections, and languages. 
  • Activate or deactivate users in all projects under your subscription.
  • Verify how many more users you can invite.
The list of users in the projects under your subscription

Users invited to the projects under your subscription.

New features in Gatsby stack

We've released version 7.2 of our Gatsby packages. You can now use TypeScript in Kontent Gatsby React components.

For the early adopters among you, there's also a new experimental feature for triggering incremental builds by changing a workflow step. This is useful for content previews and should lower your update queue.

Kontent CLI improvements

We've released a new minor version of the Kontent CLI. When restoring a project using the CLI, you can now choose whether you want to publish all content item variants. This is enabled by default.

Also, the Management JS SDK is now a peer dependency of the Kontent CLI, allowing you to choose the version of the SDK that you require in your migration scripts.

New Delivery .NET SDK allows registering multiple clients

We've released version 15 of the Delivery .NET SDK. This version lets you register multiple Delivery clients in a single project. Also, you can now retrieve information about project languages and view workflow steps of content items. Find more in the SDK release notes.

Changes to the role setup in workflow steps

In newly created projects, the predefined workflow steps (Draft, Published, and Archived) will now come with the default Project Manager role. This means that items in these steps can only be handled by the Project Manager role unless specifically set otherwise.

To allow working with the workflow steps to anyone in the project, choose All roles instead.  

This applies to all new projects created after July 21, 2021.

Archived step with the default Project Manager role

Improvements to Javascript Management SDK

We've released a new version of the JavaScript Management SDK that comes with several improvements.

  • Added support for new Management API v2 endpoints such as collections.
  • Simplified retry strategy configuration.
  • Reduced SDK size by 30-40% by removing Rxjs peer dependency.

See the full list of changes as well as the migration guide on GitHub.

Custom colors in Web Spotlight's preview

The colors of the buttons and highlights in Web Spotlight's preview can be configured to match your website color pattern. This improvement is available in the latest version of the Smart Link SDK. Check out the SDK's readme for more details.

Preview tab in Web Spotlight with customized buttons

Website preview with custom link colors

Limit the number of terms in taxonomies

You can now set up limitations for the number of taxonomy terms in your taxonomy elements.

This means you can create validation rules that your content creators must follow. For example, they'd need to choose at least one term, or exactly one term, or fewer terms than the specified maximum.

New validation options for taxonomy element

With this set up you make sure your content creators choose exactly one taxonomy term. This keeps your content better organized.

Keep Web Spotlight page tree closed

The page tree in Web Spotlight can now be pinned in place. The change then takes effect across all your projects and web browsers. You can expand the page tree by clicking on a page tree icon at the top, or by clicking on the sidebar itself.

Closed page tree in Web Spotlight

Web Spotlight preview with closed page tree

Granular permissions for environments

In your environments, you can now choose which users should be active and which roles these users should have in each environment. Users with the Project manager role still have access to all environments.

Project manager becomes global

The Project manager role is now global for your whole project. When assigning this role to users, you need to assign the role to all languages and all collections. You can still create a custom role with the desired permissions and access restrictions.

If you assigned the Project manager role to a user and limited it to a specific collection or language, we'll migrate the role assignment for you.

Manage collections via Management API

The Management API v2 now supports managing collections using the /collections endpoint with GET and PATCH operations. Use GET /collections to retrieve a list of your collections and PATCH /collections to modify existing collections.

The modification includes operations such as adding new collections, renaming, reordering them, and removing empty collections.

In addition, you can list language variants for a specific collection using GET /collections/{collection_identifier}/variants endpoint.

Web Spotlight capabilities extended

When using Web Spotlight, you can now add content to your page right from the Preview tab by using the new Add buttons. Additionally, Edit buttons in Web Spotlight now also support content items and components.

For these improvements to work, you need to update to the latest version of the Smart link SDK.

Add buttons shown on the Preview tab of Web Spotlight

Website preview with Add buttons

Improved hints when changing collections

When moving items between collections, you now always see a list of item variants that will be affected by the move. This helps you do a quick check and provides hints if you cannot move the item.

See who added and updated assets

When you view your assets, you can see who created and last updated the asset.

For example, if you need to change the asset but don't have the means, now you know who to contact so they can adjust the asset for you.

Asset detail with metadata

Custom element API offers to subscribe to item's data change

The custom element API allows subscribing to a specific data change in the item – name, codename, and collectionId. Also, the item's reference object was extended with a reference to the item's collection.

Keep your content item sidebar closed

Content details sidebar can now be pinned in place so it does not show after each item visit. The change then takes effect across all your projects and web browsers. After activating the pin, sidebar stays hidden in both content item and Web Spotlight editor. Sidebar will be opened only when used for confirmation of the following actions: workflow step change, assigning contributors, creating task, setting due date, and adding/changing notes.

Better readability of audit log events

The information you see in your audit log events has been rearranged for better readability.

Audit log event in Kontent

Removed per hour rate limit in Management API

We've removed the rate limitation for 15000 requests per hour from the Management API to better support integration scenarios. The per second and per minute rate limits still apply.

Optimize images for any channel

We've put together an image optimization guide that will walk you through the most common methods for optimizing images on any device. This can help you produce faster loading images and save you quite a lot of bandwidth.

Disable and reset your webhooks

You can now disable and reset your webhooks. Disabling your webhooks (through UI or API) is useful if you need to run a large content migration, but don't want to receive webhook notifications.

If your webhook is failing and you've just fixed your webhook endpoint, you can reset the webhook. The next notification will be sent immediately so you can verify everything works as expected.

Collections are now in webhook notifications

We've extended the webhook notification model for content items with the collection property. The value of the property is the codename of the item's collection.

Find out why content strategy is important

Our new e-learning course, Content Strategy 101 for Partners, introduces content strategy and other related areas. You'll find out about typical problems from absent or not-working content strategy and how headless CMSs help address these issues. The course is primarily aimed at partner agencies, system architects, and starting content strategists.

Kontent gets a visual refresh!

App design isn't just about the look but mainly about user experience. We're addressing both aspects and giving Kontent a fresh coat of paint. With the new design, we'll be able to bring you different UI tweaks quicker and speed up your content creation.

Along with the new UI, we've also redesigned our e-learning courses. Check out our e-learning to stay up-to-date with Kontent and content creation trends.

Take your authoring experience to the next level

In our new e-learning course – Authoring in Kontent, you'll learn how to use the Kontent app as an authoring tool to create meaningful content. The course is primarily aimed at content authors and people collaborating on content creation in Kontent. You'll learn how to create new content, add structure to it, send it for review, prepare it for publishing, and more! 

New {Collection} macro for preview URLs

Use the new {Collection} macro in your preview URLs to differentiate between collections. For example, if you're using collections for multiple regional websites, you can use the new macro to tell your app which website to preview.

Collections generally available

Content collections are now out of early access beta. This means you can use collections in your projects automatically if you're on the Scale or Enterprise plans. For enterprise plans, this includes the ability to set different roles to different collection.

Codenames for workflow steps

Set up codenames for workflow steps in the UI and use the codenames in your apps. The workflow step codenames are available via our APIs:

  • With Delivery API, use the new codenames to filter the content you get on preview. For example, to omit archived content, use a filter such as system.workflow_step[neq]=archived.
  • With Management API, use the new codenames when changing workflow step of your item variants.

Java SDK is moving to Maven Central

Since JFrog decided to sunset the Bintray and jCenter services, Java Delivery SDK and Java Model Generators were migrated to Maven Central. From now on, all newly released versions will be published on Maven Central.

Check out the pull request for more information. 

Say hello to Kontent

In our new e-learning course – Hello Kontent, you'll get familiar with various parts of the Kontent app. The course is primarily for those who work with content directly, such as content creators and content managers. You'll learn how to find the content you need, what you can do inside a content item, or what content modeling looks like in Kontent.

Review history of content model changes

Review changes in your content model using the audit log to see who changed what and identify root causes of incidents. The audit log is a journal of changes related to content types and snippets and includes additional details about the action and the changed content.

Assign user role permissions for collections

Ensure the right people work on the right content by assigning their roles to specific collections. With collections, you can set up individual departments and teams and divide your content in a way that makes sense to your organization.

You can give your users different roles for each collection and language, or specify a fallback role for any new collections or languages that you might create.

Languages available in Delivery API

Use the new /languages endpoint to get a list of your project's active languages through the Delivery API. For example, you can take the list of languages you get from the API and use it to create a dynamic language selector in your apps.

Improvements to webhook notification emails

The emails you get when webhook notifications can't reach your app newly include the environment where the notification came from. This will help you resolve webhook issues faster.

Also, if you're not interested in receiving emails about webhooks, you can now opt out in your user profile.

Build relationships in content with taxonomies

We've put together a new introduction to taxonomies where you'll learn about the top 3 ways to build taxonomies and find the scenarios each approach suits best.

Schedule content for unpublishing via Management API

The Management API now contains a new endpoint for unpublishing content. There is an optional date-time parameter in the body. If it is filled, the item will be scheduled for unpublishing at the given time. Otherwise, the item is unpublished immediately. It is equivalent to unpublishing in the UI – after unpublish, item is moved to the Archived workflow step. There is also a new endpoint for cancelling scheduled unpublishing.

Collection column in content list

If you're using collections, you'll see a new Collection column in . The column will help you orient faster in your list of content items. You can still hide columns that you don't use or don't want to see.

Filtering by custom element value in Delivery API

You can use content filtering on the value of custom elements if their value is a stringified array of strings in JSON format. For example, for a custom element with the value of "[\"ABC\",\"DAC\",\"CMS\"]", you can use a filter such as element.custom[contains]=ABC.

Delivery API rate limitation

On top of our existing rate limitation of 100 requests per second, a new rate limit was introduced for the Delivery API. We added a limit of 2000 API calls per minute to ensure our Fair Use Policy.

JavaRx Delivery SDK deprecated

The JavaRx Delivery SDK is no longer being maintained and has been deprecated. We recommend using the Kontent Java Delivery SDK as a substitute. If you used the JavaRx SDK for Android development, see how to use the Java SDK for Android.

Collections in Delivery API

The content items you get from the Delivery API now come with information about their collections. You can find which collection the items belong to by the new collection property. You can filter your items by the new property just like you would with, for example, any text element.

New e-learning is here!

From now on, you can use our set of e-learning courses available right here in the E-learning section. Pick the right course for you or for your colleagues to become a Kontent master.

E-learning is part of Kontent's Customer Success Services. Partner agencies have free access using their accounts from Partner subscriptions.

Move multiple items to another collection at once

You can now move content items to another collection in bulk through the bulk actions.

Change collection for multiple items

Improving Web Spotlight

Web Spotlight introduces a new feature for your content authors: in-context editing. Edit your website content within the preview context without having to switch between the editor and preview.

In-context editor in action

Furthermore, you can now easily activate or deactivate Web Spotlight for your project in the Kontent's project settings. Note that you need to have Web Spotlight activated for your subscription first.

Web Spotlight activation in the project settings

Web Spotlight activation in the project settings

New Delivery .NET SDK with support for distributed caching and better unit testing

We've released a new version of the Delivery SDK for .NET. The latest version has undergone a major rewrite to support new features and simplify the use of the SDK. This means there were several breaking changes. You can solve most of the breaking changes by using the latest version of the .NET model generator.

The updated SDK brings several bugfixes and many new features such as:

  • Support for distributed caching via the IDistributedCache interface
  • Simplified response faking for unit tests
  • Async content link resolvers
  • Low-level access to the ApiResponse

We recommend that you update to the latest SDK version. Check out the full list of breaking changes and the migration guide.

Asset indexing and crawling

Asset indexing is now enabled for all Kontent projects. This means that the assets you link publicly can be indexed by search engines and crawled by social networks, letting these services load and display your image previews and thumbnails.

Divide content with collections

Collections offer a way of simplifying content organization for enterprises according to their business structure. Now, every piece of content is assigned to a collection allowing you to create an internal structure for projects.

Individual departments and teams can manage content in collections, ensuring the right people work on the right content.

This is how you work with collections

New version of Java SDK and model generator

The Java Delivery SDK and its model generator were updated to a new version. The updated SDK requires Java 8+ to work correctly.

Also, multiple Java packages were merged into one repository that now contains:

August in Kontent Docs

In August, not only can you read all the materials for Web Spotlight, including a blog post on transitioning existing projects to Web Spotlight, but you can also check other new materials. When you're about to migrate existing content, let us introduce you to the importing to Kontent. Choose from our tools or pick the API.

If you're a developer, check out how you can filter content items when you retrieve them through the Delivery API. This article lists eleven examples in different scenarios using all the programming languages you can easily use.

Website management made simple

Web Spotlight, our brand new tool for Kontent.ai focused on website management, is now available. Feel free to request the activation of this feature on your project and watch the magic happen.

Simple adjustment of navigation using the editor

Website editing with preview edit buttons

New filtering operators for Delivery API

When getting your content from Delivery API, you can now use new filtering operators. For all values, you can use [empty] (element has no value) and [nempty] (element has value). For non-array values like strings and numbers, you can use [eq] (same as =), [neq] (value doesn't equal the specified value), and [nin] (element value is not in the specified list of values).

New guides on starting with setting up Kontent

In the last few months, we've introduced new guides on content modeling and the configuration of team collaborations features. This time, we created introductory tutorials on setting up your project and assets.

Expiration of content

The expiration of content lets you schedule when content items move to the Archive state, automatically removing them from your websites and applications. This eliminates the overhead of manually removing items when they become obsolete, such as at the end of a campaign or after a planned event.

Expiration of content in the content item listing and editing

Invite multiple users at once

You can now invite multiple new users and existing users at the same time in the invitation dialogue. We've also improved several things under the hood to make the overall inviting experience smoother and faster.

Inviting new users and existing users in one go.

Easier access to quick actions for items

When editing your content items, you can now add tasks, update due dates, notes, and contributors using the quick actions at the top. 

Quick actions when editing a content item.

We've also changed the way you move items between workflow steps to make it more convenient. This will save you time when updating assignments.

Changing a workflow of a content item.

Simultaneous editing without conflicts

You can now create content without the risk of overwriting the work of your colleagues. We took care of conflict prevention on the content item element level.

For example, this means you don't need to wait for a colleague to finish writing the body of an article if you want to adjust metadata for the same content item. Watch our webinar for a demo.

Multiple writers working on the same content item.

Simultaneous editing

You can now search for items using an exact phrase without getting partially matched items.

Finding content items with exact phrase match in .

New team and collaboration guides

After new content modeling guides introduced in April, we're extending the Set up Kontent section with a new set of tutorials on setting up your team and collaboration within the team. The tutorials cover different topics like role configuration, establishing a workflow, adding multilingual or regional content, and setting up a collaboration process in your team.

New permission for environments

You can now use a Manage environments permission to let users in your project work with environments. For example, this can be useful if you want to give your developers complete control over your non-production environments.

Files used by assets can be updated via API

The Upsert an asset endpoint in Management API v2 now lets you update the file_reference you get after uploading a file. This means you can programatically change the file used in specific assets.

Breaking changes newsletter

Besides viewing all changes from the Kontent.ai Learn portal in your RSS reader, you can now follow all Kontent's breaking changes via email. Emails with a breaking change will be sent out right after its publishing here in the changelog. This way, you don't need to look for them proactively and still prepare for any breaking change in advance. Subscribe by clicking a link at the top of the changelog.

Structured text, more formatting, and images in tables

Tables now allow headings, lists, and more text formatting options in addition to bold, italics, and links. Also, you can insert images. See how to use tables in rich text.

Rich text in a table including images, lists and headings.

Table with images, lists, and headings.

In your content types, you can separately limit the formatting options for tables just like you can for the text itself.

Configuration of allowed text formatting in tables.

Configuration of allowed text formatting in tables.

New macros for preview URLs

You can now use two new macros while defining preview URLs for your content types. The new {Codename} macro resolves to the codename of a content item and the {ItemId} macro resolves to the internal ID of a content item.

Manage project environments

Environments provide a way to make changes in isolation from your production project. Use environments to prepare changes for your production project in a safe place. Your developers then take care of propagating those changes to production.

Webhook triggers for Preview API

Added Delivery Preview API events that you can choose to trigger your webhooks. These events can be triggered for changes in content items and taxonomy groups. See webhooks reference for details.

Checking your content structure

You can now browse content items in a hierarchical form using the new Relations tab.

Assigning roles in different languages

You can now assign multiple roles in different languages to invite users with language-specific access to your project.

New deep-dive content modeling guide

So that you have better guidance during content modeling, one of the most important parts of any content project, there's now a new content modeling section available that explains what content modeling is, how to start, and how to go live. Moreover, you can get some inspiration from our existing customers.

With that, the docs tutorials are now sorted within a slightly different page tree with new names. If you bookmarked any old URL, though, all URLs would still work.

Restore multiple content items at once

If you have multiple items in the Archived workflow step and you need to start working on them again, you can now select these items in your content items list and move them to the first step your role can work with using the Restore action.

Tasks in content items

You can now create and assign tasks within content items to delegate responsibilities and track progress of your content creation.

Archiving content and a new workflow step

Your projects will now contain a new default workflow step named Archived, which comes after the Published step. After you unpublish an item, you'll find it in the Archived step. Unpublished and archived content will no longer be mixed up with items in the Draft and other workflow steps in your content list. If you later decide that you need to work on an archived item again, you can restore it to the first available step.

Custom elements full-text search support

Custom elements can expose a plain text value that will be searchable in the content items list. See Custom element API and Management API reference for more information.

Sharing filters in the content item listing

You can now share your active filters in the content item listing with your colleagues via link.

API changelog evolves into product changelog

The changelog will now contain product changes as well. Use the new filter on the right (or at the top on mobile devices) if you're interested in a specific part of Kontent.

Changes to the unpublish and create new permissions

The permissions to Create a new version and Unpublish were split. The permissions can be assigned separately to the roles in your project via the Published workflow step. Make sure to verify who can unpublish content in your project and limit the permission only to select roles.

Markdown shorthands in rich text editor

You can now use markdown shorthands to create headings and lists when editing text in the rich text editor.

Saving filters in the content item listing

You can now save filters in the content item listing so that you can find the right content even more quickly and don't need to select the filters again every time.

Commenting on all content elements in all workflow steps

You can now add comments to all content elements in all workflow steps. That also applies to custom elements and published content items.

Duplicating content types

When you need to create a similar type that has a lot of content elements, you can now create a copy of the content type and save some time.

Duplicate option in content type editing

Faster revision comparing

Comparing revisions of content items is now significantly faster for larger items with a lot of rich text elements.

Maximum length of the content item name increased

Names of content items can now contain up to 200 characters (instead of original 50) to better support more descriptive titles.

Configuring columns in the content item listing

You can now configure what columns will be shown in the content item listing in your project. Hide those columns that you don't use or don't want to see.

Column visibility configuration in content inventory

Addition to webhook triggers

Added new webhook triggers for content items. The new content item events are create, delete, and restore. Whenever someone creates new content in your project or deletes items in any language, you can use the new events to trigger an integration with the Management API.

Discarding unpublished changes

You can now discard unpublished changes made to your content so they don't clutter your project when a user accidentally creates a new version.

Discarding a draft

Choose scope for full-text search within content items

You can now select a scope that will be used for searching within content. You can choose to search either within content item names only or within all content elements of your content items.

Delivery API limitation

On February 1, 2020, introduced the following changes to the Delivery API to ensure our Fair Use Policy:

  • The List content items endpoint will return max. 2,000 items (including linked items).
  • A rate limit will be applied to uncached requests to the Delivery API, resulting in a 429 Too Many Requests error when the limit of 100 requests per second is reached. This won't affect requests that hit our CDN cache.

Deleting projects

You can now delete projects in your subscriptions. Be careful, though, deleting a project is irreversible as all project data are removed. If unsure whether you can delete a project, you can always archive it instead.

Deleting project dialog

New URL for Custom elements JS API

The Custom elements JS API is now available at a new URL: https://app.kontent.ai/js-api/custom-element/v1/custom-element.min.js. The previous URL https://app.kontent.ai/js-api/custom-element.js has been deprecated and will stop working after a few months. We recommend using the new URL for any custom elements that you plan to create. The previous URL temporarily redirects to the new one, which means your existing custom elements will continue to work.

Request conflict resolution in Management API

The Management API may now return a 409 Conflict status code whenever a single resource (such as content type or snippet) is modified via multiple requests at the same time.

Including images in the Guideline element

 You can now add images to the Guidelines element to advise your content editor more effectively when they're creating content.

Changes to Management API v2

On December 11, 2019, we introduced the following breaking changes:

  • The endpoint for getting taxonomy groups returns a paginated response instead of an array of taxonomy objects. To unify the data format across the API, you will get the list of taxonomies wrapped in a JSON object which includes paging. If you use our JavaScript SDK, you can use the latest version which accepts both the old and new format of the endpoint. If you use your own implementation, you will need to change the code to accept the taxonomies in this new format.
  • The endpoints for modifying content types and modifying content type snippets use the path parameter instead of the referenceparameter. Currently you can use both parameters. After this change, the reference parameter will be deprecated and only path parameter will work.
  • The endpoints that return paginated responses accept only the x-continuation header parameter for paging. The continuationToken query parameter will be deprecated.
  • The URL slug element's mode's  mode property is required instead of optional.
  • When specifying elements in content type snippets using codename references, the element codename must be prefixed with the snippet codename. The stable version of the API will no longer accept non-prefixed codenames such as element_codename and requires prefixed codenames such as snippet_codename__element_codename. This is the same format as displayed in the UI when copying codenames of elements in snippets.

Changes to codenames of content items in the Management API

Added support for setting codenames when creating or updating content items via the Management API. To avoid breaking changes in version 1 of the API, updating the name property of an item causes the codename to autogenerate based on the new name. In version 2, the codename remains unchanged.

Components in Management API v2

Rich text element objects in language variants were extended with a new components property. The property contains all components inserted into the value of the rich text object. You can specify components when working with language variants.

Total count of items in Delivery API

Added support for retrieving total count of content items matching your query when listing content items via the Delivery API. To get the total number of items, use the includeTotalCount query parameter set to true in your request. This will cause the pagination object to include the total_count property with the total number of items. You can use the new property to build pagination mechanisms in your apps.

Changes to URL slug element model

The URL slug element in language variants lets you specify the element's mode via the new mode property. With the mode property, you can programmatically choose whether the URL slug element's value is generated automatically or assigned manually.

Java Delivery SDK renamed

In relation to the recent rebranding to Kentico Kontent, the Java Delivery SDK package was updated to reflect the new naming and is now available at https://github.com/Kentico/kontent-delivery-sdk-java.

Changes to content type and content type snippet PATCH requests

For Management API v2, PATCH requests to modify content types and content type snippets have been slightly modified to make references to given objects less ambiguous. To replace the property_name and reference body parameter, a new path body parameter has been added to specific the specific object that should be modified.

The property_name and reference parameters will continue to work for some time, but it is recommended to switch over to using the the path parameter.

Change to sign-in URL

The domain used when signing in to Kentico Kontent has been changed to https://login.kontent.ai. Users will be redirected to this domain automatically when accessing https://app.kontent.ai without being signed in.

Asset model change in Management API

The asset objects retrieved via Management API v1 and v2 now contain a new url property with a URL to the binary file.

Asset folders added to Management API

Added support for managing asset folders via Management API v2 using the /folders endpoint with GET, POST, or PATCH operations. Use GET /folders to retrieve a list of your folders, POST /folders to create initial folder structure, and PATCH /folders to modify existing folders. For example, the modification includes operations such as adding "op":"addInto", renaming "op":"rename", and removing "op":"remove".

SDK packages renamed

In relation to the recent rebranding to Kentico Kontent, SDK packages are being updated according to the new naming.

New SDK packages:

New boilerplate packages:

New sample apps:

Please note that the packages contain new endpoint URLs (https://*.kontent.ai) and the namespaces have been updated accordingly to Kentico.Kontent.*.

Changes to paging in Management API v2

The continuationToken query parameter has been deprecated and replaced with the x-continuation request header. The change affects endpoints that return a dynamically paginated list of objects. The original query parameter will continue to work until the end of November 2019.

Changes to references in taxonomy and language updates

The way PATCH operations to modify taxonomy groups and languages work with references has been changed.

For the Modify a language endpoint, the reference body parameter has been removed. The operation will be applied to the language specified in the language_identifier path parameter.

For the Modify taxonomy groups endpoint, the reference body parameter is optional for the replace and addInto operations. If a reference is not specified, the operation will apply to the taxonomy group specified in the taxonomy_group_identifier path parameter. If a reference is specified, the operation will apply to the specified term. The reference body parameter is still required for the remove operation.

Changes to content item PUT requests

The sitemap_locations property has been made optional for the body of the content item upsert requests for Management API version 1 and version 2.

API URLs changed

The API URLs have changed to:

  • https://deliver.kontent.ai/ for the Delivery API
  • https://preview-deliver.kontent.ai/ for the Preview Delivery API
  • https://manage.kontent.ai/v2/ for the Management API v2 (BETA)
  • https://manage.kontent.ai/v1/ for the Management API v1
  • https://recommendations.kontent.ai/ for the Recommendation API (BETA)

The original URLs containing kenticocloud.com will still be functional until further notice. However, we recommend that you update your SDK to the newest version or change the URLs to ensure your applications are always operational.

Webhook triggers extended

The types and operations for webhooks were extended to newly include change_workflow_status as webhooks can be triggered on changes to the workflow step an item is in.

Element limitations in the Management API

Version 2 of the Management API now includes limitations for elements in content types. The API now returns information about limitations in content type responses (all kinds of requests). See example responses in the content type model.

Webhook notification model change

The webhook notification model was extended with the id property for content items and taxonomy groups. With the ID in the notifications, you can uniquely identify any items or taxonomy groups that were modified, even if they were renamed and their codenames changed.

  • JSON
{ "data": { "items": [ { "id": "e5d575fe-9608-4523-a07d-e32d780bf92a", "codename": "where_does_coffee_come_from_", "language": "en-US", "type": "article" } ], "taxonomies": [ { "id": "4794dde6-f700-4a5d-b0dc-9ae16dcfc73d", "codename": "personas" } ] }, "message": { "id": "e1b372a2-1186-4929-b370-904c59f060b7", "project_id": "bf32e7ab-85c3-0073-47b9-90838a8462de", "type": "taxonomy", "operation": "upsert", "api_name": "delivery_production", "created_timestamp": "2019-07-18T10:52:33.1059256Z", "webhook_url": "https://myapp.com/webhook-endpoint" } }
{ "data": { "items": [ { "id": "e5d575fe-9608-4523-a07d-e32d780bf92a", "codename": "where_does_coffee_come_from_", "language": "en-US", "type": "article" } ], "taxonomies": [ { "id": "4794dde6-f700-4a5d-b0dc-9ae16dcfc73d", "codename": "personas" } ] }, "message": { "id": "e1b372a2-1186-4929-b370-904c59f060b7", "project_id": "bf32e7ab-85c3-0073-47b9-90838a8462de", "type": "taxonomy", "operation": "upsert", "api_name": "delivery_production", "created_timestamp": "2019-07-18T10:52:33.1059256Z", "webhook_url": "https://myapp.com/webhook-endpoint" } }

You can now specify titles for web URL links in Rich text elements to improve SEO of your website. When you specify a link title in the UI, the title will be rendered in the API responses from the Delivery API and Management API v2.

  • JSON
# Delivery API "content": { "type": "rich_text", "name": "Content", "images": {}, "links": {}, "modular_content": [], "value": "<p><a href=\"http://www.kontent.ai\" title=\"#1 CMS\">Kontent.ai</a></p>" } # Management API v2 { "element": { "id": "0ddd5a94-0360-5126-92e6-264dfbb61849" }, "value": "<p><a href=\"http://www.kontent.ai\" title=\"#1 CMS\">Kontent.ai</a></p>" }
# Delivery API "content": { "type": "rich_text", "name": "Content", "images": {}, "links": {}, "modular_content": [], "value": "<p><a href=\"http://www.kontent.ai\" title=\"#1 CMS\">Kontent.ai</a></p>" } # Management API v2 { "element": { "id": "0ddd5a94-0360-5126-92e6-264dfbb61849" }, "value": "<p><a href=\"http://www.kontent.ai\" title=\"#1 CMS\">Kontent.ai</a></p>" }

Image resolution in Delivery API

Extended the asset model with the width and height properties. This applies to assets used in the Asset and Rich text elements. With this enhancement, you can, for example, render placeholders for images in your application before the assets themselves are loaded.

  • JSON
"teaser_image": { "type": "asset", "name": "Teaser image", "value": [ { "name": "coffee-beverages-explained-1080px.jpg", "type": "image/jpeg", "size": "90895", "description": null, "url": "https://assets-us-01.kc-usercontent.com/38af179c-40ba-42e7-a5ca-33b8cdcc0d45/e700596b-03b0-4cee-ac5c-9212762c027a/coffee-beverages-explained-1080px.jpg", "width": 1000, "height": 666 } ] }
"teaser_image": { "type": "asset", "name": "Teaser image", "value": [ { "name": "coffee-beverages-explained-1080px.jpg", "type": "image/jpeg", "size": "90895", "description": null, "url": "https://assets-us-01.kc-usercontent.com/38af179c-40ba-42e7-a5ca-33b8cdcc0d45/e700596b-03b0-4cee-ac5c-9212762c027a/coffee-beverages-explained-1080px.jpg", "width": 1000, "height": 666 } ] }

Content models in the Management API

Added support for managing content types, content type snippets, and taxonomy groups in the Management API v2. You can use the new endpoints to import content models from other systems, integrate with third party services, or synchronize changes across multiple projects (Continuous Integration).

Workflow steps in the Management API

Added endpoints that let you programmatically create new versions of your content as well as publish, schedule publishing, or unpublish your content. This is especially useful for automating your work or enriching your content with data from other sources. Learn more about Workflow in the Management API v2.