Zum Inhalt springen

Senden Sie eine Slack-Benachrichtigung von einer Studio-Operation in Jitterbit Studio

Einführung

Dieses Integrationsdesignmuster sendet eine formatierte Nachricht an einen Slack-Kanal von einer Studio-Operation. Die Operation verwendet den HTTP v2 Connector, um eine JSON-Nutzlast an eine Slack-Eingangswebhook-URL zu POSTen. Dieses Muster wird häufig verwendet, um ein Team zu benachrichtigen, wenn ein bedeutendes Ereignis eintritt, wie z. B. der Eingang einer neuen Bestellung, die Erstellung eines Datensatzes oder der Abschluss einer Operation mit Fehlern.

Dieser Leitfaden setzt voraus, dass Sie mit der Konfiguration von HTTP v2-Verbindungen und -Aktivitäten vertraut sind. Für eine allgemeine Einführung siehe Rufen Sie eine REST-API mit dem HTTP v2 Connector auf.

Entwurfsmuster

Ein Slack-Eingangswebhook ist eine eindeutige URL, die von Slack generiert wird und eine HTTP-POST-Anforderung mit einer JSON-Nachricht akzeptiert. Es ist keine zusätzliche Authentifizierung über die Webhook-URL selbst erforderlich.

Die Studio-Operation folgt dem Transformationsmuster:

flowchart LR A[Quellaktivität] --> B[Transformation] --> C[HTTP v2 POST-Aktivität]

Die Quellaktivität liefert die Daten, die zum Erstellen der Nachricht verwendet werden (z. B. ein Ergebnis einer Datenbankabfrage, ein Salesforce-Datensatz oder eine Skriptausgabe). Die Transformation erstellt die Slack-Nutzlast. Die HTTP v2 POST-Aktivität sendet die Nutzlast an die Slack-Eingangswebhook-URL.

Webhook-Beschränkungen und erweiterte Anwendungsfälle

Slack-Eingangswebhooks sind nur zum Posten gedacht und senden an den einzelnen Kanal, für den der Webhook erstellt wurde. Sie können zur Laufzeit keinen anderen Kanal oder Benutzer anvisieren, Nachrichten nicht aktualisieren oder in Threads senden, keine Dateien hochladen oder Nachrichten lesen und durchsuchen, und Slack begrenzt sie auf etwa eine Nachricht pro Sekunde. Für diese erweiterten Anwendungsfälle verwenden Sie stattdessen den nativen Slack Connector. Dieser authentifiziert sich mit einem Slack-App-Token und bietet Aktivitäten, um an jeden Kanal oder Benutzer zu posten (Nachricht senden), Nachrichten zu suchen und abzurufen (Suchen und Abrufen), Dateien hochzuladen (Dateien) und Benutzer und Konversationen nachzuschlagen (Benutzer und Konversationen).

Teil 1: Erstellen eines Slack Incoming Webhooks

  1. Gehen Sie in Ihrem Slack-Arbeitsbereich zu Apps und suchen Sie nach Incoming WebHooks, oder erstellen Sie eine Slack-App unter api.slack.com/apps und fügen Sie die Funktion Incoming Webhooks hinzu.

  2. Aktivieren Sie die Incoming Webhooks und klicken Sie auf Neuen Webhook zum Arbeitsbereich hinzufügen.

  3. Wählen Sie den Kanal aus, in den gepostet werden soll, und klicken Sie auf Erlauben.

  4. Kopieren Sie die Webhook-URL. Sie hat das Format https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.

    Tipp

    Speichern Sie die Webhook-URL als Projektvariable mit verborgenem Wert. Dadurch bleibt die URL aus der Verbindungs- und Aktivitätskonfiguration heraus und lässt sich leicht ändern, ohne das Projekt zu bearbeiten.

Teil 2: Konfigurieren der HTTP v2-Verbindung

  1. Öffnen Sie im Studio Ihr Projekt und klicken Sie auf die Projektendpunkte und -verbinder-Registerkarte in der Design-Komponentenpalette.

  2. Klicken Sie auf den HTTP v2-Connector, um die Verbindungs-Konfiguration zu öffnen.

  3. Verbindungsname: Geben Sie einen Namen wie Slack ein.

  4. Basis-URL: Geben Sie https://hooks.slack.com ein. Einzelne POST-Aktivitäten fügen den Webhook-Pfad hinzu.

  5. Autorisierung: Wählen Sie Keine Authentifizierung. Die Authentifizierung für Slack Incoming Webhooks erfolgt über die eindeutige Webhook-URL, nicht über einen Autorisierungsheader.

  6. Klicken Sie auf Testen, und klicken Sie dann auf Änderungen speichern.

Teil 3: Konfigurieren der POST-Aktivität

  1. Erweitern Sie in der Design-Komponentenpalette den Slack HTTP v2-Endpunkt und ziehen Sie den Aktivitätstyp POST auf die Design-Leinwand.

  2. Doppelklicken Sie auf die Aktivität, um ihre Konfiguration zu öffnen.

Schritt 1: Geben Sie einen Namen ein und spezifizieren Sie die Einstellungen

  1. Name: Geben Sie einen Namen wie Post Slack Message ein.

  2. Pfad: Geben Sie den Pfadteil Ihrer Webhook-URL ein (alles nach hooks.slack.com), zum Beispiel /services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.

Wenn Sie die Webhook-URL als Projektvariable gespeichert haben, geben Sie hier stattdessen die vollständige URL ein (zum Beispiel [slack_webhook_url]). Eine vollständige URL überschreibt die Basis-URL der Verbindung.

  1. Anforderungsheader: Klicken Sie auf das Hinzufügen-Symbol und fügen Sie den Header Content-Type mit dem Wert application/json hinzu.

  2. Klicken Sie auf Weiter.

Schritt 2: Geben Sie das Anforderungsschema an

  1. Wählen Sie Ja, neues Schema bereitstellen.

  2. Geben Sie das folgende JSON-Schema ein, das die Felder einer Slack-Nachrichtennutzlast definiert:

    {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        }
      }
    }
    

    Für reichhaltigere Nachrichten mit Abschnitten, Schaltflächen oder formatierten Blöcken ersetzen Sie dieses Schema durch eine Slack Block Kit-Struktur. Das Feld text dient als Fallback für Benachrichtigungen und Barrierefreiheit.

  3. Klicken Sie auf Weiter.

Schritt 3: Geben Sie das Antwortschema an

Der eingehende Slack-WebHook gibt eine Antwort im Klartext zurück (ok bei Erfolg). Es ist kein benutzerdefiniertes Antwortschema erforderlich. Klicken Sie auf Weiter und dann auf Fertig.

Teil 4: Ordnen Sie die Nachricht in einer Transformation zu

In der Transformation, die der POST-Aktivität vorausgeht, ordnen Sie das Feld text des Anforderungsschemas einem Skript zu, das die Nachrichtenzeichenfolge erstellt.

Zum Beispiel, um eine Nachricht über eine neue Bestellung zu senden, könnte das Transformationsskript für das Feld text wie folgt aussehen:

<trans>
"Neue Bestellung #" + $order_id + " erhalten von " + $customer_name + " für $" + $order_total
</trans>

Dabei sind order_id, customer_name und order_total globale Variablen, die von einem vorhergehenden Skript befüllt oder aus der Quellaktivität zugeordnet werden.

Tipp

Um einen Zeilenumbruch im Nachrichtentext einzufügen, verwenden Sie "\n" im Skriptstring. Slack rendert Zeilenumbrüche in Kanalnachrichten.

Überprüfen Sie die Integration

Bereitstellen und ausführen Sie die Operation, um die Benachrichtigung zu testen. Überprüfen Sie die Betriebsprotokolle, um zu bestätigen, dass die POST-Aktivität einen HTTP-Status von 200 zurückgegeben hat. Wenn die Betriebsprotokolle einen Status ungleich 200 anzeigen, überprüfen Sie den Pfad der Webhook-URL und bestätigen Sie, dass die Slack-App weiterhin im Arbeitsbereich installiert ist.