Short answer
A Contentful DAM integration is an app that lets editors pick approved DAM assets inside Contentful entries and keeps those assets current when the DAM changes. Contentful offers two routes: copy files into Contentful assets, or reference DAM files through the App Framework. Fact: Contentful's Images API resizes images up to 4,000 pixels per side.
What a Contentful DAM integration must do
A Contentful DAM integration must give editors approved assets in the entry editor and keep every reference valid until the asset is withdrawn.
| Function | Direction | Why it matters |
|---|---|---|
| Pick in the entry editor | DAM to Contentful | Editors search the DAM inside the field and skip download and upload |
| Store the reference | DAM to Contentful | The entry keeps the DAM asset ID, so updates and expiry can be traced |
| Deliver renditions | DAM or Contentful to channels | Websites and apps receive the right size and format |
| Carry metadata | DAM to Contentful | Alt text, credits and rights travel with the asset |
| Update and withdraw | DAM to Contentful | New versions appear, and expired assets leave every channel |
| Report usage | Contentful to DAM | The DAM shows which entries use each asset |
Contentful is a headless CMS: it stores structured content and delivers it through APIs. The DAM vs CMS guide explains why a CMS asset library makes a weak DAM. The DAM integrations guide places the CMS among the other DAM connections.
How Contentful models assets
Contentful models assets as their own content type: a file plus metadata, linked from entries and published separately.
- Fact: an asset holds files such as images, videos, audio or PDFs, usually attached to entries with links.
- Fact: creating an asset takes three steps through the Content Management API: create, process and publish.
- Fact: assets can be localised with a separate file for each locale.
- Fact: published images are served from images.ctfassets.net, and EU data residency customers use images.eu.ctfassets.net.
- Fact: the Images and Assets APIs serve published assets publicly, without a token.
| Limit | Value from Contentful documentation |
|---|---|
| Asset file size | 50 MB on Free plans, 1,000 MB on paid plans |
| Image size | 100 MB per image |
| Images API resize | Up to 4,000 pixels per side |
| Images API formats | jpg, png, webp, gif, avif and tiff |
| AVIF source images | Up to 9 megapixels |
| Locales | 500 per environment |
| Content Management API | 10 calls per second per space on paid plans |
The Images API makes Contentful its own delivery layer. A DAM that copies files into Contentful gets resizing, cropping and format conversion through URL parameters. A DAM that keeps files outside Contentful delivers through its own image CDN.
How the App Framework connects a DAM
The Contentful App Framework connects a DAM through frontend apps in the editor and backend apps that act on events.
| App Framework element | What a DAM connector can do | Fact from Contentful documentation |
|---|---|---|
| Frontend app locations | Show a DAM picker inside the editor | Apps render in an iFrame in seven locations: Entry Field, Entry Sidebar, Entry Editor, Page, Home, App Configuration and Dialog |
| Backend app identity | Update assets and entries from a server | Backend apps call the Content Management API under their own identity |
| App events | React to publish and save events | Backend apps subscribe to events in their installed environment |
| Marketplace | Install a partner-built DAM app | Marketplace apps install free of charge from the Contentful web app |
| Native external references | Link DAM assets as resources in a reference field | Available on Premium plans and above, resolved through the GraphQL Content API |
Fact: Contentful Marketplace publishing is open to a select group of technology and integration partners. A DAM app outside the Marketplace installs as a custom app, which the buyer's team or the vendor hosts.
Integration patterns for Contentful
Contentful DAM integrations follow three patterns, and each pattern sets who stores the file and who serves it.
| Pattern | How it works | Delivery | Trade-off |
|---|---|---|---|
| Copy into Contentful assets | The picker or a sync creates Contentful assets from DAM renditions | Contentful CDN and Images API | Two copies of every file, and the sync must cover updates and expiry |
| Reference in an entry field | An Entry Field app stores the DAM asset ID, delivery URL and selected metadata | DAM CDN | One copy, and stored metadata goes stale unless the app refreshes it |
| Native external references | A resource type for DAM assets, resolved by a function at query time | DAM CDN, data through GraphQL | Current data on every query, with a Premium plan requirement |
DAMSelection assessment: the reference pattern fits most organisations with a mature DAM, because rights and versions stay in one system. The copy pattern fits teams that want Contentful's Images API for all web images. The headless DAM guide covers the delivery architecture behind both.
Worked example: a migration copies 40,000 images into Contentful. Each asset needs three calls: create, process and publish. At 10 calls per second, 120,000 calls take at least 12,000 seconds, about 3.3 hours, before retries.
What must stay in sync with Contentful
Five changes in the DAM must reach Contentful within a stated time: new versions, rights expiry, deletions, metadata and alt text per locale.
| DAM change | Copy pattern | Reference pattern |
|---|---|---|
| New version | Upload, process and republish the Contentful asset | DAM URL serves the new file, and the app refreshes stored metadata |
| Rights expiry | Unpublish and archive the Contentful asset | DAM URL stops serving, and the app flags entries that still link it |
| Deletion | Delete the Contentful asset | App flags or clears the field |
| Metadata change | Update asset fields and republish | App refreshes stored values |
| Alt text per locale | Write each locale's value to the asset | Read each locale's value from the DAM at render or refresh |
Fact: archiving or deleting a Contentful asset removes its files from the CDN, but files may remain reachable for up to 48 hours. A rights expiry handled through the copy pattern must start at least 48 hours before the end date. Usage rights records in the DAM need that lead time as a field.
Fact: Contentful sends a save webhook when an entry or asset changes through the Content Management API or an app. Fact: failed webhooks retry up to two more times, about 30 seconds apart, and a timed-out request is not retried. The DAM vendor needs a reconciliation job for missed events.
Alt text belongs in the DAM per language. The accessibility and alt text guide covers that source model. Contentful's per-locale fields can hold each language, so the connector maps DAM languages to Contentful locales.
The four depth levels for Contentful
DAMSelection rates Contentful integration depth on the same four levels as every other platform, based on who builds and maintains the connector.
| Level | What it means for Contentful | Evidence DAMSelection accepts |
|---|---|---|
| 4 Native connector | App built and maintained by the DAM vendor | Vendor documentation or a Contentful Marketplace listing by the DAM vendor |
| 3 Partner or marketplace connector | App built by a third party | Marketplace listing naming the developer |
| 2 Documented API pattern | DAM guide for a custom Contentful app | Published developer guide |
| 1 Custom build only | No app or guide | Explicit statement that a custom build is required |
Vendor ratings appear on vendor profiles once verified. The integrations overview explains the scale for all platforms.
What to test in a Contentful demo
A Contentful demo tests the asset loop in a sandbox space with the buyer's own content model, locales and assets. Add these steps to the scripted demo.
- Install the DAM app and show which app locations it uses.
- Open an entry and pick an approved image from the DAM with three facets.
- Show what the field stores: asset ID, URL, metadata or a Contentful asset link.
- Pick a DAM master above 4,000 pixels and show the delivered rendition size.
- Show alt text in two locales on the delivered asset.
- Replace the image with a new version in the DAM and show the website result.
- Expire the rights on the image and show the entries the app flags.
- Delete an asset in the DAM and show the result in Contentful.
- Show the DAM usage report listing the entries that use the asset.
- Try to pick an asset outside the editor's DAM role and show the block.
The Demo Script Generator formats the steps as a scenario. The panel scores each step pass or fail against criteria written before the demo.
Common failure points
Contentful DAM integrations fail at five points that a buyer checks before signature.
- Stale copies: copied assets keep old files and metadata when the sync covers only new assets.
- CDN lag: archived or deleted files may stay reachable for up to 48 hours.
- Missed events: three webhook attempts over one minute leave gaps without a reconciliation job.
- Locale gaps: alt text in the DAM covers fewer languages than the Contentful locales.
- Hosting ownership: a custom app hosted by the buyer needs an owner, monitoring and updates.
Questions for the DAM vendor
The buyer sends these questions in writing and asks for documentation with each answer.
- Which pattern does the Contentful app use: copy, field reference or native external references.
- Is the app listed on the Contentful Marketplace, and who hosts and supports it.
- Which app locations does the app use, and which permissions does it request.
- How does the app refresh stored metadata, and how often.
- How does the app handle rights expiry and deletion in entries that use the asset.
- How does the app map DAM languages to Contentful locales for alt text.
- Which Contentful plan does the pattern require.
Frequently asked
Can Contentful replace a DAM?
Contentful can store and deliver web images, but its asset model holds no rights records, approval workflows or rendition presets. Organisations with a few hundred web images often manage in Contentful alone. Organisations with campaign, product and brand libraries across channels add a DAM.
How do DAM images get into Contentful?
DAM images reach Contentful in one of two ways: copied as Contentful assets through the Content Management API, or referenced from a field through a DAM app. The copy uses Contentful's CDN and Images API. The reference uses the DAM's delivery layer and keeps one copy of each file.
Does a Contentful DAM app need a Premium plan?
The Contentful App Framework overview names no plan requirement for standard app locations such as Entry Field and Dialog. Native external references, which resolve DAM assets through the GraphQL Content API, are available on Premium plans and above. The buyer confirms the plan with both vendors.
How fast do deleted assets leave the Contentful CDN?
Deleted or archived Contentful assets can stay reachable on the CDN for up to 48 hours, according to Contentful's Content Management API documentation. A rights expiry process must start early enough to cover that window. DAM-hosted references stop serving when the DAM withdraws the file.
Can a DAM set alt text per language in Contentful?
A DAM can set alt text per language in Contentful when the connector maps each DAM language to a Contentful locale. Contentful supports up to 500 locales per environment. The buyer tests two locales in the demo and checks the delivered output.
Sources
- Assets, Contentful Content Management API reference
- Images API, Contentful developer documentation
- Technical limits, Contentful developer documentation
- App Framework, Contentful developer documentation
- Native external references, Contentful Help Center
- Webhooks overview, Contentful developer documentation