HTTP-Anfrage senden

Die Aktion HTTP-Anfrage senden verbindet deinen Workflow mit einem Webserver oder einer URL und sendet HTTP-Anfragen.

Nachdem Flow deine HTTP-Anfrage gesendet hat, wartet das Tool maximal 30 Sekunden auf einen HTTP-Antwortcode. Wenn Flow nach 30 Sekunden keine Antwort von deiner App erhalten hat, wird die Verbindung zu deiner App abgebrochen. Später wird die Anfrage erneut gesendet.

Felder

Die Aktion HTTP-Anfrage senden enthält die folgenden Felder.

Felder, die in der Aktion "HTTP-Anfrage senden" verwendet werden.
FeldBeschreibung
HTTP-MethodeDie Methode zum Senden der HTTP-Anfrage. Die Aktion HTTP-Anfrage senden unterstützt die folgenden Methoden:
  • Get – Fordert Informationen vom Server an.
  • Delete – Entfernt eine Ressource vom Server.
  • Head - Ruft die HTTP-Antwortheader des Servers ab.
  • Optionen – Ruft die Optionen und Funktionen ab, die vom Server unterstützt werden.
  • Patch – Aktualisiert Teile einer Ressource auf dem Server.
  • Put – Aktualisiert eine Ressource auf dem Server.
  • Post – Erstellt oder ersetzt eine Ressource auf dem Server.
URLDie URL des Servers, an den die HTTP-Anfrage gesendet wird.
HeaderDas Schlüssel-Wert-Paar für die HTTP-Anfrage. Es können mehrere Schlüssel-Wert-Paare eingegeben werden.
NachrichtDer Inhalt, der an den Server gesendet werden soll.
Bei Clientfehler (4XX-Antwort)Beim Eingang eines Antwortcodes, der auf einen Client-Flowehler hindeutet, werden in Flow folgende Vorgänge ausgeführt:
  • Erneut versuchen: Wiederhole den Versuch bis zu 24 Stunden lang, bis du einen anderen Antwortcode erhältst oder eine Zeitüberschreitung eintritt.
  • Fehler: Die Ausführung des Workflows schlägt fehl.
  • Ignorieren: Ignoriere den Fehler und setze die Ausführung des Workflows fort.
Bei Serverfehler (Antwort 5XX oder 429)Beim Eingang eines Antwortcodes, der auf einen Serverfehler hindeutet, werden in Flow folgende Vorgänge ausgeführt:
  • Erneut versuchen: Wiederhole den Versuch bis zu 24 Stunden lang, bis du einen anderen Antwortcode erhältst oder eine Zeitüberschreitung eintritt.
  • Fehler: Die Ausführung des Workflows schlägt fehl.
  • Ignorieren: Ignoriere den Fehler und setze die Ausführung des Workflows fort.

Zurückgegebene Daten

Um in den Schritten, die auf diese Aktion folgen, auf die zurückgegebenen Daten zuzugreifen, verwende die Variable mit der Bezeichnung sendHttpRequest, die alle Details der HTTP-Antwort enthält. Verwende optional die Aktion Code ausführen , um den body der Antwort zur Verwendung in nachfolgenden Workflow-Schritten zu analysieren, wie im folgenden Beispiel dargestellt.

Wenn die Aktion HTTP-Anfrage senden mehrfach in einem einzelnen Workflow verwendet wird, wird dem Variablennamen eine Zahl hinzugefügt. In einem Workflow, der die Aktion HTTP-Anfrage senden zweimal verwendet, lautet die erste Variable für zurückgegebene Daten dann beispielsweise sendHttpRequest und die zweite Variable sendHttpRequest1. Dieser Name kann nicht angepasst werden.

Antwortcodes

In der folgenden Tabelle wird beschrieben, wie Flow den HTTP-Antwortcode verarbeitet, nachdem das Programm eine Antwort erhalten hat.

Verarbeitung von HTTP-Antwortcodes durch Flow.
HTTP-AntwortcodeSo verarbeitet Flow den Antwortcode
2XX oder 3XX – Erfolgreiche OperationFlow markiert die HTTP-Anfrage als erfolgreiche Operation und führt alle nachfolgenden Aktionen im Workflow aus.
4XX-Fehler,
5XX- und 429-Fehler
Abhängig von der Konfiguration der Aktion führt Flow Folgendes aus:
  • Erneut versuchen: Wiederhole den Versuch bis zu 24 Stunden lang, bis du einen anderen Antwortcode erhältst oder eine Zeitüberschreitung eintritt.
  • Fehler: Die Ausführung des Workflows schlägt fehl.
  • Ignorieren: Ignoriere den Fehler und setze die Ausführung des Workflows fort.
Anderer AntwortcodeWenn die Antwort einen Code zurückgibt, der in dieser Tabelle nicht beschrieben ist, oder wenn beim erneuten Versuch von Aktionen eine Zeitüberschreitung auftritt, markiert Flow die HTTP-Anforderung als fehlgeschlagen, lässt die Ausführung des Workflows fehlschlagen und führt keine nachfolgenden Workflow-Aktionen aus.

Geheime Schlüssel

Geheimnisse werden verwendet, um vertrauliche Informationen wie Zugriffstoken oder Passwörter für die Verwendung in der Aktion HTTP-Anforderung senden sicher zu speichern. Geheimnisse werden auf der Seite Flow > Einstellungen erstellt und verwaltet. Ein Geheimnis enthält einen Handle, einen Wert und eine Beschreibung. Verweise beim Konfigurieren der Felder „URL“, „Header-Wert“ oder „Body“ auf das Geheimnis als Liquid-Variable (z. B. {{secrets.handle}}) oder über die Option Geheimnis hinzufügen. Geheime Werte sind in der Flow-Schnittstelle nie sichtbar und werden aus den Workflow-Ausführungsprotokollen gelöscht/anonymisiert.

Trigger

Die Aktion HTTP-Anfrage senden kann in jedem Workflow verwendet werden.

Beispiele

Beispiel 1: Eine HTTP-Anfrage an einen externen Dienst senden

In diesem Beispiel wird Flow verwendet, um eine HTTP-Anfrage an einen externen Dienst zu senden.

Bevor du beginnst, musst du einen Webdienst konfigurieren, der HTTP-Anfragen empfängt und die Daten dieser Anfragen zu Testzwecken speichert, beispielsweise Request Catcher. Du solltest beim Senden sensibler Daten (z. B. Passwörter oder API-Schlüssel) an einen Drittanbieterdienst mit Bedacht vorgehen.

Schritte:

  1. Wähle den Trigger Produktstatus aktualisiert aus, mit dem du diesen Workflow testen kannst, indem du den Status eines Produkts änderst.

  2. Füge die Aktion HTTP-Anfrage senden zu deinem Workflow hinzu und verbinde sie mit dem Trigger. Öffne anschließend das Konfigurationsfenster, indem du auf den Schritt HTTP-Anfrage senden klickst.

    • Gib im Feld HTTP-Methode POST ein.
    • Gib im URL-Feld die zu testende URL ein, z. B. https://yourFlowTest.requestcatcher.com/test.
    • Gib im Abschnitt Header eine Kopfzeile mit dem Schlüssel Content-Type und dem Wert text/plain ein.
    • Gib im Abschnitt Body {{product.title}} und {{product.status}} ein, um den Titel und den aktualisierten Status des Produkts vom Trigger zu senden.
  3. Aktiviere den Workflow.

  4. Teste es, indem du den Status eines Produkts von Entwurf in Aktiv änderst oder umgekehrt.

  5. Beobachte die Ergebnisse im externen Testdienst, wie z. B. https://yourFlowTest.requestcatcher.com/ in diesem Beispiel.

Beispiel 2: Code ausführen verwenden, um eine HTTP-Antwort zu analysieren

Verwenden Flow in diesem Beispiel, um eine HTTP-Anfrage an einen externen Dienst zu senden, und die Aktion Code ausführen, um den body der HTTP-Antwort zur Verwendung in nachfolgenden Workflow-Schritten zu analysieren.

Bevor du beginnst, musst du einen Webdienst auswählen, der HTTP-Anfragen empfängt und die Daten zurückgibt, wie etwa Postman Echo. Du solltest beim Senden sensibler Daten (z. B. Passwörter oder API-Schlüssel) an einen Drittanbieterdienst mit Bedacht vorgehen.

Schritte:

  1. Wähle den Trigger Produktstatus aktualisiert aus, mit dem du diesen Workflow testen kannst, indem du den Status eines Produkts änderst.
  2. Füge die Aktion HTTP-Anfrage senden zu deinem Workflow hinzu und verbinde sie mit dem Trigger. Öffne anschließend das Konfigurationsfenster, indem du auf den Schritt HTTP-Anfrage senden klickst.
    • Gib im Feld HTTP-Methode POST ein.
    • Gib im URL-Feld die zu testende URL ein, z. B. https://postman-echo.com/post.
    • Gib im Abschnitt Header eine Kopfzeile mit dem Schlüssel Content-Type und dem Wert application/json ein.
    • Gib im Abschnitt Body den JSON-Beispielcode ein, um zum Workflow zurückzukehren, etwa: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
3. Füge deinem Workflow die Aktion **Code ausführen** hinzu und verbinde sie mit der Aktion **HTTP-Anfrage senden**. Öffne dann das Konfigurationsfenster, indem du auf den Schritt **Code ausführen** klickst.
      - Gib im Feld **Eingaben definieren** den vom Objekt `sendHTTPrequest` zurückgegebenen `body` ein, beispielsweise  ```
query{
sendHttpRequest {
  body
}
}
- Definiere im Feld **Ausgaben definieren** das Ausgabeschema, beispielsweise  ```

type Output { productTitle: String! productStatus: String! }

- Analysiere im Feld **Code schreiben** die Antwort mit der Methode `JSON.parse` und stelle sicher, dass die zurückgegebenen Daten mit den im Ausgabeschema definierten Shapes und Typen übereinstimmen, wie zum Beispiel:  ```
export default function main(input) {
const body = JSON.parse(input.sendHttpRequest.body);
console.log("body is", body);
return {
  productTitle: body.data.productTitle,
  productStatus: body.data.productStatus
}
}
  1. Füge die Aktion Protokollausgabe zum Workflow hinzu und stelle eine Verbindung mit der Aktion Code ausführen her. Öffne anschließend das Konfigurationsfenster, indem du auf den Schritt Code ausführen klickst.
    • Füge im Feld Ausgabe die vom Schritt Code ausführen zurückgegebenen Variablen ein, beispielsweise: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Aktiviere den Workflow.
6. Teste es, indem du den Status eines Produkts von **Entwurf** in **Aktiv** änderst oder umgekehrt.
7. Beobachte die resultierende Ausführung auf der Seite **[„Flow/Aktuelle Ausführungen“](https://admin.shopify.com/apps/flow/activity)** und beachte, dass die Werte im Schritt **Protokollausgabe** mit den Werten übereinstimmen, die von der Ausgabe **HTTP-Anforderung senden** zurückgegeben wurden.

## Vorlagen {#templates}

### Fulfillmentanbieter über anstehende Bestellungen benachrichtigen

Sende eine HTTP-Anfrage an deinen Fulfillmentanbieter, wenn Bestellungen in Order Tagger mit "Lager" getaggt sind. [Vorlage anzeigen](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)

### Neue Bestellungen an Airtable senden

Sende Bestellungen an Airtable, wenn eine Bestellung erstellt wird. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)

### Alle vorhandenen und neuen Produkte an Airtable senden

Suche alle 10 Minuten nach Produkten, die nicht an Airtable gesendet wurden (per Tag) und sende sie an Airtable. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)

### Aktualisiere Produkte in Batches basierend auf Produktdaten, die in Airtable gespeichert sind.

Aktualisiere Produkte in Batches basierend auf Produktdaten, die in Airtable gespeichert sind. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)

### Benachrichtige Kund:innen über ablaufende Geschenkgutscheine mit SendGrid

Rufe jeden Tag alle Geschenkkarten ab, die in 7 Tagen ablaufen, und sende E-Mails an die Kund:innen über SendGrid. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)

### E-Mails mit SendGrid senden, wenn Kund:innen eine Bestellung für einen benutzerdefinierten Artikel aufgeben

Sende eine Transaktions-E-Mails mit SendGrid, wenn ein Kunde oder eine Kundin eine Bestellung für einen benutzerdefinierten Artikel aufgibt. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)
Du hast die gesuchten Antworten nicht gefunden? Wir helfen dir gerne weiter.