# Dynamically Generated Experience

## Overview

> info **PREREQUISITES**: 
>
> * This capability is available for self-hosted Sitefinity setup as of version Sitefinity 15.4.8625.
> * You use a decoupled Renderer application: ASP.NET Core or Next.js.
> * You must have an active Sitefinity AI subscription.\
>   For more information, see [Sitefinity AI](https://www.progress.com/documentation/sitefinity-cms/sitefinity-ai).

Dynamically Generated Experience (DGE) is an AI-powered capability in Sitefinity that creates personalized, intent-based content experiences in real time. DGE uses Large Language Models (LLMs) and retrieval-augmented generation (RAG) to dynamically assemble page sections based on visitor intent and context, rather than relying solely on predefined rules or static personalization.

### Available DGE widgets

DGE provides two out-of-the-box widgets:

* **Intent Box**   – Input field for visitor intent
* **Intent-Based Content**   – Presentation widget for generated content

These widgets enable editors to integrate dynamic experiences into existing pages alongside static content or build entire pages driven by AI-generated personalization.

### **Supported content types and formats**

The *Intent-driven content* widget supports multiple content types and presentation formats:

* Page title and summary
* Rich Text
* FAQ
* Hero
* Content items (cards and lists)

Content editors can combine any or all of these  content types / formats within a single DGE widget, providing flexible building blocks for a full page, specific section, or single dynamic component.

### **Content generation process**

DGE generates content in real time through the following process:

1. Analyzes visitor's expressed intent.
2. Uses retrieval-augmented generation (RAG) to retrieve relevant content from Sitefinity CMS.
3. Applies AI models to assemble appropriate copy.
4. Renders content using editor-defined layouts and presentation styles.

## Configure the Intent box widget

You use the *Intent box* widget to enable visitors to search for content on your website. Once you drop the widget on a page, a text box for visitor input is displayed.

### **After Intent is submitted...**

* *Stay on the same page* – The content is generated and displayed on the page where the visitor submitted the input. The *Intent-driven content* widget must be present on this page.
* *Redirect to page...* – The visitor is redirected to a different page, where the content is generated and displayed. The *Intent-driven content* widget must be present on the destination page.

### **Suggestions**

Suggestions are provided under the input field and users can click on them to generate the AI response.

To add a suggestion, perform the following:

1. Click the ![Add](https://www.progress.com/documentation/sitefinity-cms/assets/68f42a105be1c7bbb193b14eeea38af6/add-button.png "Add") (*Add*) button.
2. Enter your suggestion and press *Enter*.

/documentation/sitefinity-cms/next.js-search-box-widget#display-settings

### Display settings

In *Display setting* section, you can do the following:

* Configure the widget margins\
  In *Margins*, you can choose the margins between the text and the column where it is placed.\
  Choose from the predefined values of *None*, *Small*, *Medium*, or *Large*.
* Change the template\
  To change the template that the *Intent box* widget uses, select the new template in the *Intent box template* dropdown box.\
  You must first have created a custom template.\
  For more information, see [Next.js pages and templates](https://www.progress.com/documentation/sitefinity-cms/next.js-pages-and-templates) and [ASP.NET Core pages and templates](https://www.progress.com/documentation/sitefinity-cms/create-an-asp.net-core-page).

Save your changes.

/documentation/sitefinity-cms/next.js-search-box-widget#advanced-widget-settings

### Advanced widget settings 

To open the advanced settings, in the upper-right corner of the *Intent box* page, click ![Settings](https://www.progress.com/documentation/sitefinity-cms/assets/2ae42529ee099b52a9115aed604af606/image_639147082605606568.png) (*Advanced settings*).

* In *Label*, you can change the generic name with a specific one for this widget.\
  This custom name will be displayed in the page editor for your convenience.

* In *CSS class*, you can enter individual CSS class for the *Intent box* widget.

* In *Display on public site for…*, you can select which user role can see the widget content when viewing the public site.

* In the *Labels & Messages* section, you can do the following:

* In *Label*, you can create a header for the widget visible above the intent input field.

* In *Placeholder text*, you can enter some text to orientate the user for an initial input.\
  For example, you can enter `Ask for products, rates, or services...` \
  This text is only a guidance for the user and is not submitted as an intent input.

* In *Suggestions label*, you can put a header for the suggestions.

* In *Submit button tooltip*, enter the label for the button that the user clicks to submit the intent keyword.

Save your changes.

## Configure the Intent-driven content widget

You use the *Intent-driven content* widget to display the content generated by the DGE. Not all content is generated – some of the content displayed with the widget can be existing content from your website. For instance, if you use content items such as lists and cards.

### **Content setup**

* *Generated content contains...*\
  Specify the content structure by selecting the components to include (for example, Page title and summary, Rich Text, FAQ, and more). To do this, use the ![Add](https://www.progress.com/documentation/sitefinity-cms/assets/68f42a105be1c7bbb193b14eeea38af6/add-button.png "Add") (*Add*) button.\
  Each selected component is populated with content from your site, either contextually assembled or generated by the DGE. If a component is not relevant to the user’s intent, content for that component is not generated or displayed.
* \*When no intent is provided...\*When no intent is provided, you can either display nothing or generate content for a default intent. Using default intent allows you to generate content for specific users or always have content on your page.

### Display settings

In the *Display settings* section, you can do the following:

* Change the template\
  To change the template that the *Intent-drive content* widget uses, select the new template in the *Intent-drive content* *template* dropdown box.\
  You must first have created a custom template.\
  For more information, see [Next.js pages and templates](https://www.progress.com/documentation/sitefinity-cms/next.js-pages-and-templates) and [ASP.NET Core pages and templates](https://www.progress.com/documentation/sitefinity-cms/create-an-asp.net-core-page).
* Configure the widget margins\
  In *Margins*, you can choose the margins between the text and the column where it is placed.\
  Choose from the predefined values of *None*, *Small*, *Medium*, or *Large*.

Save your changes.

### Advanced widget settings

To open the advanced settings, in the upper-right corner of the *Intent-driven content* page, click ![Settings](https://www.progress.com/documentation/sitefinity-cms/assets/2ae42529ee099b52a9115aed604af606/image_639147082605781875.png) (*Advanced settings*).

* In *Label*, you can change the generic name with a specific one for this widget.\
  This custom name will be displayed in the page editor for your convenience.
* In *Display on public site for…*, you can select which user role can see the widget content when viewing the public site.
* In *Custom CSS classes* section, you can enter individual CSS class for the *Intent-driven content* widget and any selected component.
