diff --git a/data-handling.yml b/data-handling.yml
index 2699d72134807d7de762879c5de918be2041a4bc..a5f91a5aa29dddd0790533228450e1815fcdb538 100644
--- a/data-handling.yml
+++ b/data-handling.yml
@@ -17,18 +17,12 @@ CollectConfig:
     variables:
       - $CAE
 
-CollectDatabase:
+.CollectDatabase:
   variables:
     GIT_STRATEGY: none
   tags:
     - ansible
   cache: {}
-  only:
-    refs:
-      - triggers
-      - chat
-    variables:
-      - $CI_PIPELINE_SOURCE == 'chat' || $TRIGGERTASK == 'CollectDatabase'
   script:
     - ascr drupal-dump-db ${CI_PROJECT_PATH} ${PWD}/drupal.sql ${CHAT_INPUT}${TRIGGER_INPUT}
   artifacts:
@@ -37,18 +31,27 @@ CollectDatabase:
     paths:
       - drupal.sql
 
-CollectFiles:
-  variables:
-    GIT_STRATEGY: none
-  tags:
-    - ansible
-  cache: {}
+CollectDatabase:
+  extends: .CollectDatabase
   only:
     refs:
       - triggers
       - chat
     variables:
-      - $CI_PIPELINE_SOURCE == 'chat' || $TRIGGERTASK == 'CollectFiles'
+      - $CI_PIPELINE_SOURCE == 'chat' || $TRIGGERTASK == 'CollectDatabase'
+
+CollectDatabaseManual:
+  extends: .CollectDatabase
+  only:
+    variables:
+      - $TRIGGERMODE == 'manual' && $TRIGGERTASK == 'CollectDatabase'
+
+.CollectFiles:
+  variables:
+    GIT_STRATEGY: none
+  tags:
+    - ansible
+  cache: {}
   script:
     - ascr drupal-asset-archive ${CI_PROJECT_PATH} ${PWD}/${PROJECT_NAME}.zip ${CHAT_INPUT}${TRIGGER_INPUT}
   artifacts:
@@ -57,6 +60,21 @@ CollectFiles:
     paths:
       - files.zip
 
+CollectFiles:
+  extends: .CollectFiles
+  only:
+    refs:
+      - triggers
+      - chat
+    variables:
+      - $CI_PIPELINE_SOURCE == 'chat' || $TRIGGERTASK == 'CollectFiles'
+
+CollectFilesManual:
+  extends: .CollectFiles
+  only:
+    variables:
+      - $TRIGGERMODE == 'manual' && $TRIGGERTASK == 'CollectFiles'
+
 CopyDataToStage:
   variables:
     GIT_STRATEGY: none