Skip to content

Modern Drupal Feeds Module First Stable Release

Overview of the module and value for Drupal builders

The Feeds module enables importing data into the Drupal framework using either a web interface or APIs. Its pluggable architecture allows data imports from any source and in any format. Out of the box, users can import data in CSV and RSS formats. Additional formats such as XML, HTML, and JSON are supported through the Feeds Extensible Parsers module. Users can also schedule how often they want to run imports, such as hourly or daily. Custom migrations can also be implemented by developing custom Feeds plugins.

The import process can be fully configured through the user interface in two steps.

  • First, you create a feed type (similar to a content type) where you specify the data source (e.g., a URL or file upload), the format of the data, and the target entity on the Drupal site where the data will be imported (e.g., nodes, taxonomy terms, users, or other entities). Next, you define how the source data should be mapped to fields (referred to as targets or destinations) within Drupal. This process creates a feed type.
  • Second step is to add the actual data source - either enter url or upload a file - and import data. This is similar to adding new nodes to Drupal CMS.  At this time you can also set schedule for you import

The architecture of Feeds allows the reuse of feed type configuration for different data sources that have the same data structures. This is a major advantage over the migrate module where the source of import/migration has to be hard coded for each import/migration.

Feeds is #66 on the list of Drupal modules and is used on over 10% of all Drupal sites.

Philosophy behind the module 

Data import capabilities are among the essential features required by any web framework. Before Drupal 8, contributed modules like Migrate and Feeds provided these functionalities. In Drupal 8, the Migrate module was incorporated into core; however, it lacks a user-friendly interface for site builders and requires a hard coded data source in any import/migration.

The separation of the feed type from the feed source allows content editors or other non-technical users to import data with a predefined structure, in a manner similar to creating nodes within predefined content types.

This architecture enables the development of imports of data with a low or medium complexity more efficiently, requiring smaller budgets and less time to implement.

History of feeds and transition from D7 to modern Drupal - ecosystem for developers vs site builders

The module was first created under its former name FeedAPI for Drupal 5 in 2007. The functionality of mapping of sources to fields was then in a separate project called ‘Feed Element Mapper’. In 2009, the project got completely rewritten and has since been known as Feeds.

In 2013, work began on porting the module to Drupal 8 with quite a lot of architectural changes to make use of the new best practices that Drupal 8 brought. See https://www.drupal.org/docs/contributed-modules/feeds/conceptual-differe...

It took a few years before the first alpha got released because the main focus of development had still been on the D7 version. When finally the UI for the CSV parser was ready, on April Fools’ Day 2018 8.x-3.0-alpha1 was released.

In the years after, work was done to port most features from the D7 version and as soon as all critical stuff was ported, in 2022 Feeds went into the beta phase and focus went to fixing bugs and optimization, though new features were still added too.

In September 2024, after fixing a major bug and adding Drupal 11 support, the first release candidate was released. A few regressions were fixed in the following two releases, but nothing too major.

And now, in January 2025, we’ll have the first stable release!

Thank you to contributors

The module is supported by a very small team of volunteers via code contributions, weekly Slack meetings since 2018, presentations at various camps and conferences. Two companies that provide consistent support are WebCoo and Fibonacci Web Studio.

The future

While Feeds is now officially marked stable, the work isn’t done yet. Improvements are planned for fetching files, a media target and multilingual imports.

On the wishlist are also previewing the import while you are configuring mappings and configuring an import in wizard format, where you start with providing the source that you want to import and allowing Feeds to make a guess for how the data should be mapped.

But first the focus will be on getting Tamper and Feeds Tamper to stable.