diff --git a/src/bundle/DependencyInjection/Configuration/Parser/SubitemsModule.php b/src/bundle/DependencyInjection/Configuration/Parser/Module/Subitems.php
similarity index 96%
rename from src/bundle/DependencyInjection/Configuration/Parser/SubitemsModule.php
rename to src/bundle/DependencyInjection/Configuration/Parser/Module/Subitems.php
index 4722e31c48..508e6fa603 100644
--- a/src/bundle/DependencyInjection/Configuration/Parser/SubitemsModule.php
+++ b/src/bundle/DependencyInjection/Configuration/Parser/Module/Subitems.php
@@ -6,7 +6,7 @@
  */
 declare(strict_types=1);
 
-namespace EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Configuration\Parser;
+namespace EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Configuration\Parser\Module;
 
 use eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\AbstractParser;
 use eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\SiteAccessAware\ContextualizerInterface;
@@ -24,7 +24,7 @@
  *              limit: 10
  * ```
  */
-class SubitemsModule extends AbstractParser
+class Subitems extends AbstractParser
 {
     /**
      * Adds semantic configuration definition.
diff --git a/src/bundle/DependencyInjection/Configuration/Parser/Module/UniversalDiscoveryWidget.php b/src/bundle/DependencyInjection/Configuration/Parser/Module/UniversalDiscoveryWidget.php
new file mode 100644
index 0000000000..85b7f750c7
--- /dev/null
+++ b/src/bundle/DependencyInjection/Configuration/Parser/Module/UniversalDiscoveryWidget.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * @copyright Copyright (C) eZ Systems AS. All rights reserved.
+ * @license For full copyright and license information view LICENSE file distributed with this source code.
+ */
+declare(strict_types=1);
+
+namespace EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Configuration\Parser\Module;
+
+use eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\AbstractParser;
+use eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\SiteAccessAware\ContextualizerInterface;
+use Symfony\Component\Config\Definition\Builder\NodeBuilder;
+
+/**
+ * Configuration parser for UDW module.
+ */
+class UniversalDiscoveryWidget extends AbstractParser
+{
+    /**
+     * Adds semantic configuration definition.
+     *
+     * @param NodeBuilder $nodeBuilder Node just under ezpublish.system.<siteaccess>
+     */
+    public function addSemanticConfig(NodeBuilder $nodeBuilder)
+    {
+        $nodeBuilder
+            ->arrayNode('universal_discovery_widget_module')
+                ->info('UDW module configuration')
+                ->children()
+                    ->scalarNode('default_location_id')->isRequired()->end()
+                ->end()
+            ->end();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function mapConfig(array &$scopeSettings, $currentScope, ContextualizerInterface $contextualizer): void
+    {
+        if (empty($scopeSettings['universal_discovery_widget_module'])) {
+            return;
+        }
+
+        $settings = $scopeSettings['universal_discovery_widget_module'];
+
+        if (!isset($settings['default_location_id']) || empty($settings['default_location_id'])) {
+            return;
+        }
+
+        $contextualizer->setContextualParameter(
+            'universal_discovery_widget_module.default_location_id',
+            $currentScope,
+            $settings['default_location_id']
+        );
+    }
+}
diff --git a/src/bundle/EzPlatformAdminUiBundle.php b/src/bundle/EzPlatformAdminUiBundle.php
index 610765adc2..063a979c6d 100644
--- a/src/bundle/EzPlatformAdminUiBundle.php
+++ b/src/bundle/EzPlatformAdminUiBundle.php
@@ -13,8 +13,8 @@
 use EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Compiler\UiConfigProviderPass;
 use EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Compiler\ValueObjectVisitorPass;
 use EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Configuration\Parser\LocationIds;
+use EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Configuration\Parser\Module;
 use EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Configuration\Parser\Pagination;
-use EzSystems\EzPlatformAdminUiBundle\DependencyInjection\Configuration\Parser\SubitemsModule;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\HttpKernel\Bundle\Bundle;
 
@@ -27,7 +27,8 @@ public function build(ContainerBuilder $container)
         /** @var EzPublishCoreExtension $core */
         $core = $container->getExtension('ezpublish');
         $core->addConfigParser(new LocationIds());
-        $core->addConfigParser(new SubitemsModule());
+        $core->addConfigParser(new Module\Subitems());
+        $core->addConfigParser(new Module\UniversalDiscoveryWidget());
         $core->addConfigParser(new Pagination());
         $core->addDefaultSettings(__DIR__ . '/Resources/config', ['ezplatform_default_settings.yml']);
 
diff --git a/src/bundle/Resources/config/ezplatform_default_settings.yml b/src/bundle/Resources/config/ezplatform_default_settings.yml
index 31b0c854a3..7525d85e87 100644
--- a/src/bundle/Resources/config/ezplatform_default_settings.yml
+++ b/src/bundle/Resources/config/ezplatform_default_settings.yml
@@ -17,3 +17,6 @@ parameters:
 
     # Subitems Module
     ezsettings.default.subitems_module.limit: 10
+
+    # Universal Discovery Widget Module
+    ezsettings.default.universal_discovery_widget_module.default_location_id: 1
diff --git a/src/bundle/Resources/config/services.yml b/src/bundle/Resources/config/services.yml
index db65e1bfdb..07316b8167 100644
--- a/src/bundle/Resources/config/services.yml
+++ b/src/bundle/Resources/config/services.yml
@@ -3,8 +3,6 @@ imports:
     - { resource: services/controllers.yml }
     - { resource: services/tabs.yml }
     - { resource: services/menu.yml }
-    - { resource: services/application_config.yml }
-    - { resource: services/type_extensions.yml }
     - { resource: services/pagination.yml }
     - { resource: services/ui_config.yml }
     - { resource: services/components.yml }
diff --git a/src/bundle/Resources/config/services/application_config.yml b/src/bundle/Resources/config/services/application_config.yml
deleted file mode 100644
index 66787b2b31..0000000000
--- a/src/bundle/Resources/config/services/application_config.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-services:
-    _defaults:
-        autowire: true
-        autoconfigure: true
-        public: true
-
-    EzSystems\EzPlatformAdminUiBundle\Templating\Twig\UiConfigExtension: ~
-    EzSystems\EzPlatformAdminUi\UI\Config\Aggregator: ~
diff --git a/src/bundle/Resources/config/services/type_extensions.yml b/src/bundle/Resources/config/services/type_extensions.yml
deleted file mode 100644
index a75730e093..0000000000
--- a/src/bundle/Resources/config/services/type_extensions.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
-    _defaults:
-        autowire: true
-        autoconfigure: true
-        public: true
diff --git a/src/bundle/Resources/config/services/ui_config.yml b/src/bundle/Resources/config/services/ui_config.yml
index e23fa14a17..a27632781e 100644
--- a/src/bundle/Resources/config/services/ui_config.yml
+++ b/src/bundle/Resources/config/services/ui_config.yml
@@ -4,6 +4,12 @@ services:
         autoconfigure: true
         public: false
 
+    EzSystems\EzPlatformAdminUiBundle\Templating\Twig\UiConfigExtension:
+        public: true
+
+    EzSystems\EzPlatformAdminUi\UI\Config\Aggregator:
+        public: true
+
     EzSystems\EzPlatformAdminUi\UI\Config\Provider\ContentTypeMappings:
         arguments:
             $locationMappings: '%ezplatform.multifile_upload.location.mappings%'
@@ -23,3 +29,7 @@ services:
     EzSystems\EzPlatformAdminUi\UI\Config\Provider\User:
         tags:
             - { name: ezplatform.admin_ui.config_provider, key: 'user' }
+
+    EzSystems\EzPlatformAdminUi\UI\Config\Provider\Module\UniversalDiscoveryWidget:
+        tags:
+            - { name: ezplatform.admin_ui.config_provider, key: 'universalDiscoveryWidget' }
diff --git a/src/bundle/Resources/public/js/alloyeditor/src/base/ez-embeddiscovercontent.js b/src/bundle/Resources/public/js/alloyeditor/src/base/ez-embeddiscovercontent.js
index 2901a2da55..77e6ef41ea 100644
--- a/src/bundle/Resources/public/js/alloyeditor/src/base/ez-embeddiscovercontent.js
+++ b/src/bundle/Resources/public/js/alloyeditor/src/base/ez-embeddiscovercontent.js
@@ -21,7 +21,7 @@ export default class EzEmbedDiscoverContentButton extends EzWidgetButton {
             confirmLabel: 'Select content',
             title: this.props.udwTitle,
             multiple: false,
-            startingLocationId: '1',
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             restInfo: {token, siteaccess},
             canSelectContent: selectable,
         }), udwContainer);
diff --git a/src/bundle/Resources/public/js/alloyeditor/src/buttons/ez-btn-linkedit.js b/src/bundle/Resources/public/js/alloyeditor/src/buttons/ez-btn-linkedit.js
index 30e465546c..5679b8c3c5 100644
--- a/src/bundle/Resources/public/js/alloyeditor/src/buttons/ez-btn-linkedit.js
+++ b/src/bundle/Resources/public/js/alloyeditor/src/buttons/ez-btn-linkedit.js
@@ -85,7 +85,7 @@ export default class EzBtnLinkEdit extends Component {
                 confirmLabel: 'Select content',
                 title: 'Select content',
                 multiple: false,
-                startingLocationId: '1',
+                startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
                 restInfo: {token, siteaccess},
             }), udwContainer);
         };
diff --git a/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js b/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js
index 74c180d40f..6f3c5a7749 100644
--- a/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js
+++ b/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js
@@ -19,6 +19,7 @@
             onCancel: closeUDW,
             confirmLabel: 'Add locations',
             title: 'Choose locations',
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             multiple: true,
             restInfo: {token, siteaccess}
         }), udwContainer);
diff --git a/src/bundle/Resources/public/js/scripts/admin.role_assignment.add.js b/src/bundle/Resources/public/js/scripts/admin.role_assignment.add.js
index 7200ad7220..91ff25d0d2 100644
--- a/src/bundle/Resources/public/js/scripts/admin.role_assignment.add.js
+++ b/src/bundle/Resources/public/js/scripts/admin.role_assignment.add.js
@@ -19,6 +19,7 @@
             onConfirm: selectSubtreeConfirm.bind(this),
             onCancel: closeUDW,
             multiple: true,
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             restInfo: {token, siteaccess}
         }), udwContainer);
     };
diff --git a/src/bundle/Resources/public/js/scripts/admin.section.list.js b/src/bundle/Resources/public/js/scripts/admin.section.list.js
index 61d0b18312..b4121f11ae 100644
--- a/src/bundle/Resources/public/js/scripts/admin.section.list.js
+++ b/src/bundle/Resources/public/js/scripts/admin.section.list.js
@@ -24,6 +24,7 @@
         ReactDOM.render(React.createElement(eZ.modules.UniversalDiscovery, {
             onConfirm: onConfirm.bind(this, form),
             onCancel,
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             restInfo: {token, siteaccess}
         }), udwContainer);
     };
diff --git a/src/bundle/Resources/public/js/scripts/admin.section.view.js b/src/bundle/Resources/public/js/scripts/admin.section.view.js
index e209df706e..e3dc86054f 100644
--- a/src/bundle/Resources/public/js/scripts/admin.section.view.js
+++ b/src/bundle/Resources/public/js/scripts/admin.section.view.js
@@ -21,6 +21,7 @@
         ReactDOM.render(React.createElement(eZ.modules.UniversalDiscovery, {
             onConfirm: onConfirm.bind(this, form),
             onCancel,
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             restInfo: {token, siteaccess}
         }), udwContainer);
     };
diff --git a/src/bundle/Resources/public/js/scripts/admin.trash.list.js b/src/bundle/Resources/public/js/scripts/admin.trash.list.js
index c63e098c4f..f53d8828bf 100644
--- a/src/bundle/Resources/public/js/scripts/admin.trash.list.js
+++ b/src/bundle/Resources/public/js/scripts/admin.trash.list.js
@@ -23,6 +23,7 @@
             onCancel,
             confirmLabel: 'Restore',
             title: 'Select a location to restore you content item(s)',
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             restInfo: {token, siteaccess}
         }), udwContainer);
     };
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js b/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js
index a6d855f947..e18fcff8a2 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ezobjectrelationlist.js
@@ -77,8 +77,9 @@
         const trashBtn = fieldContainer.querySelector('.ez-relations__table-action--remove');
         const isSingle = fieldContainer.classList.contains(CLASS_FIELD_SINGLE);
         const selectedItemsLimit = isSingle ? 1 : parseInt(relationsContainer.dataset.limit, 10);
-        const startingLocationId = relationsContainer.dataset.defaultLocation !== '0' ?
-            parseInt(relationsContainer.dataset.defaultLocation, 10) : 1;
+        const startingLocationId = relationsContainer.dataset.defaultLocation !== '0'
+            ? parseInt(relationsContainer.dataset.defaultLocation, 10)
+            : window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId;
         const allowedContentTypes = relationsContainer.dataset.allowedContentTypes.split(',').filter(item => item.length);
         const closeUDW = () => udwContainer.innerHTML = '';
         const renderRows = (items) => items.forEach((...args) => relationsContainer.insertAdjacentHTML('beforeend', renderRow(...args)));
diff --git a/src/bundle/Resources/public/js/scripts/udw/locations.tab.js b/src/bundle/Resources/public/js/scripts/udw/locations.tab.js
index 6a2d23bbe5..5f383ad2ba 100644
--- a/src/bundle/Resources/public/js/scripts/udw/locations.tab.js
+++ b/src/bundle/Resources/public/js/scripts/udw/locations.tab.js
@@ -24,6 +24,7 @@
             confirmLabel: 'Add location',
             title: 'Select location',
             multiple: false,
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             restInfo: {token, siteaccess}
         }), udwContainer);
     };
diff --git a/src/bundle/Resources/public/js/scripts/udw/swap.js b/src/bundle/Resources/public/js/scripts/udw/swap.js
index 7439fca015..2315b7f642 100644
--- a/src/bundle/Resources/public/js/scripts/udw/swap.js
+++ b/src/bundle/Resources/public/js/scripts/udw/swap.js
@@ -22,7 +22,7 @@
             confirmLabel: 'Swap location',
             title: 'Select location to be swapped with',
             multiple: false,
-            startingLocationId: parseInt(event.currentTarget.dataset.rootLocation, 10),
+            startingLocationId: window.eZ.adminUiConfig.universalDiscoveryWidget.startingLocationId,
             restInfo: {token, siteaccess}
         }), udwContainer);
     };
diff --git a/src/bundle/Resources/views/content/tab/locations/panel_swap.html.twig b/src/bundle/Resources/views/content/tab/locations/panel_swap.html.twig
index 586ed527d0..929c0defbc 100644
--- a/src/bundle/Resources/views/content/tab/locations/panel_swap.html.twig
+++ b/src/bundle/Resources/views/content/tab/locations/panel_swap.html.twig
@@ -11,7 +11,7 @@
     <tr>
         <td>
             {{ 'tab.locations.swap_with_another'|trans()|desc('Swap the content item at this location with another') }}
-            {{ form_widget(form.swap, {'attr': {'class': 'btn-outline-secondary btn--udw-swap ml-5', 'data-root-location': '1'}}) }}
+            {{ form_widget(form.swap, {'attr': {'class': 'btn-outline-secondary btn--udw-swap ml-5'}}) }}
             {{ form_widget(form.current_location) }}
             {{ form_widget(form.new_location) }}
         </td>
diff --git a/src/lib/Menu/ContentRightSidebarBuilder.php b/src/lib/Menu/ContentRightSidebarBuilder.php
index 45ac129530..ddc239b542 100644
--- a/src/lib/Menu/ContentRightSidebarBuilder.php
+++ b/src/lib/Menu/ContentRightSidebarBuilder.php
@@ -10,6 +10,7 @@
 use eZ\Publish\API\Repository\PermissionResolver;
 use eZ\Publish\API\Repository\Values\Content\Location;
 use eZ\Publish\API\Repository\Values\ContentType\ContentType;
+use eZ\Publish\Core\MVC\ConfigResolverInterface;
 use EzSystems\EzPlatformAdminUi\Menu\Event\ConfigureMenuEvent;
 use InvalidArgumentException;
 use JMS\TranslationBundle\Model\Message;
@@ -34,19 +35,25 @@ class ContentRightSidebarBuilder extends AbstractBuilder implements TranslationC
     /** @var PermissionResolver */
     private $permissionResolver;
 
+    /** @var ConfigResolverInterface */
+    private $configResolver;
+
     /**
-     * @param PermissionResolver $permissionResolver
      * @param MenuItemFactory $factory
      * @param EventDispatcherInterface $eventDispatcher
+     * @param PermissionResolver $permissionResolver
+     * @param ConfigResolverInterface $configResolver
      */
     public function __construct(
         MenuItemFactory $factory,
         EventDispatcherInterface $eventDispatcher,
-        PermissionResolver $permissionResolver
+        PermissionResolver $permissionResolver,
+        ConfigResolverInterface $configResolver
     ) {
         parent::__construct($factory, $eventDispatcher);
 
         $this->permissionResolver = $permissionResolver;
+        $this->configResolver = $configResolver;
     }
 
     /**
@@ -117,7 +124,9 @@ public function createStructure(array $options): ItemInterface
                     'extras' => ['icon' => 'move'],
                     'attributes' => [
                         'class' => 'btn--udw-move',
-                        'data-root-location' => 1,
+                        'data-root-location' => $this->configResolver->getParameter(
+                            'universal_discovery_widget_module.default_location_id'
+                        ),
                     ],
                 ]
             ),
@@ -127,7 +136,9 @@ public function createStructure(array $options): ItemInterface
                     'extras' => ['icon' => 'copy'],
                     'attributes' => [
                         'class' => 'btn--udw-copy',
-                        'data-root-location' => 1,
+                        'data-root-location' => $this->configResolver->getParameter(
+                            'universal_discovery_widget_module.default_location_id'
+                        ),
                     ],
                 ]
             ),
diff --git a/src/lib/Menu/LeftSidebarBuilder.php b/src/lib/Menu/LeftSidebarBuilder.php
index 9b29d6bf55..3964b05555 100644
--- a/src/lib/Menu/LeftSidebarBuilder.php
+++ b/src/lib/Menu/LeftSidebarBuilder.php
@@ -6,11 +6,13 @@
  */
 namespace EzSystems\EzPlatformAdminUi\Menu;
 
+use eZ\Publish\Core\MVC\ConfigResolverInterface;
 use EzSystems\EzPlatformAdminUi\Menu\Event\ConfigureMenuEvent;
 use InvalidArgumentException;
 use JMS\TranslationBundle\Model\Message;
 use JMS\TranslationBundle\Translation\TranslationContainerInterface;
 use Knp\Menu\ItemInterface;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
 /**
  * KnpMenuBundle Menu Builder service implementation for AdminUI left sidebar menu.
@@ -19,11 +21,29 @@
  */
 class LeftSidebarBuilder extends AbstractBuilder implements TranslationContainerInterface
 {
+    /** @var ConfigResolverInterface */
+    private $configResolver;
+
     /* Menu items */
     const ITEM__SEARCH = 'sidebar_left__search';
     const ITEM__BROWSE = 'sidebar_left__browse';
     const ITEM__TRASH = 'sidebar_left__trash';
 
+    /**
+     * @param MenuItemFactory $factory
+     * @param EventDispatcherInterface $eventDispatcher
+     * @param ConfigResolverInterface $configResolver
+     */
+    public function __construct(
+        MenuItemFactory $factory,
+        EventDispatcherInterface $eventDispatcher,
+        ConfigResolverInterface $configResolver
+    ) {
+        parent::__construct($factory, $eventDispatcher);
+
+        $this->configResolver = $configResolver;
+    }
+
     /**
      * @return string
      */
@@ -57,7 +77,9 @@ public function createStructure(array $options): ItemInterface
                     'extras' => ['icon' => 'browse'],
                     'attributes' => [
                         'class' => 'btn--udw-browse',
-                        'data-starting-location-id' => 1,
+                        'data-starting-location-id' => $this->configResolver->getParameter(
+                            'universal_discovery_widget_module.default_location_id'
+                        ),
                     ],
                 ]
             ),
diff --git a/src/lib/UI/Config/Provider/Module/UniversalDiscoveryWidget.php b/src/lib/UI/Config/Provider/Module/UniversalDiscoveryWidget.php
new file mode 100644
index 0000000000..0956d6039f
--- /dev/null
+++ b/src/lib/UI/Config/Provider/Module/UniversalDiscoveryWidget.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @copyright Copyright (C) eZ Systems AS. All rights reserved.
+ * @license For full copyright and license information view LICENSE file distributed with this source code.
+ */
+namespace EzSystems\EzPlatformAdminUi\UI\Config\Provider\Module;
+
+use eZ\Publish\Core\MVC\ConfigResolverInterface;
+use EzSystems\EzPlatformAdminUi\UI\Config\ProviderInterface;
+
+/**
+ * Provides information about current user with resolved profile picture.
+ */
+class UniversalDiscoveryWidget implements ProviderInterface
+{
+    /** @var ConfigResolverInterface */
+    private $configResolver;
+
+    /**
+     * @param ConfigResolverInterface $configResolver
+     */
+    public function __construct(
+        ConfigResolverInterface $configResolver
+    ) {
+        $this->configResolver = $configResolver;
+    }
+
+    /**
+     * @return array
+     */
+    public function getConfig(): array
+    {
+        /* config structure has to reflect UDW module's config structure */
+        return [
+            'startingLocationId' => $this->configResolver->getParameter(
+                'universal_discovery_widget_module.default_location_id'
+            ),
+        ];
+    }
+}