developers working on sites

How to Manage Your Related Content in Drupal Instantly with Inline Entity Form

On a busy Drupal website, content rarely lives on its own in a silo. Presentations and webinars are linked to speakers, academic programs will reference courses, and events are tied to locations, the list goes on. Update one of these pieces on its own page, and the change shows up everywhere it’s used, reflecting Drupal’s strength as a coherent, interconnected system.

But Drupal doesn’t stop there, it offers special tools for managing related content. This makes an especially big difference for content-rich Drupal websites, where reducing repetitive work really matters. Discover how the Inline Entity Form module helps you manage related content instantly by putting all forms right where you need them. We will also walk you through the process of setting it up.

 

The Inline Entity Form module in Drupal: a key overview

The Inline Entity Form module enables editors to create, edit, or remove related content inline without leaving the page. It embeds the full edit form of referenced content directly into the parent content’s edit form. 

 

The key benefit of IEF

Without IEF, editors often have to create or edit referenced content separately, save it, come back, and link it afterward, which is slow and error-prone. The module helps avoid context switching and multiple edit screens. This makes managing complex content workflows faster and more intuitive.

 

Working with content and more

Here, “content” is used as a general term, but technically, the module goes beyond just content. In proper Drupal terminology, Inline Entity Form works with all fieldable entities, entities that are composed with Drupal fields. This includes content, media, users, taxonomy terms, comments, custom blocks, as well as custom entities defined by modules or developers.

 

Special field widgets

To “attach” one entity’s edit form to another, the Inline Entity Form module provides special field widgets, which we’ll explore in this post and show how they work.

 

Key use cases for Inline Entity Form

Primary (classic) use case

The primary use case for the module, as described on the module’s page, is for Parent > Child entities. They are managed only within the parent form and not used elsewhere (like product display > products, order > line items, and so on). In this setup, IEF keeps workflows simple while letting editors manage all child entities inline.

 

Complex (reusable) use case

IEF can also be used with entities that are reusable across the site. Examples include events with sessions or locations, programs with courses, or projects with collaborators. Editors can create or edit a related entity directly while working on the parent entity, and the changes apply everywhere the entity is used on the website.

This advanced setup requires:

  • Editor awareness: they must know changes are global
  • Proper permissions: only trusted users should be allowed to edit inline

This use case shows IEF’s full strength: editing complex, reusable entities inline while maintaining site-wide consistency. These entities are reusable, fieldable, revisionable, and displayable as listings in Drupal Views — and yet can be edited directly within another entity’s form for a fast, intuitive editing experience.

 

How to use the Inline Entity Form in Drupal: step-by-step guide

In this example, we’ll be creating a setup where the editing form for an event will include the editing form for sessions. At the same time, sessions will be full-fledged content items, reusable across the site.

 

Step 1: (Optional) Creating content types

This step is needed if you don’t yet have your content types for this setup (like “Session” or “Event”). With the Inline Entity Form module installed on your Drupal website, go to Structure > Content types on your Drupal admin dashboard.

Add a new content type and name it “Session.” Open the “Manage fields” tab and add fields to it, for example:

  • Time (a “date and time” field type)
  • Room (a “text” field type)
  • Speaker (a “reference” field type that will reference users)
An example of adding a field to a Drupal content type
An example of adding a field to a Drupal content type

 

Similarly, create a content type named “Event.”  Add basic fields, for example:

  • Event date (a “date and time” field type)
  • Location (a “reference” field that will reference a taxonomy vocabulary with locations)

Fields in your specific setup can be implemented differently from those in this example. If needed, see more details about fields in Drupal: how fields work, what key field types exist, and how to create them via the new interface. 

 

Step 2: Connecting the Event and the Session content types

Now it’s time to add the key field to the Event content type that will connect it to the Session content type. Create a field of “reference” type in Events and name it “Sessions.” It’s possible to reference various entity types: content, user, taxonomy, or others. You’ll need to select “Content.” 

Adding a “Sessions” field to the Event content type in Drupal
Adding a “Sessions” field to the Event content type in Drupal

 

On the next page of the field settings that will open to you, configure the allowed number of values, which means the allowed number of sessions per event. In this example, an unlimited number of values is allowed, but you can set a limited number based on your event specifics.

Configuring the Sessions field for the Event content type, part 1
Configuring the Sessions field for the Event content type, part 1

 

Under “Reference type,” select “Session” as the specific content type to reference. Save the settings.

Configuring the Sessions field for the Event content type, part 2
Configuring the Sessions field for the Event content type, part 2

 

This is not yet the moment when the IEF module comes to the spotlight — at this point, it’s Drupal’s built-in functionality allowing you to reference other entities so you can add them by selecting them in the content editing form. This enables you to add referenced entities via select list or autocomplete, but without editing them — their own editing forms are only available on their own pages.

 

Step 3: Configuring the IEF widget

Here goes the key step in this setup that adds the power of IEF to the setup. At Structure > Event > Manage form display, find the Sessions field. Next to it, set the widget as:

Inline entity form – Complex

Adding the Inline Entity Form field widget
Adding the Inline Entity Form field widget

 

Click on the gear box to the right to configure the widget. Switch the toggle on in “Allow users to add existing nodes.” 

Don’t forget to save the result twice here: first by clicking “Update” in the widget and then hitting “Save” for the entire “Manage form display” tab.

Configuring the Inline Entity Form field widget in Drupal
Configuring the Inline Entity Form field widget in Drupal

 

You can also define in which order all fields should appear in your event editing form. Do it by drag-and-dropping the fields on the Manage Form Display tabs of both the Event and the Session content types.

 

Step 4: Testing the editing experience

Now you can test how it works on a real event. Go to Content > Add content > Event. Alongside the actual fields for the event, you’ll see the “Sessions” section on the editing form with two buttons: “Add new node” and “Add existing node.”

Checking the event form with an embedded form for sessions in Drupal
Checking the event form with an embedded form for sessions in Drupal

 

Let’s add a new node. You will see the fields for the session embedded with the event’s content editing form. Fill in all the information about the session, such as title, speaker, time, and room. Click the “Create node” button right below the session section and then save the entire event.

Creating a new session inside the event editing form in Drupal
Creating a new session inside the event editing form in Drupal

 

The event has been created. On its page, you can see a link to the session. 

The newly created Drupal event page with the link to the session
The newly created Drupal event page with the link to the session

 

And yes, it’s a real, full-fledged session entity that you can also find on the Content tab.

Checking that the event and the session are both listed on the Content tab
Checking that the event and the session are both listed on the Content tab

 

Step 5: (Optional but recommended) Adding editor safety

To avoid accidental global edits, consider adding help text to the Sessions field. It could look something like this:

“Changes to sessions affect all events where they are used.”
 

This could be added in Structure > Content types > Events > Manage fields for the Session field, and it will be displayed below the Sessions section in the Event editing form. Alternatively, you could create these help texts for every single field that a session is composed of.

Adding a help text for editors about the global character of changes they make to sessions
Adding a help text for editors about the global character of changes they make to sessions

 

You could also rely on the classic Drupal’s roles and permission system in People > Permissions and restrict who can edit the Session content and the Event content. 

Configuring Drupal user permissions to manage events and sessions
Configuring Drupal user permissions to manage events and sessions

 

Final thoughts

The Inline Entity Form module is ideal for sites with complex, interconnected content, such as higher ed, nonprofits, or any other content-rich Drupal projects. It is one of the great Drupal tools that make an editor’s life much easier. You might also find it useful to check out our earlier posts on bulk-updating content instantly across your entire website, simplifying multistep admin forms, enhancing your event section with great Drupal features, and many other gems within our insights section where you may find inspiration and valuable ideas.  

Alternatively, reach out and we’ll be happy to chat about how to make all your workflows as seamless as possible.

Last Updated

13 February, 2026

Reading time

7 mins