diff --git a/Jenkinsfile b/Jenkinsfile
index b11447de08cd0645e6f427af44fff71823e7e53d..f3abe7d02f4e2a2a245216bafdd9c27dd07a0865 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,3 +1,28 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+@Library('ozgcloud-libs') _
+
 pipeline {
     agent {
         node {
@@ -6,6 +31,7 @@ pipeline {
     }
 
     environment {
+        PIPELINE_NAME = "Code-SH: administration"
         RELEASE_REGEX = /\d+.\d+.\d+/
         SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/
         FAILED_STAGE = ""
@@ -177,6 +203,7 @@ pipeline {
          stage ('Deploy SBOM to DependencyTrack') {
             steps {
                 script {
+                    FAILED_STAGE = env.STAGE_NAME
                     IMAGE_TAG_WO_COMMIT = buildVersionNameWithoutCommidId()
 
                     configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
@@ -198,9 +225,7 @@ pipeline {
         }
         failure {
             script {
-                if (isMainBranch() || isReleaseBranch()) {
-                    sendFailureMessage()
-                }
+                sendMatrixMessage.sendFailureMessage(FAILED_STAGE)
             }
         }
     }
@@ -266,34 +291,6 @@ String getBuildProfile() {
 }
 
 
-Void sendFailureMessage() {
-    def room = getRoom()
-    def data = getFailureData()
-
-    sh "curl -XPOST -H 'authorization: Bearer ${getElementAccessToken()}' -d '${data}' https://matrix.ozg-sh.de/_matrix/client/v3/rooms/$room/send/m.room.message"
-}
-
-String getElementAccessToken() {
-    withCredentials([string(credentialsId: 'element-login-json', variable: 'LOGIN_JSON')]) {
-        return readJSON ( text: sh (script: '''curl -XPOST -d \"$LOGIN_JSON\" https://matrix.ozg-sh.de/_matrix/client/v3/login''', returnStdout: true)).access_token
-    }
-}
-
-String getFailureData() {
-    return  """{"msgtype":"m.text", \
-                    "body":"Administration: Build Failed. Stage: ${FAILED_STAGE} Build-ID: ${env.BUILD_NUMBER}", \
-                    "format": "org.matrix.custom.html", \
-                    "formatted_body":"Administration: Build Failed. Stage: ${FAILED_STAGE} Build-ID: ${env.BUILD_NUMBER}"}"""
-}
-
-String getRoom() {
-    if (isReleaseBranch()) {
-        return "!oWZpUGTFsxkJIYNfYg:matrix.ozg-sh.de"
-    } else {
-        return "!iQPAvQIiRwRpNOszjw:matrix.ozg-sh.de"
-    }
-}
-
 Void configureGit() {
     def email = "jenkins@ozg-sh.de"
     def name = "jenkins"