> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frontic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contentful

![Contentful](https://mintcdn.com/frontic/zwqcoY8MRIYLLSYv/images/connectors/contentful.svg?fit=max\&auto=format\&n=zwqcoY8MRIYLLSYv\&q=85\&s=acfd149900bd815dbfa6b6d29ef29f41)

The Contentful connector syncs entries from a Contentful space - and a specific environment - into Frontic. Each entry becomes a record on a Content feed; the connector preserves Contentful's `sys.id` as the Source ID so updates land deterministically.

&#x20;Auth

Access token

&#x20;Update methods

Trigger · Polling

&#x20;Resources

Content entries

The Contentful connector follows the standard integration model - see [how integrations work](https://docs.frontic.com/connectors/overview.md) for Connection, Channels, and Data Feeds. This page covers the Contentful-specific configuration.

## Connection settings

**Space ID** `string` *required*

Your Contentful space ID - find it in Contentful under **Settings → General settings**.

**Access Token** `string` *required*

A Content Delivery API token (read-only) for your space, with access to the environments you'll connect.

## Channels

A Contentful channel carries which translations the connector pulls per entry.

**Channel Name** `string` *required*

A label for the channel in Frontic.

**Available Translations** `multiselect` *required*

Contentful locale codes the connector pulls per entry.

**Fallback Translation** `select` *required*

The translation used when an entry field is missing in another locale.

## Data Feeds

The Contentful connector exposes one feed type:

| Feed | What it pulls |
| - | - |
| **Content** | Every entry in the configured space and environment, with the Source ID resolved from `sys.id`. |

The standard **Settings → Updates → Schema** setup wizard applies - see [Data Feeds in the overview](https://docs.frontic.com/connectors/overview.md#data-feeds). For Contentful specifically:

### Per-feed config

**Environment** `string` (default: master)

Which Contentful environment this feed reads from. Defaults to `master`. Use this to point a feed at a sandbox/preview environment without changing the connection itself.

### Update methods

* **Trigger** - wire a Contentful webhook (Settings → Webhooks) to the feed's inbound webhook URL to push changes in near-real-time.
* **Polling** - scheduled refresh.

The connector does not expose a manual feed Refresh - use Polling or trigger a webhook from Contentful to backfill.

## What the data looks like

### Source ID

Each record's Source ID is taken from Contentful's `sys.id`. References between entries (`sys.type === "Link"`) come through on the raw payload - resolve them in your Data Sync if you want denormalized fields.

### Assets

Contentful asset entries come through alongside content entries. If you want them on a dedicated storage, configure a separate feed and filter by content type at the Data Sync layer.

## Good to know

* **Read-only via the connector.** Edits happen in Contentful. The Ingest API path is for systems that supplement Contentful with extra records, not for editing entries.
* **Reference resolution lives in the Data Sync.** The connector emits entries with `Link` references intact; resolution into denormalized fields is your Value Composer's job.

## Related

> [card] [Storyblok](https://docs.frontic.com/connectors/storyblok.md)
>
> Storyblok's connector - draft mode and folder filters.

> [card] [Custom Integration](https://docs.frontic.com/connectors/custom.md)
>
> For pushing supplemental records via the Ingest API.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.