diff --git a/apps/web/src/app/workspaces/components/capability-request/components/files/files.component.html b/apps/web/src/app/workspaces/components/capability-request/components/files/files.component.html
index b85825a9e99bc0c532e61ee9cf5391131d21f96c..e424fdf316e9ea2fa0ecb85d90a5bad124d5d9f9 100644
--- a/apps/web/src/app/workspaces/components/capability-request/components/files/files.component.html
+++ b/apps/web/src/app/workspaces/components/capability-request/components/files/files.component.html
@@ -8,4 +8,4 @@
   </div>
 </div>
 
-<ng-template #noFilesMessage> <em>No files exist for this request.</em> </ng-template>
+<ng-template #noFilesMessage> <em>No files are attached to this request.</em> </ng-template>
diff --git a/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.html b/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.html
index 03a2fed684a363ba5c13d8c0d8de98d60f99b335..0d39260ea4bff17939eac34f255404a2c139db5e 100644
--- a/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.html
+++ b/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.html
@@ -1,9 +1,13 @@
 <div id="parameters-container" class="container-fluid rounded-top rounded-3 p-3">
-  <div class="row my-2" *ngFor="let parameter of capabilityRequest.parameters | keyvalue">
-    <div class="col">
-      <span class="rounded-pill px-2 py-1 argument-key">{{ parameter.key }}</span>
-      <span class="px-1"> = </span>
-      <span class="rounded-pill px-2 py-1 argument-value">{{ parameter.value }}</span>
+  <div *ngIf="isEmpty(capabilityRequest.parameters) === false; else noParametersMessage">
+    <div class="row my-2" *ngFor="let parameter of capabilityRequest.parameters | keyvalue">
+      <div class="col">
+        <span class="rounded-pill px-2 py-1 argument-key">{{ parameter.key }}</span>
+        <span class="px-1"> = </span>
+        <span class="rounded-pill px-2 py-1 argument-value">{{ parameter.value }}</span>
+      </div>
     </div>
   </div>
 </div>
+
+<ng-template #noParametersMessage> <em>This request has no parameters.</em> </ng-template>
diff --git a/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.ts b/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.ts
index 855cf97d98b49d314deaaf932e9e76bd0796eb31..dd780717582c0af3d591575cf751e54e5f278874 100644
--- a/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.ts
+++ b/apps/web/src/app/workspaces/components/capability-request/components/parameters/parameters.component.ts
@@ -1,5 +1,6 @@
 import { Component, Input, OnInit } from "@angular/core";
 import { CapabilityRequest } from "../../../../model/capability-request";
+import { JsonObject } from "@angular/compiler-cli/ngcc/src/packages/entry_point";
 
 @Component({
   selector: "app-parameters",
@@ -12,4 +13,20 @@ export class ParametersComponent implements OnInit {
   constructor() {}
 
   ngOnInit(): void {}
+
+  /**
+   * Check if JsonObject is empty
+   * Taken from: https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object
+   * @param obj  Object to be checked
+   * @return boolean  true if object is empty; else false
+   */
+  isEmpty(obj: JsonObject): boolean {
+    for (const prop in obj) {
+      if (obj.hasOwnProperty(prop)) {
+        return false;
+      }
+    }
+
+    return true;
+  }
 }
diff --git a/apps/web/src/app/workspaces/workspaces.component.html b/apps/web/src/app/workspaces/workspaces.component.html
index 29b5c9d9d711ec71b05e6235e7a425071401c51f..71cfca09fc1fd5fb0285b9dc0c262978c5bc8e25 100644
--- a/apps/web/src/app/workspaces/workspaces.component.html
+++ b/apps/web/src/app/workspaces/workspaces.component.html
@@ -31,6 +31,16 @@
         Launch null at NMT
       </button>
     </div>
+    <div class="d-flex px-2">
+      <button
+        type="button"
+        id="launchNullDagCapability"
+        class="btn btn-secondary btn-lg"
+        (click)="nullDagButtonOnClick()"
+      >
+        Launch multi-stage null capability
+      </button>
+    </div>
   </div>
 </div>
 <div class="container border rounded py-3 my-3">
diff --git a/apps/web/src/app/workspaces/workspaces.component.ts b/apps/web/src/app/workspaces/workspaces.component.ts
index 5e9d5d4686f3e7b7ac75469bd2d5d1270fe42b45..3b995cc0812516c77ec5727f9ceae9f8c8806cb5 100644
--- a/apps/web/src/app/workspaces/workspaces.component.ts
+++ b/apps/web/src/app/workspaces/workspaces.component.ts
@@ -1,9 +1,7 @@
 import { Component, OnInit } from "@angular/core";
 import { CapabilityLauncherService } from "./services/capability-launcher.service";
 import { CapabilityRequest } from "./model/capability-request";
-import { CapabilityExecution } from "./model/capability-execution";
 import { JsonObject } from "@angular/compiler-cli/ngcc/src/packages/entry_point";
-import { ActivatedRoute, Router } from "@angular/router";
 import { CapabilityRequestService } from "./services/capability-request.service";
 
 @Component({
@@ -51,6 +49,13 @@ export class WorkspacesComponent implements OnInit {
     this.launchCapability("null", { arguments: "-g", remote: true });
   }
 
+  /**
+   * OnClick method that creates a capability request for the null_dag capability
+   */
+  nullDagButtonOnClick(): void {
+    this.launchCapability("null_dag", {});
+  }
+
   /**
    * OnClick method that creates a capability request a given capability and submits it with the standard parameters:
    * - Product locator
diff --git a/schema/versions/c717f781828d_add_null_dag_capability.py b/schema/versions/c717f781828d_add_null_dag_capability.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc9c8907736d6ab4cbe3692a9fbc5e9efc830f9b
--- /dev/null
+++ b/schema/versions/c717f781828d_add_null_dag_capability.py
@@ -0,0 +1,25 @@
+"""add null_dag capability
+
+Revision ID: c717f781828d
+Revises: 990c5cd70082
+Create Date: 2021-09-15 14:58:45.780793
+
+"""
+from alembic import op
+
+# revision identifiers, used by Alembic.
+revision = "c717f781828d"
+down_revision = "990c5cd70082"
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    op.execute(
+        "INSERT INTO capabilities (capability_name, capability_steps, max_jobs) VALUES "
+        "('null_dag', 'prepare-and-run-workflow null_dag\nawait-workflow', 2)"
+    )
+
+
+def downgrade():
+    op.execute("DELETE FROM capabilities WHERE capability_name = 'null_dag'")