Slack-Benachrichtigung von einer Studio-Operation in Jitterbit Studio senden
Einführung
Dieses Integrations-Designmuster sendet eine formatierte Nachricht von einer Studio-Operation an einen Slack-Kanal. Die Operation nutzt den HTTP v2-Connector, um eine JSON-Payload an eine Slack-Incoming-Webhook-URL zu POSTEN. Dieses Muster wird häufig verwendet, um ein Team zu benachrichtigen, wenn ein wichtiges Ereignis eintritt, beispielsweise wenn eine neue Bestellung empfangen wird, ein Datensatz erstellt wird oder eine Operation mit Fehlern abgeschlossen wird.
Diese Anleitung setzt Vertrautheit mit der Konfiguration von HTTP v2-Verbindungen und -Aktivitäten voraus. Eine allgemeine Einführung finden Sie unter REST-API mit dem HTTP v2-Connector aufrufen.
Designmuster
Ein Slack-Incoming-Webhook ist eine von Slack generierte eindeutige URL, die eine HTTP-POST-Anfrage mit einer JSON-Nachricht akzeptiert. Über die Webhook-URL selbst hinaus ist keine zusätzliche Authentifizierung erforderlich.
Die Studio-Operation folgt dem Transformationsmuster:
Die Quellaktivität stellt die Daten bereit, die zum Erstellen der Nachricht verwendet werden (beispielsweise ein Datenbankabfrageergebnis, ein Salesforce-Datensatz oder eine Skriptausgabe). Die Transformation erstellt die Slack-Nachricht-Payload. Die HTTP v2 POST-Aktivität sendet die Payload an die Slack-Incoming-Webhook-URL.
Webhook-Limitierungen und fortgeschrittene Anwendungsfälle
Slack-Incoming-Webhooks sind reiner POST und senden nur an den einen Kanal, für den der Webhook erstellt wurde. Sie können nicht zur Laufzeit einen anderen Kanal oder Benutzer ansteuern, Nachrichten aktualisieren oder in Threads antworten, Dateien hochladen oder Nachrichten lesen und durchsuchen, und Slack limitiert sie auf ungefähr eine Nachricht pro Sekunde. Nutzen Sie für diese fortgeschrittenen Anwendungsfälle stattdessen den nativen Slack-Connector. Dieser authentifiziert sich mit einem Slack-App-Token und bietet Aktivitäten zum Posten auf jedem Kanal oder zu jedem Benutzer (Nachricht senden), zum Suchen und Abrufen von Nachrichten (Suche und Abrufen), zum Hochladen von Dateien (Dateien) und zum Nachschlagen von Benutzern und Unterhaltungen (Benutzer und Unterhaltungen).
Teil 1: Slack-Incoming-Webhook erstellen
-
Gehen Sie in Ihrem Slack-Workspace zu Apps und suchen Sie nach Incoming WebHooks, oder erstellen Sie eine Slack-App auf api.slack.com/apps und fügen Sie die Funktion Incoming Webhooks hinzu.
-
Aktivieren Sie Incoming Webhooks und klicken Sie auf Add New Webhook to Workspace.
-
Wählen Sie den Kanal aus, auf dem Sie posten möchten, und klicken Sie auf Allow.
-
Kopieren Sie die Webhook-URL. Sie hat das Format
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.Tip
Speichern Sie die Webhook-URL als Projektvariable mit ausgeblendeter Wertsetzung. Dies hält die URL aus der Verbindungs- und Aktivitätskonfiguration direkt heraus und erleichtert die Änderung ohne Projektbearbeitung.
Teil 2: HTTP v2-Verbindung konfigurieren
-
Öffnen Sie in Studio Ihr Projekt und klicken Sie auf die Registerkarte Project endpoints and connectors in der Design-Komponentenpalette.
-
Klicken Sie auf den HTTP v2-Connector, um die Verbindungskonfiguration zu öffnen.
-
Connection Name: Geben Sie einen Namen wie
Slackein. -
Base URL: Geben Sie
https://hooks.slack.comein. Einzelne POST-Aktivitäten hängen den Webhook-Pfad an. -
Authorization: Wählen Sie No Auth aus. Die Authentifizierung für Slack-Incoming-Webhooks wird durch die eindeutige Webhook-URL und nicht durch einen Autorisierungsheader bearbeitet.
-
Klicken Sie auf Test und anschließend auf Save Changes.
Teil 3: POST-Aktivität konfigurieren
-
Erweitern Sie auf der Design-Komponentenpalette den Slack-HTTP v2-Endpoint und ziehen Sie den POST-Aktivitätstyp auf den Design-Canvas.
-
Doppelklicken Sie auf die Aktivität, um ihre Konfiguration zu öffnen.
Schritt 1: Namen eingeben und Einstellungen konfigurieren
-
Name: Geben Sie einen Namen ein, z. B.
Post Slack Message. -
Path: Geben Sie den Pfadteil der Webhook-URL ein (alles nach
hooks.slack.com), z. B./services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.Wenn Sie die Webhook-URL als Projektvariable gespeichert haben, geben Sie stattdessen die vollständige URL ein (z. B.
[slack_webhook_url]). Eine vollständige URL überschreibt die Base URL aus der Verbindung. -
Request Headers: Klicken Sie auf das Hinzufügen-Symbol und fügen Sie den Header
Content-Typemit dem Wertapplication/jsonhinzu. -
Klicken Sie auf Next.
Schritt 2: Request-Schema bereitstellen
-
Wählen Sie Yes, Provide New Schema.
-
Geben Sie das folgende JSON-Schema ein, das die Felder einer Slack-Message-Payload definiert:
{ "type": "object", "properties": { "text": { "type": "string" } } }Für umfangreichere Nachrichten mit Abschnitten, Schaltflächen oder formatierten Blöcken ersetzen Sie dieses Schema durch eine Slack Block Kit-Struktur. Das Feld
textdient als Fallback für Benachrichtigungen und Barrierefreiheit. -
Klicken Sie auf Next.
Schritt 3: Response-Schema bereitstellen
Der eingehende Slack-Webhook gibt eine Nur-Text-Antwort zurück (ok bei Erfolg). Ein benutzerdefiniertes Response-Schema ist nicht erforderlich. Klicken Sie auf Next und dann auf Finished.
Part 4: Nachricht in einer Transformation zuordnen
Ordnen Sie in der Transformation vor der POST-Aktivität das Feld text des Request-Schemas einem Skript zu, das die Nachrichtenzeichenkette erstellt.
Um beispielsweise eine Nachricht über eine neue Bestellung zu senden, könnte das Transformationsskript für das Feld text wie folgt aussehen:
<trans>
"New order #" + $order_id + " received from " + $customer_name + " for $" + $order_total
</trans>
Dabei sind order_id, customer_name und order_total globale Variablen, die von einem vorhergehenden Skript gefüllt oder aus der Quellaktivität zugeordnet werden.
Tipp
Um einen Zeilenumbruch im Nachrichtentext einzufügen, verwenden Sie "\n" in der Skriptzeichenkette. Slack rendert Zeilenumbrüche in Kanalnachrichten.
Integration überprüfen
Stellen Sie den Vorgang bereit und führen Sie ihn aus, um die Benachrichtigung zu testen. Überprüfen Sie die Vorgangsprotokolle, um zu bestätigen, dass die POST-Aktivität einen HTTP-Status 200 zurückgegeben hat. Wenn in den Vorgangsprotokollan ein anderer Status als 200 angezeigt wird, überprüfen Sie den Webhook-URL-Pfad und stellen Sie sicher, dass die Slack-App noch im Workspace installiert ist.