diff --git a/atdb/taskdatabase/migrations/0042_task_is_summary.py b/atdb/taskdatabase/migrations/0042_task_is_summary.py
new file mode 100644
index 0000000000000000000000000000000000000000..eae714e842c607213f3347d6e4666863706a668d
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0042_task_is_summary.py
@@ -0,0 +1,18 @@
+# Generated by Django 5.0 on 2024-02-20 12:28
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0041_alter_task_activity'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='task',
+            name='is_summary',
+            field=models.BooleanField(default=False),
+        ),
+    ]
diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index 51f56a7fb0f12e13223ad6f62bad815ad9c59a73..ce55099efc62ec7cc6ed3ee95538cfb73fef0da2 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -88,7 +88,6 @@ def associate_task_with_activity(task):
 
             activity = Activity(sas_id=task.sas_id,
                                 project=task.project,
-                                workflow_id = task.workflow.id,
                                 filter=task.filter)
             activity.save()
 
@@ -140,6 +139,7 @@ class Task(models.Model):
 
     # Task control properties
     task_type = models.CharField(max_length=20, default="regular")
+    is_summary = models.BooleanField(default=False)
     filter = models.CharField(max_length=30, blank=True, null=True)
     environment = models.CharField(max_length=255, blank=True, null=True)
     new_status = models.CharField(max_length=50, default="defining", null=True)
@@ -202,6 +202,11 @@ class Task(models.Model):
             tasks_for_this_sasid = Task.objects.filter(sas_id=self.sas_id)
             self.calculated_qualities = qualities.calculate_qualities(self, tasks_for_this_sasid, quality_thresholds)
 
+        # nv:20feb2024, check if this task is a summary task
+        if (self.status != State.PROCESSED.value) & (self.new_status == State.PROCESSED.value):
+            #task.is_summary = algorithms.check_if_summary(self)
+            pass
+
         # make sure that every task has an activity (also for backward compatibility)
         associate_task_with_activity(self)
 
diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py
index 3adcc01c29f84f437b30aa2a4de0156ad8fdb6ca..f80c4eb13fcfc3e9c0d7ddf93963f69114b2da89 100644
--- a/atdb/taskdatabase/serializers.py
+++ b/atdb/taskdatabase/serializers.py
@@ -97,7 +97,7 @@ class TaskReadSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Task
-        fields = ['id','task_type','creationTime','filter',
+        fields = ['id','task_type','is_summary','creationTime','filter',
                   'predecessor','predecessor_status','successors',
                   'joined_input_tasks','joined_output_task','joined_status',
                   'project','sas_id','priority','purge_policy','cleanup_policy','resume',
diff --git a/atdb/taskdatabase/services/activities_handler.py b/atdb/taskdatabase/services/activities_handler.py
index 1f215340685bc9cf2fee19fa673ba05b3b07da93..086542ddf6f35b4217ad3585d8533ab640895bf8 100644
--- a/atdb/taskdatabase/services/activities_handler.py
+++ b/atdb/taskdatabase/services/activities_handler.py
@@ -143,6 +143,10 @@ def update_activity(task):
         activity.filter = task.filter
         activity.save()
 
-    if activity.workflow_id != task.workflow.id:
-        activity.workflow_id = task.workflow.id
-        activity.save()
\ No newline at end of file
+    try:
+        if activity.workflow_id != task.workflow.id:
+            activity.workflow_id = task.workflow.id
+            activity.save()
+    except:
+        # continue, workflow is not initially needed
+        logger.error(f'no workflow found for this task')
\ No newline at end of file
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index d9a8482a724472f6636c0183ba9522edad85f4a0..fc4fe7f33da131e313a1b83810dfa786f4e32ff6 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -31,7 +31,7 @@
             {% include 'taskdatabase/pagination.html' %}
         </div>
     </div>
-    <p class="footer"> Version 19 Feb 2024
+    <p class="footer"> Version 20 Feb 2024
 </div>
 
 {% include 'taskdatabase/refresh.html' %}
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index eb462904c64a075019df95d1337a09913418f55d..0ff77a34177461537ab5f09977cd1e8685835af8 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -57,6 +57,7 @@ class TaskFilter(filters.FilterSet):
 
         fields = {
             'task_type': ['exact', 'icontains', 'in'],
+            'is_summary': ['exact'],
             'creationTime': ['icontains'],
             'filter': ['exact', 'icontains'],
             'workflow__id': ['exact', 'icontains'],