advanced-search-bulk-operations.png

Contentstack’s In-App Search Just Got Stronger and More Flexible

We know that a key part of managing content is being able to quickly find it. When an enterprise has thousands of content types and multiple editors, a content solution that requires you to spend time sifting through thousands of loosely-matching records is a major waste of time and money. This is why, at Contentstack, we continuously strive to make our in-app search function more powerful, accurate, and actionable.

To that end, we are excited to announce a set of new features that adds more capabilities to our in-app search and helps content managers find content easily. Let’s go through what’s new in this release.

bulk-operations-search.png

Perform Bulk Operations on Search Results

We realize that content managers don’t only want to find content using search, they also intend to take action with the results.

That’s why we introduced the ability to perform bulk actions on the result set. Content managers can now mark multiple items from the results and either ‘publish’, ‘unpublish’ or ‘delete’ them, or ‘change workflow details’ of entries in bulk.

Of these four actions, the first three actions were previously available on the entry list page. We just brought them to our search page for ease of use. Read more about how to publish, unpublish or delete items in bulk.

The ‘Change Workflow Details’ action is a new option that we introduced with this release. It allows you to change workflow details (such as stage, assignee, due date, and comments) of multiple entries. Read more about how this option works.

Note: The options to perform bulk actions are available for the results of both Basic as well as Advanced searches.

Learn how to perform bulk operations on search.

Perform Advanced Search within Multiple Content Types

Previously, Contentstack’s Advanced Search functionality allowed searching within either a single content type or all content types. With our latest release, you can custom define the scope. You can select multiple content types within which you want to perform the search. This allows content managers to narrow down the search for more accurate results.

For example, it is now possible to look for all products that are priced below $500 in the ‘Watches’ and ‘Fragrances’ content types, and exclude results from other content types.

advance-search-multiple-content-types.png

Added Support for ‘Workflow Stage’ Option in Advanced Search

You can now search for entries based on their Workflow Stage.

For example, you need to find all entries that are currently in the “Draft” stage. In your Advanced Search query, you can select the “Workflow Stage” field, use the Is operator, and enter the workflow stage value “Draft” to get a list of all applicable entries.

workflow-stage-filter-option.png

To learn more about how search works in Contenstack, read our documentation on Global Search.

Read More
nested-modular-blocks.png

Build Nested Data Structures with Embedded Modular Blocks

Contentstack now allows nesting of modular blocks. This means that developers can, while creating content types, add Modular Blocks within a Modular Block field. This provides content managers with the flexibility to create deeply nested data structures without the need to engage a developer for changes in the content type structure.

Modular Blocks Overview

Modular Blocks is a field that allows content managers to dynamically create and modify components of a page or app on the go.

While creating content types, a developer can add various blocks (a group of fields) within a Modular Block field. For example, ‘Banner’ block (Single-line Textbox and Image fields), ‘Product Details’ block (Title, RTE, and Image fields), or ‘Video’ block (File and Multi-line Textbox fields). Content managers can then, while creating entries, select the required block or multiple blocks from these options, move blocks up or down, and remove them as and when required.

This offers content managers the flexibility to create dynamic and rich pages, without needing developers’ help for changes in the content type structure. Read more about Modular Blocks.

What’s New: Nested Modular Blocks

Previously, nesting was not possible with the Modular Blocks field. This meant that having a Modular Block as a choice for a field in another Modular Block was not possible.

With the latest release, it’s now possible. This gives more depth to the flexibility of Modular Blocks, and more power to content managers.

Developers can add up to 5 Modular Blocks in a content type, and add up to 20 blocks within each Modular Block field, with the max limit of total fields being 100 for each content type. Only one level of nesting is allowed for the Modular Blocks field. This means that you cannot add a Modular Block field to a Modular Block that is already a part of a Modular Block field. Learn more about the limitations of Modular Blocks.

nested-modular-block.gif

Let’s look at an example to understand this well.

You want to offer flexibility to news authors by providing page structures that allow them to create either standard news articles or submit a set of photos. Further, when creating standard news articles, there should be flexibility in the usage of images, image description and body content as required.

To achieve this, you can create a content type by adding a Modular Blocks field, and add two blocks within it: “Standard News Article” and “Image Gallery”. Within the first block (i.e., Standard News Article), add another (nested) Modular Blocks field, and add a block each for the following fields: ‘File’, ‘Single Line Textbox’ and ‘Rich Text Editor’. For the “Image Gallery” Modular Blocks field, add a ‘File’ field and mark it as Multiple. Save this content type.

Now, while creating entries for this content type, news authors can choose between ‘Standard News Article’ format or the ‘Image Gallery’ format. Further, they can create varieties of Standard News Articles by adding any of the three given fields anywhere in the page multiple times.

Another example where Nested Modular Blocks could be used is a super menu navigation of a website where each of the submenus contain a different dropdown structure.

Additional Resources

Log in to your Contentstack account and try adding a Nested Modular Blocks field to your content type to check out its flexible use cases. For more information, refer to the links below:

Read More
global-fields.png

Create Reusable Fields Using Global Fields

Last week, we released a feature that gives more power to developers by eliminating manual, recurring work. Introducing: Global fields.

What Is a Global Field, You Ask?

A ‘Global field’ is a standalone, reusable field (or group of fields) that you define once and reuse in any content type within your stack.

An apt use-case is ‘SEO’. You can create a Global field called ‘SEO’ by adding ‘Meta Title’ (Single-line Textbox) and ‘Meta Description’ (Multi-line Textbox) subfields within it. Now, simply add this SEO Global field in any content type, and the subfields will be added automatically. The content within those subfields can be changed per instance, i.e. each blog can have a unique meta description. This eliminates the need to create the same collection of fields repeatedly for different content types.

Another important benefit is that Global fields can be managed from a central location. If the developer changes the structure or settings of a Global field, the changes are reflected across all content types where this field is being used.

How Global Fields Benefit Developers

Let us look at a few situations where using Global fields is particularly helpful.

Reduce manual work: Instead of adding and configuring the same field in multiple content types, define a Global field and use this field in multiple content types. This cuts down developers’ time and effort considerably.

Auto-update changes: Global fields can be managed from a separate, dedicated section. If a Global field is updated, the changes are reflected automatically in all the content types. This further reduces manual work for developers and gives better control over the fields.

When to Use a Global Field

Here’s a rule of thumb:

While creating a content type, if a field (or a group of fields) takes time to build, and you are likely to create the same field for different content types, it’s best to create a Global field instead, and then reuse this field in the required content types.

Global field use cases include:

  • SEO group field
  • Address group field
  • Taxonomy group field
  • Any other field used repeatedly in multiple content types

Does Global Field Help Content Managers?

Not directly, as it is a feature for developers. However, since it helps accelerate creating and updating content types, it cuts down the wait time for content managers in case of change requests. Visually, a Global field looks like any other field (or a group of fields) to content managers.

How to Create and Use a Global Field

Perform the following steps to start creating your Global field:

  1. Log in to your Contentstack account, and go to stack.
  2. Navigate to Settings > Content.
  3. Click on the Global Fields tab and then the + New Global Field button. You will be led to the Create New Global Field form.
  4. Provide a Name and Description for your Global field, and click on Create and Add fields. You can now drag and drop fields into your Global field, just like you do for content types.
  5. Create a new content type, and add a Global field to it. Under Edit Properties on the right-hand side, select the Global field that you want to use.

Read more about Global fields.

Read More
management-tokens-content-api-requests.png

Introducing Management Tokens for Content Management API Requests

What Are Management Tokens?

Management Tokens are stack-specific, read-write tokens, used along with the Stack API key to make authorized Content Management API (CMA) requests. These tokens are not user-specific and can be used by anyone who has access to these tokens. They can be used to make the create, read, update, and delete requests on all modules of the stack. The stack owner or admin can create such tokens.

How Are They Different from Authtokens?

An ‘Authtoken’ is also a read-write token used to make authorized CMA requests, but it is a user-specific token. This means that your personal user details are attached to every API request that you make using the ‘Authtoken’. So, if a person were to obtain access to your Authtoken, and knows the Stack API key, this person would be able to make API requests that appeared to be coming from you.

Management Tokens, on the other hand, are stack-level tokens, with no users attached to them. They can do everything that Authtokens can do. Since they are not personal tokens, no role-specific permissions are applicable to them. It is recommended to use these tokens for automation scripts, third-party app integrations, and for Single Sign On (SSO)-enabled organizations.

Why Use Management Tokens?

  • A relief for SSO-enabled organizations
    Since users of SSO-enabled organizations log in to the Contentstack app via Identity Providers (IdP), and not through a traditional login, they do not get an Authtoken for making CMA requests. Previously, the workaround was to disable ‘Strict Mode’, log in using the Email-password combination, and get the Authtoken. Now, Management Tokens solve this problem. Irrespective of the way you log in, you can use Management Tokens to make CMA requests.
  • A token for your scripts and integrations
    Management Tokens can be used for automation scripts and third-party app integrations, as these tokens can perform all content management actions. This eliminates the need to share your personal Authtoken, thereby cutting down potential security risks.
  • On-demand expiry to mitigate risks
    If your Stack Management Token has been compromised, there is an option to invalidate the token by changing the expiry date or deleting the token instantly. You can, subsequently, create and use another token as a replacement.

A Few Things to Remember:

  • Management Tokens can be created only by stack owner and admin users.
  • While creating a Management Token, you can define if the token should or should not have an expiry date. You can also define if the token has read-only or read-write permissions.
  • A maximum of 10 tokens can be created in a stack. To create more tokens, reach out to our customer support team or your dedicated account manager.
  • A Management Token can be invalidated at will (by the stack owner or admin users) by setting the expiry to the current day or by deleting the token.
  • A management token cannot be used to accept/reject a received publish/unpublish request for an entry.
  • A management token cannot be used to invite users to and remove users from the stack

More Resources

Read More
headless-ecommerce-architecture.png

Headless Ecommerce Architecture Using Contentstack and commercetools

Predicting the future is difficult. But given the pace at which customer demands and expectations are evolving, we can be certain that today’s solutions cannot cater to the requirements of tomorrow.

This is especially true for the ecommerce space. Consumers expect more convenience (e.g., order from anywhere, anytime, through smart speakers). Businesses are demanding more flexible commerce solutions and reduced time to market. Moreover, with the increase in adoption of IoT devices, businesses are looking at solutions that can support connected experiences.

This calls for a solution that can keep up with this pace of ever-changing demands. The answer is a re-imagined, modern and headless commerce architecture. Such an architecture combines a headless CMS that can deliver content, as well as a headless ecommerce platform that provides core e-shopping functionalities, such as pricing details, cart, payment gateway – all through REST APIs.

Using Contentstack as your CMS and Commercetools as your ecommerce platform allows you to develop a robust, scalable, and secure ecommerce site that’s ready for the future.

Content in Contentstack: Shopping Details in commercetools

Since a headless CMS ensures that content can be published across any channel with ease, it makes more sense than ever to manage all product-related content within the CMS. This includes articles, images, and any other marketing content. Conversely, key components such as pricing, orders, cart, and checkout, can all be managed in commercetools. Such an implementation ensures that key concerns are separated, and of course, managed by two best-in-class solutions.

headless-ecommerce-architecture.jpg

Syncing Contentstack and commercetools for Seamless Integration

Since both Contentstack and commercetools are API-based solutions and offer webhooks, keeping them in sync is easy. For example, whenever an order is placed, commercetools can trigger a webhook to update product inventory in Contentstack. Or, if any product details (such as pricing or offers) are updated in commercetools, it can send notifications so that site content editors can make corresponding site updates using Contentstack. It is easy to keep both systems in sync for any other event using webhooks.

Ecommerce Demo: See Contentstack and commercetools in Action

We have created a sample ecommerce web app using Contentstack and commercetools. You can check out the demo, view the code, or go through the steps to set up your own site. While the site is intended to be just a simple, straightforward demo, it will help you gain a quick understanding of how to set up an ecommerce site – and with Contentstack you can always add additional integrations and capabilities if you wish you enrich the experience.

commercetools Extension for Contentstack-powered Sites

The demo web app provided above uses both Contentstack and commercetools within your site code. There’s another way of integrating these two services: Create an ecommerce website using Contentstack, and use the commercetools field extension to fetch product details in your content type’s fields. Or you can use this extension within the demo app given above. Learn more about this extension to understand how you can use it in your apps.

More Resources

Read More