diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 322b539d13294273cd692ba17c820508100196dd_LmdpdGxhYi1jaS55bWw=..1a58de7ee56e144a125193cb8d5bd0acce8522e2_LmdpdGxhYi1jaS55bWw= 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -135,8 +135,8 @@
   - '/gitlab-ci-config/gitlab-com.yml'
   - '/gitlab-ci-config/dev-gitlab-org.yml'
 
-notify:slack-fail:
+.notify:
   before_script:
     - apk update && apk add git curl bash
   image: "alpine"
   stage: notification_fail
@@ -139,7 +139,11 @@
   before_script:
     - apk update && apk add git curl bash
   image: "alpine"
   stage: notification_fail
+
+notify:slack-fail:
+  extends:
+    - .notify
   script:
     - ./support/notify_slack.sh "#g_distribution" "Build on \`$CI_COMMIT_REF_NAME\` failed! See <https://dev.gitlab.org/gitlab/omnibus-gitlab/pipelines/"$CI_PIPELINE_ID">"
   when: on_failure
@@ -151,3 +155,15 @@
   tags:
   - promotion
   dependencies: []
+
+notify:slack-fail:scheduled-master:
+  extends:
+    - .notify
+  script:
+    - ./support/notify_slack.sh "#qa-master" "☠️ Scheduled omnibus-build against master failed! ☠️ See $CI_PIPELINE_URL (triggered from $TOP_UPSTREAM_SOURCE_JOB)"
+  only:
+    refs:
+      - pipelines@gitlab-org/build/omnibus-gitlab-mirror
+    variables:
+      - $TOP_UPSTREAM_SOURCE_JOB && $TOP_UPSTREAM_SOURCE_REF == 'master'
+  when: on_failure
diff --git a/lib/gitlab/build/qa_trigger.rb b/lib/gitlab/build/qa_trigger.rb
index 322b539d13294273cd692ba17c820508100196dd_bGliL2dpdGxhYi9idWlsZC9xYV90cmlnZ2VyLnJi..1a58de7ee56e144a125193cb8d5bd0acce8522e2_bGliL2dpdGxhYi9idWlsZC9xYV90cmlnZ2VyLnJi 100644
--- a/lib/gitlab/build/qa_trigger.rb
+++ b/lib/gitlab/build/qa_trigger.rb
@@ -20,7 +20,8 @@
         "variables[TRIGGER_SOURCE]" => Gitlab::Util.get_env('CI_JOB_URL'),
         "variables[TOP_UPSTREAM_SOURCE_PROJECT]" => Gitlab::Util.get_env('TOP_UPSTREAM_SOURCE_PROJECT'),
         "variables[TOP_UPSTREAM_SOURCE_JOB]" => Gitlab::Util.get_env('TOP_UPSTREAM_SOURCE_JOB'),
-        "variables[TOP_UPSTREAM_SOURCE_SHA]" => Gitlab::Util.get_env('TOP_UPSTREAM_SOURCE_SHA')
+        "variables[TOP_UPSTREAM_SOURCE_SHA]" => Gitlab::Util.get_env('TOP_UPSTREAM_SOURCE_SHA'),
+        'variables[TOP_UPSTREAM_SOURCE_REF]' => Gitlab::Util.get_env('TOP_UPSTREAM_SOURCE_REF')
       }
     end
 
diff --git a/spec/gitlab/tasks/qa_spec.rb b/spec/gitlab/tasks/qa_spec.rb
index 322b539d13294273cd692ba17c820508100196dd_c3BlYy9naXRsYWIvdGFza3MvcWFfc3BlYy5yYg==..1a58de7ee56e144a125193cb8d5bd0acce8522e2_c3BlYy9naXRsYWIvdGFza3MvcWFfc3BlYy5yYg== 100644
--- a/spec/gitlab/tasks/qa_spec.rb
+++ b/spec/gitlab/tasks/qa_spec.rb
@@ -126,6 +126,7 @@
       allow(ENV).to receive(:[]).with('TOP_UPSTREAM_SOURCE_PROJECT').and_return("https://gitlab.com/gitlab-org/gitlab-foss")
       allow(ENV).to receive(:[]).with('TOP_UPSTREAM_SOURCE_JOB').and_return("https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/67890")
       allow(ENV).to receive(:[]).with('TOP_UPSTREAM_SOURCE_SHA').and_return("abc123")
+      allow(ENV).to receive(:[]).with('TOP_UPSTREAM_SOURCE_REF').and_return("master")
       allow(DockerOperations).to receive(:build).and_return(true)
       allow(Build::QA).to receive(:get_gitlab_repo).and_return("/tmp/gitlab.1234/qa")
       allow(Build::GitlabImage).to receive(:gitlab_registry_image_address).and_return("registry.gitlab.com/gitlab-ce:latest")
@@ -145,7 +146,8 @@
         "variables[TRIGGER_SOURCE]" => "https://gitlab.com/gitlab-org/omnibus-gitlab/-/jobs/12345",
         "variables[TOP_UPSTREAM_SOURCE_PROJECT]" => "https://gitlab.com/gitlab-org/gitlab-foss",
         "variables[TOP_UPSTREAM_SOURCE_JOB]" => "https://gitlab.com/gitlab-org/gitlab-foss/-/jobs/67890",
-        "variables[TOP_UPSTREAM_SOURCE_SHA]" => "abc123"
+        "variables[TOP_UPSTREAM_SOURCE_SHA]" => "abc123",
+        "variables[TOP_UPSTREAM_SOURCE_REF]" => "master"
       }
       allow_any_instance_of(Build::QATrigger).to receive(:invoke!).and_call_original
       allow_any_instance_of(Build::QATrigger).to receive(:get_projct_path).and_return("gitlab-org/gitlab-qa")