diff --git a/src/backoffice/views/mixins.py b/src/backoffice/views/mixins.py
index 20bd7303b50c41cbdbcb4b2fa3af4ae9807a7b59..4fae86fa37db9c33a4e01433dc8794ad3dda9f60 100644
--- a/src/backoffice/views/mixins.py
+++ b/src/backoffice/views/mixins.py
@@ -31,10 +31,14 @@ class ConferenceRequiredMixin(PermissionRequiredMixin):
             if conference_id is None:
                 try:
                     self._conference = Conference.objects.filter(is_public=True).first()
-                    if self._conference is not None:
-                        self.request.session['conference'] = self._conference.slug
                 except Conference.DoesNotExist:
-                    return None
+                    try:
+                        if self.request.user.is_staff:
+                            self._conference = Conference.objects.first()
+                    except Conference.DoesNotExist:
+                        pass
+                if self._conference is not None:
+                    self.request.session['conference'] = self._conference.slug
             else:
                 try:
                     self._conference = Conference.objects.accessible_by_user(self.request.user).get(slug=conference_id)
@@ -74,7 +78,7 @@ class ConferenceRequiredMixin(PermissionRequiredMixin):
 
     def dispatch(self, request, *args, **kwargs):
         if self.require_conference and self.conference is None:
-            return redirect('conference_selection')
+            return redirect('backoffice:conference_selection')
         if not self.has_permission():
             raise PermissionDenied('Insufficient privileges.')
         return super().dispatch(request, *args, **kwargs)