Using the Contentful integration

Before you start

This guide helps you get started with the Contentful-specific integration. For more general tips on working with external data sources, check out the guide on connecting to an external data source.

The Contentful integration for Uniform brings your structured content from Contentful into the composition layer, Uniform Canvas. Team members can now leverage your Contentful content, along with data from any of your other sources, to create experiences without needing a developer.

This integration comes with these archetypes to help connect your Contentful entities to your Uniform components:

  • Asset selector: For selecting images and files
  • Query: For creating a dynamic query (for example, the 5 most recent items)
  • Single entry selector: For selecting a single entry
  • Entries by field: For using a slug as a dynamic input
  • Multi-entry selector: For selecting multiple entries

To install the integration:

  1. Go to the Uniform dashboard.

  2. Select the team and project that you would like to install the integration into.

  3. Navigate to the Integrations tab using the main navigation bar. Select the Contentful integration tile.

    add-integration-to-project
    The interface for adding the integration.
  4. Click the Add to project button that appears in the subsequent dialog. This will install the Contentful integration and make the data source and archetypes available for when you are configuring new external sources. Learn more about connecting to external data sources.

Once you've installed the integration, the next step is to connect your Contentful space to your Uniform project by creating a new data source.

  1. Navigate to Experience > Data Types. A data type is an element that can be retrieved from a data source, so the first step is to identify a data source.

  2. Create a new data source by clicking the Add data type button and select the "Create new" option under the Contentful label.

    add-data-source
    Add a data type.
    create-new-data-source
    Where to create a new data type from the available data sources.
  3. Provide details specific to the Contentful space you are connecting to:

    FieldDescription
    Space IDThe ID for your Contentful space. (e.g xx53w0a6mijw)
    Environment ID (optional)You can specify a specific Environment ID to use when requesting data from this space. If left empty, this field will default to master.
    Content Delivery API TokenIf you don't have one already, you can provision this key from the API settings page in your Contentful space settings. You will need to provide the key for the "Delivery API," not the "Preview API."
  4. Name your data source. Choose a name that helps to inform your editorial users where the content is coming from. The name of the Contentful organization and space is a good option here.

Use multiple spaces

You may have more than one space that you are using with Contentful, perhaps to separate content used across different sites or different brands.

By repeating the preceding steps, you can support any number of Contentful spaces within a single Uniform project, allowing you to bring content together from across your Contentful organization.

Before you start connecting Contentful data to your Uniform compositions, it's important to first create some data types. Data types define which types of Contentful data editors can use. This could be simple, like allowing an editor to select a single "hero" entity, or more perhaps a more complex query such as "the five latest news article entries."

Go to Experience > Data Types and click the Add data type button from below the Contentful data source that you set-up earlier.

add-data-type
Add a data type after selecting the data source.

Next, you will want to select and configure an archetype from the options below:

The asset selector is useful for browsing media assets stored within Contentful for cases when you want to replace images or documents with media from within your Contentful space directly.

asset-archetype
The screen where you select the image from those available.

The query archetype will always return a list of content entries, up to the limit set by the editor in Uniform. This can be useful for dynamic queries where the most up-to-date information is needed, such as a "latest content" section.

query-archetype
Retrive information by a query.

Archetype: Single entry#

The single entry archetype will always return a single entry from Contentful, based on a selection by the editor in Uniform. This is useful for non-list elements that render as an independent item, such as a single "hero" entry or "article" entry. It can accept a variable from a dynamic token (such as a slug) and retrieve the corresponding entry.

single-entry-archetype
Select a single entry from available data.

The entries by field archetype supports dynamic pages, allowing authors to leverage a slug as a dynamic input. You can use this data type for other uses as well, such as finding Contentful entries by field value rather than using full-text search or other filters.

For example, suppose you have a project map node with a dynamic path segment such as the slug post, where post is a dynamic input for a blog post coming from Contentful. You can create an entries by field data type to connect the post dynamic input with the slug field of the data resource.

You can find more information about using dynamic inputs with data resources in the composition guides, or learn more about using dynamic routes with project map in the URL management section.

configure-data-type
Select a field on which to search for content to pull into the component.
article-by-slug
An example of searching by the slug field.

The multiple entry archetype lets an editor hand pick multiple entries to render as a list. This is useful when a small selection of specific entries is required, such as in a "featured articles" carousel.

multiple-entries-archetype
The interface for selecting multiple items from those available.

Once you have configured your data types, you will be ready for the final step of connecting your Contentful data to your components and compositions from within Uniform Canvas.

For commonly used components, Uniform recommends using patterns. This is the best approach when content architects want to create a reusable connection between a data type and a component, and avoids mapping data every time you use Contentful data.

With patterns, you define exactly how a component (or set of components) should be configured ahead of time, including the data bindings to external services. Once configured, composing with Contentful is as simple as selecting the pattern you need (such as a Contentful Hero),just like you would select a standard component. The difference is that this time, you can also select the Contentful resource that should supply the data and Uniform will handle the rest.

selecting-pattern
Selecting the pattern to add.
implemented-pattern
All pattern bindings can be updated by changing the data resource.

To learn more about how to use patterns, check out the pattern guide.

The most granular approach for bringing your Contentful data into Uniform is to connect a resource to a component field directly. To do this, open the composition and component you want connect to Contentful data.

  1. Select a field within the component that you wish to connect Contentful data to.

  2. Click the on the top left of the field you can open up the data resource mapping dialog.

    open-data-binding
    Fields that support data connections will have an icon by which you access data resources.

    From here, you will be guided through the process of setting a data resource for the composition, if none are available already. To set up the data resource just provide a name. Choose something that connects it to the resource is used in the composition (such as "Featured Article"), and select your data by using the data types you defined earlier.

    selecting-a-resource
    Selecting a data resource to connect to the composition.
  3. After you select your data resource, map the appropriate field from the data resource to the parameter on your component. For example, map the title field from your Contentful entry to the title field of your Uniform component.

    field-mapping
    Mapping the field from Contentful to the parameter.

    Now that you have a data resource configured, you can use this resource to connect fields across the entire composition without needing to recreate the resource. This also means that if you update the data resource to a different selection or query, then all the components that map to the original data resource will update automatically with no remapping.