diff --git a/arkindex/dataimport/api.py b/arkindex/dataimport/api.py
index 69f8a1943e4d40669711ea6eed8093ec18dbfd43..983fc64fc0d3737313caae6df234ba2d2ae561c6 100644
--- a/arkindex/dataimport/api.py
+++ b/arkindex/dataimport/api.py
@@ -153,10 +153,6 @@ class DataImportsList(ProcessACLMixin, ListAPIView):
     def get_queryset(self):
         filters = Q()
 
-        if 'with_workflow' in self.request.query_params:
-            with_workflow = self.request.query_params['with_workflow']
-            filters &= Q(workflow__isnull=bool(with_workflow and with_workflow.lower() in ('false', '0')))
-
         if 'corpus' in self.request.query_params:
             corpus_id = self.request.query_params['corpus']
             try:
@@ -166,14 +162,23 @@ class DataImportsList(ProcessACLMixin, ListAPIView):
             # No supplementary validation is required on the corpus ID filter
             filters &= Q(corpus=corpus_id)
 
+        # Default import_mode variable for compatibility later
+        import_mode = None
         if 'mode' in self.request.query_params:
             try:
-                filters &= Q(mode=DataImportMode(self.request.query_params['mode']))
+                import_mode = DataImportMode(self.request.query_params['mode'])
+                filters &= Q(mode=import_mode)
             except ValueError:
                 raise ValidationError({
                     'mode': ["Mode '{}' does not exist".format(self.request.query_params['mode'])]
                 })
 
+        # When listing template processes, the configuration filters makes no sense
+        if import_mode != DataImportMode.Template:
+            if 'with_workflow' in self.request.query_params:
+                with_workflow = self.request.query_params['with_workflow']
+                filters &= Q(workflow__isnull=bool(with_workflow and with_workflow.lower() in ('false', '0')))
+
         if 'created' in self.request.query_params:
             created = self.request.query_params['created']
             creator_filter = Q(creator_id=self.request.user.id)
diff --git a/arkindex/dataimport/tests/test_templates.py b/arkindex/dataimport/tests/test_templates.py
index d926cf68cfd03656796b6a890f67baf63e037aee..f544b4fea2a3dd8a5c5a069f6fc542f15992d02a 100644
--- a/arkindex/dataimport/tests/test_templates.py
+++ b/arkindex/dataimport/tests/test_templates.py
@@ -299,3 +299,16 @@ class TestTemplates(FixtureAPITestCase):
         # Check that every new worker_run is the same as one of the template's
         self.assertTrue(self.template.worker_runs.filter(version=parent_run.version).exists())
         self.assertTrue(self.template.worker_runs.filter(version=child_run.version).exists())
+
+    def test_list_templates_ignores_configuration_filter(self):
+        self.client.force_login(self.user)
+        with self.assertNumQueries(7):
+            response = self.client.get(
+                reverse('api:import-list'),
+                data={"mode": 'template', "with_workflow": True},
+                content_type='application/json',
+            )
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+        # The 'with_workflow' filter should be ignored and some templates should be returned
+        # If it wasn't, no template are returned because none are configured
+        self.assertTrue(len(response.json()) > 0)