Skip to content

Rückfragen-Notifikationen & Teams-Webhooks

ConnectWorkflow bietet für Rückfragen (Inquiries) ein automatisiertes Benachrichtigungssystem, um Bearbeiter über neue Fragen und Antworten zeitnah zu informieren. Benachrichtigungen können parallel per E-Mail sowie über Microsoft Teams (mittels Webhook und Power Automate) zugestellt werden.

Ablauf und Funktionsweise

  1. Rückfrage stellen: Ein Bearbeiter öffnet einen Vorgang im Portal und wählt die Aktion Rückfrage (action = INQUIRY), wählt die gewünschte Zielperson aus und formuliert die Frage.
  2. Automatische Empfängerermittlung: ConnectWorkflow ermittelt die E-Mail-Adresse / den User Principal Name (UPN) des Zielbenutzers automatisch aus den microtech-Benutzerstammdaten (tblUsers.fldEMail1).
  3. Parallele Zustellung:
    • E-Mail: Wird automatisch über den internen Mail-Service an die Zielperson versendet.
    • Teams-Webhook: Sofern im Workflow-Blueprint auf Root-Ebene inquiryWebhookUrl hinterlegt ist, sendet die Engine einen HTTP-POST-Request mit einer strukturierten JSON-Payload an diesen Webhook.
  4. Rückfrage beantworten: Bei Beantwortung der Rückfrage (action = INQUIRY_ANSWERED) wird der ursprüngliche Bearbeiter auf demselben Weg über die Antwort benachrichtigt.

Einrichtung in Microsoft Power Automate

Diese Anleitung beschreibt die Erstellung eines Power-Automate-Flows, der die HTTP-Anforderung von ConnectWorkflow entgegennimmt und eine persönliche Microsoft-Teams-Nachricht als Flow-Bot an den im Feld recipient angegebenen Benutzer sendet.

Voraussetzungen

  • Zugriff auf Microsoft Power Automate und Microsoft Teams
  • Eine gültige Teams-Verbindung für den Flow-Besitzer
  • Die Teams-App Workflows muss im Microsoft Teams Admin Center für Benutzer freigegeben sein
  • Für den HTTP-Request-Trigger in Power Automate wird in der Regel eine Power Automate Premium-Lizenz (oder ein entsprechender Flow-Plan) für den Flow-Besitzer benötigt
  • Der Empfänger muss über seine E-Mail-Adresse bzw. seinen User Principal Name (UPN) in Microsoft 365 erreichbar sein

Schritt 1: Flow anlegen

  1. Öffnen Sie Microsoft Power Automate.
  2. Wählen Sie links Meine Flows aus.
  3. Klicken Sie auf Neuer Flow > Automatisierter Cloud-Flow.
  4. Vergeben Sie einen Namen (z. B. ConnectWorkflow Rückfragen Teams-Benachrichtigung).
  5. Suchen Sie nach dem Trigger Beim Empfang einer HTTP-Anforderung (Request Connector) und wählen Sie diesen aus.

Schritt 2: HTTP-Trigger konfigurieren

  1. Wählen Sie bei Wer kann den Flow auslösen? den Wert Jeder (oder konfigurieren Sie bei Bedarf OAuth-Authentifizierung).

Sicherheitshinweis zur Webhook-URL

Bei der Einstellung Jeder kann jeder, der die vollständige Webhook-URL kennt, den Flow auslösen. Die generierte URL muss daher vertraulich wie ein Kennwort behandelt und ausschließlich sicher im Blueprint hinterlegt werden.

  1. Klicken Sie auf Beispielpayload zum Generieren eines Schemas verwenden und fügen Sie folgende Beispiel-Payload ein:
json
{
  "eventId": "e1c278f6-8242-4982-82c6-36856bd8eb27",
  "recipient": "max.mustermann@firma.de",
  "title": "ConnectCloud Rückfrage: ER-MBCOM (RE-2026-001)",
  "message": "Rückfrage von anna.meier@firma.de:\n\nBitte die Kostenstelle für Position 2 prüfen.",
  "url": "https://portal.connectcloud.de/tasks/e1c278f6-8242-4982-82c6-36856bd8eb27?tenant=MANDANT1"
}

Power Automate generiert daraus automatisch folgendes JSON-Schema:

json
{
  "type": "object",
  "properties": {
    "eventId": {
      "type": "string"
    },
    "recipient": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "url": {
      "type": "string"
    }
  }
}

Kontrollansicht des Triggers (Codeansicht)

In der schreibgeschützten Codeansicht des Triggers sollte folgende Definition vorliegen:

json
{
  "type": "Request",
  "kind": "Http",
  "inputs": {
    "triggerAuthenticationType": "All",
    "schema": {
      "type": "object",
      "properties": {
        "eventId": { "type": "string" },
        "recipient": { "type": "string" },
        "title": { "type": "string" },
        "message": { "type": "string" },
        "url": { "type": "string" }
      }
    }
  },
  "metadata": {}
}

Schritt 3: Teams-Aktion hinzufügen

  1. Klicken Sie unterhalb des HTTP-Triggers auf + (Neuer Schritt).
  2. Suchen Sie nach der Aktion Nachricht in einem Chat oder Kanal veröffentlichen des Connectors Microsoft Teams.
  3. Stellen Sie bei Bedarf die Microsoft-Teams-Verbindung für den Flow-Besitzer her.
  4. Konfigurieren Sie die Aktion mit folgenden Parametern:
EinstellungWert
Veröffentlichen alsFlow-Bot
Veröffentlichen inMit einem Flow-Bot chatten
RecipientDynamischer Inhalt: recipient (aus dem HTTP-Trigger)

Dynamischer Empfänger

Der Empfänger muss als dynamischer Baustein (recipient) aus dem vorherigen HTTP-Trigger ausgewählt werden. Tragen Sie hier keinen festen statischen Text ein, damit die Nachricht dynamisch an die jeweilige Zielperson der Rückfrage zugestellt wird.

Schritt 4: Nachricht formatieren

Klicken Sie im Feld Meldung auf das Formelsymbol (fx / Ausdruck) und fügen Sie folgenden Ausdruck ein:

text
concat(
  '<b>',
  triggerBody()?['title'],
  '</b><br><br>',
  triggerBody()?['message'],
  '<br><br><a href="',
  triggerBody()?['url'],
  '">Vorgang im Portal öffnen</a>'
)

Dieser Ausdruck generiert eine übersichtliche Teams-Nachricht:

ConnectCloud Rückfrage: ER-MBCOM (RE-2026-001)

Rückfrage von anna.meier@firma.de:

Bitte die Kostenstelle für Position 2 prüfen.

Vorgang im Portal öffnen

Kontrollansicht der Teams-Aktion (Codeansicht)

Die Codeansicht der Teams-Aktion stellt sich wie folgt dar:

json
{
  "type": "OpenApiConnection",
  "inputs": {
    "parameters": {
      "poster": "Flow bot",
      "location": "Chat with Flow bot",
      "body/recipient": "@triggerBody()?['recipient']",
      "body/messageBody": "<p class=\"editor-paragraph\">@{concat('<b>', triggerBody()?['title'], '</b><br><br>', triggerBody()?['message'], '<br><br><a href=\"', triggerBody()?['url'], '\">Vorgang im Portal öffnen</a>')}</p>"
    },
    "host": {
      "apiId": "/providers/Microsoft.PowerApps/apis/shared_teams",
      "connection": "shared_teams",
      "operationId": "PostMessageToConversation"
    }
  },
  "runAfter": {}
}

Schritt 5: Speichern und Webhook-URL kopieren

  1. Speichern Sie den Flow oben rechts über Speichern.
  2. Öffnen Sie den ersten Schritt (Beim Empfang einer HTTP-Anforderung) erneut.
  3. Kopieren Sie die nun generierte HTTP-POST-URL.

SAS-Key erneuern

Sollte eine Webhook-URL versehentlich öffentlich geworden sein, kann der SAS-Key in Power Automate in den Triggereinstellungen regeneriert oder der Flow dupliziert und neu angelegt werden.

Anpassung im Workflow-Blueprint

Damit ConnectWorkflow die Webhook-Benachrichtigungen für Rückfragen versendet, wird der Blueprint angepasst.

1. inquiryWebhookUrl auf Root-Ebene hinterlegen

Die Webhook-URL wird als Eigenschaft inquiryWebhookUrl auf der obersten Ebene (Kopfebene) des Blueprints definiert. Sie gilt für alle Rückfragen und Rückfrage-Antworten innerhalb dieses Workflows.

2. allowInquiry: true auf Schritt-Ebene aktivieren

Damit Bearbeiter bei einem Schritt eine Rückfrage auslösen können, muss auf den jeweiligen Benutzer-Schritten (UserStep) die Option allowInquiry: true gesetzt sein.

Blueprint-Beispiel (YAML)

yaml
id: ER-MBCOM
version: 4

# Zentraler Webhook für alle Rückfragen in diesem Workflow
inquiryWebhookUrl: "https://prod-12.westeurope.logic.azure.com/workflows/..."

overviewField1:
  name: fldAdrNr
  label: Adressnummer
overviewField2:
  name: fldDat
  label: Datum

trigger:
  objectType: tblTransactions
  nextStep:
    condition: fldArt == 41
    step: freigabe_einkauf

steps:
  - name: freigabe_einkauf
    stepType: UserStep
    group: Einkauf
    allowInquiry: true # Aktiviert Rückfragen für diesen Schritt

    fields:
      - name: fldBelegNr
        label: Beleg-Nr
        visible: true

    nextSteps:
      - label: Freigabe
        color: success
        icon: i-lucide-check-circle
        step: approve
      - label: Ablehnung
        color: error
        icon: i-lucide-x-circle
        step: reject

  - name: approve
    stepType: SystemStep
    action: approve

  - name: reject
    stepType: SystemStep
    action: reject