Du siehst Dir gerade den Artikel zu einer älteren Shopware Version an!
Den Flow Builder findest Du unter Einstellungen > Shop. Er ermöglicht es Dir, Deine Geschäftsprozesse ohne Programmierkenntnisse zu automatisieren und einfach anzupassen, und ermöglicht es Dir, ereignisbasierte Aktionen auf eine ganz neue Ebene zu bringen. Mit dem Flow Builder kannst Du Ereignisauslöser mit Hilfe von Regeln noch weiter spezifizieren. So kannst Du je nach Ereignis beispielsweise den E-Mail-Versand automatisieren und sogar URL-Aufrufe oder Änderungen des Bestellstatus vornehmen lassen.
Unter dem Menüpunkt Einstellungen > Shop > Flowbuilder findest Du zunächst die Übersicht aller angelegten Business Flows. Neben der Angabe, ob ein Flow aktiv ist, wird Dir der Name und die Beschreibung jedes Flows angezeigt, sowie der Trigger, welcher den Geschäftsprozess auslöst.
Über das Kontextmenü auf der rechten Seite kannst Du die bestehenden Flows bearbeiten oder löschen.
Du kannst ihn aber auch bearbeiten, indem Du einfach auf den jeweiligen Namen klickst.
Über den Button Flow hinzufügen in der rechten oberen Ecke kannst Du einen komplett neuen Flow erstellen und gelangst direkt in die Konfiguration dieses Flows.
Wenn Du einen Flow bearbeitest oder einen neuen Anlegst stehen Dir die beiden Reiter Allgemein und Flow zur Verfügung.
Im Reiter Allgemein kannst Du die allgemeinen Konfigurationen für den Flow festlegen.
Name (1): Trage hier den Namen ein. Dieser wird zusammen mit der Beschreibung in der Übersicht benötigt um diesen Flow von anderen zu unterscheiden.
Beschreibung (2): Trage hier eine aussagekräftige Beschreibung ein. Da diese Beschreibung auch in der Übersicht schon zu sehen ist, hilft sie Dir diesen Flow schnell von anderen zu unterscheiden.
Priorität (3): Wenn Du mehrere Flows hast, die den selben Auslöser (Trigger) verwenden, kannst Du so angeben, welcher Flow zuerst abgearbeitet werden soll.
Aktiv (4): Über diesen Schalter kannst Du den Flow zeitweise aktivieren oder deaktivieren.
Im Reiter Flow findest Du den eigentlichen Flow Builder. Ein intuitiver aber umfangreicher Editor, mit dem Du ausgehend von einem Auslöser (Trigger) angeben kannst, welche Aktionen dadurch ausgelöst werden. Zusätzlich hast Du die Möglichkeit, für diese Aktionen Bedingungen zu definieren, unter denen die Aktionen ausgeführt werden sollen.
Mit dem Trigger beginnt jeder Flow. Dieser gibt an, wann der Flow ausgeführt wird. Gib hier an für welchen Auslöser Du einen Flow erstellen möchtest.
Folgende Auslöser stehen Dir hier zur Verfügung:
Event | Description | Aktionen |
---|---|---|
checkout.customer.before.login | Wird ausgelöst, sobald sich ein Kunde anmeldet | keine Aktion |
checkout.customer.login | Wird ausgelöst, sobald sich ein Kunde anmeldet | Tag hinzufügen/ entfernen |
checkout.customer.logout | Wird ausgelöst, sobald sich ein Kunde abmeldet | Tag hinzufügen/ entfernen |
checkout.customer.deleted | Wird ausgelöst, sobald ein Kunde gelöscht wird | Tag hinzufügen/ entfernen, E-Mail verschicken |
user.recovery.request | Wird ausgelöst, sobald ein Nutzer im Administrator eine Anfrage zur Passwortwiederherstellung startet. | E-Mail verschicken |
checkout.customer.changed-payment-method | Wird ausgelöst, wenn ein Kunde seine Zahlungsart im Checkout Prozess ändert. | Tag hinzufügen/ entfernen |
checkout.order.placed | Wird ausgelöst, sobald eine Bestellung eines Kunden abgegeben wurde. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
checkout.order.payment_method.changed | Wird ausgelöst, wenn ein Kunde seine Zahlungsart im Checkout Prozess ändert. | Keine Aktion |
customer.recovery.request | Wird ausgelöst, wenn ein Kunde eine Anfrage zur Passwortwiederherstellung sendet. | Tag hinzufügen/ entfernen, E-Mail verschicken |
checkout.customer.double_opt_in_registration | Wird ausgelöst, wenn ein Kunde seine Registrierung per Double-Opt-In bestätigt. | Tag hinzufügen/ entfernen, E-Mail verschicken |
customer.group.registration.accepted | Wird ausgelöst, wenn der Administrator einen Kunden akzeptiert, der sich als Mitglied einer Kundengruppe registriert. | Tag hinzufügen/ entfernen, E-Mail verschicken |
customer.group.registration.declined | Wird ausgelöst, wenn der Administrator einen Kunden ablehnt, der sich als Mitglied einer Kundengruppe registriert. | Tag hinzufügen/ entfernen, E-Mail verschicken |
checkout.customer.register | Wird ausgelöst, wenn sich ein neuer Kunde registriert. | Tag hinzufügen/ entfernen, E-Mail verschicken |
checkout.customer.double_opt_in_guest_order | Wird ausgelöst, sobald das Double-Opt-In in einer Gastbestellung akzeptiert wurde. | Tag hinzufügen/ entfernen, E-Mail verschicken |
checkout.customer.guest_register | Wird ausgelöst, wenn sich ein neuer Kunde als Gast registriert. | Tag hinzufügen/ entfernen, E-Mail verschicken |
contact_form.send | Wird ausgelöst, sobald ein Kunde das Kontaktformular ausgefüllt und abgeschickt hat. | E-Mail verschicken |
mail.after.create.message | Wird ausgelöst wenn eine E-Mail erstellt wird. | Keine Aktion |
mail.before.send | Wird vor dem Versand einer E-Mail ausgelöst. | Keine Aktion |
mail.sent | Wird ausgelöst, wenn eine E-Mail von Shopware gesendet wird | Keine Aktion |
newsletter.confirm | Wird ausgelöst, wenn der Newsletter von einem Kunden bestätigt wurde | E-Mail verschicken |
newsletter.register | Wird ausgelöst, wenn der Kunde sich für den Newsletter eines Verkaufskanals angemeldet hat | E-Mail verschicken |
newsletter.unsubscribe | Wird ausgelöst, wenn sich ein Benutzer von einem Verkaufskanal-Newsletter abmeldet | E-Mail verschicken |
newsletter.update | Wird aktuell nicht genutzt | E-Mail verschicken |
product_export.log | Wird ausgelöst, wenn der Produktexport ausgeführt wird | Keine Aktion |
state_enter.order_transaction.state.open | Wird ausgelöst, wenn der Zahlungsstatus den Status "Offen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.open | Wird ausgelöst, wenn der Zahlungsstatus den Status "Offen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.paid | Wird ausgelöst, wenn der Zahlungsstatus den Status "Bezahlt" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.paid | Wird ausgelöst, wenn der Zahlungsstatus den Status "Bezahlt" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
>state_enter.order_transaction.state.refunded_partially | Wird ausgelöst, wenn der Zahlungsstatus den Status "Teilweise erstattet" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.refunded_partially | Wird ausgelöst, wenn der Zahlungsstatus den Status "Teilweise erstattet" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.chargeback | Wird ausgelöst, wenn der Zahlungsstatus den Status "Rückbuchung" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.chargeback | Wird ausgelöst, wenn der Zahlungsstatus den Status "Rückbuchung" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.paid_partially | Wird ausgelöst, wenn der Zahlungsstatus den Status "Teilweise bezahlt" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.paid_partially | Wird ausgelöst, wenn der Zahlungsstatus den Status "Rückbuchung" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.failed | Wird ausgelöst, wenn der Zahlungsstatus den Status "Fehlgeschlagen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.failed | Wird ausgelöst, wenn der Zahlungsstatus den Status "Fehlgeschlagen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.reminded | Wird ausgelöst, wenn der Zahlungsstatus den Status "Erinnert" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.reminded | Wird ausgelöst, wenn der Zahlungsstatus den Status "Erinnert" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.authorized | Wird ausgelöst, wenn der Zahlungsstatus den Status "Autorisiert" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.authorized | Wird ausgelöst, wenn der Zahlungsstatus den Status "Autorisiert" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.cancelled | Wird ausgelöst, wenn der Zahlungsstatus den Status "Abgebrochen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.cancelled | Wird ausgelöst, wenn der Zahlungsstatus den Status "Abgebrochen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.refunded | Wird ausgelöst, wenn der Zahlungsstatus den Status "erstattet" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.refunded | Wird ausgelöst, wenn der Zahlungsstatus den Status "erstattet" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.in_progress | Wird ausgelöst, wenn der Zahlungsstatus den Status "in Bearbeitung" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.in_progress | Wird ausgelöst, wenn der Zahlungsstatus den Status "in Bearbeitung" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_delivery.state.returned_partially | Wird ausgelöst, wenn der Versandstatus den Status "Teilretour" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_delivery.state.returned_partially | Wird ausgelöst, wenn der Versandstatus den Status "Teilretour" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_delivery.state.returned | Wird ausgelöst, wenn der Versandstatus den Status "Retour" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_delivery.state.returned | Wird ausgelöst, wenn der Versandstatus den Status "Retour" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_delivery.state.cancelled | Wird ausgelöst, wenn der Versandstatus den Status "Abgebrochen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_delivery.state.cancelled | Wird ausgelöst, wenn der Versandstatus den Status "Abgebrochen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_delivery.state.open | Wird ausgelöst, wenn der Versandstatus den Status "Offen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_delivery.state.open | Wird ausgelöst, wenn der Versandstatus den Status "Offen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_delivery.state.shipped | Wird ausgelöst, wenn der Versandstatus den Status "Versandt" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_delivery.state.shipped | Wird ausgelöst, wenn der Versandstatus den Status "Versandt" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_delivery.state.shipped_partially | Wird ausgelöst, wenn der Versandstatus den Status "Teilweise versandt" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_delivery.state.shipped_partially | Wird ausgelöst, wenn der Versandstatus den Status "Teilweise versandt" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order.state.in_progress | Wird ausgelöst, wenn der Bestellstatus den Status "In Bearbeitung" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order.state.in_progress | Wird ausgelöst, wenn der Bestellstatus den Status "In Bearbeitung" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order.state.completed | Wird ausgelöst, wenn der Bestellstatus den Status "Abgeschlossen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order.state.completed | Wird ausgelöst, wenn der Bestellstatus den Status "Abgeschlossen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order.state.open | Wird ausgelöst, wenn der Bestellstatus den Status "Offen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order.state.open | Wird ausgelöst, wenn der Bestellstatus den Status "Offen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order.state.cancelled | Wird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order.state.cancelled | Wird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_enter.order_transaction.state.unconfirmed | Wird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" erhält. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
state_leave.order_transaction.state.unconfirmed | Wird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" verlässt. | Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen |
**Notice: Stop flow action: Available for all events. |
Bedingungen werden verwendet, um den Ablauf des Flows zu verfeinern. Hierzu werden die Regeln aus dem Rule Builder verwendet oder direkt neue Regeln für diesen angelegt. Anhand dieser Regeln kann dann bestimmt werden, ob und welche Aktion ausgeführt wird. Für umfangreichere Flows können auch mehrere Bedingungen hintereinander abgefragt werden. Für umfangreichere Flows können auch mehrere Bedingungen hintereinander abgefragt werden.
Jede Bedingung hat zwei mögliche Ergebnisse. Wahr oder Falsch. Für jedes Ergebnis kannst Du weitere Bedingungen oder Aktionen festlegen die dann abgearbeitet werden sollen.
Die Aktion wird ausgeführt, sobald der Trigger ausgelöst wurde und alle vorgeschalteten Bedingungen entsprechend erfüllt oder eben nicht erfüllt wurden.
Je nach Trigger, kann es sein, dass nicht alle Aktionen zur Verfügung stehen. So kann ein Tag beispielsweise nur dann hinzugefügt werden, wenn der Trigger eine Entität betrifft, an die standardmäßig ein Tag gehängt werden kann.
Folgende Aktionen können je nach Trigger ausgewählt werden:
Tag hinzufügen / Tag entfernen:
Hier kannst Du eine Entität auswählen, welche vom Trigger betroffen ist und kannst an diese ein Tag hinzufügen lassen oder entfernen lassen.
Kundengruppe ändern:
Mit dieser Aktion kannst Du die Kundengruppe ändern. Wähle dazu im Dropdown einfach die Kundengruppe, in welche gewechselt werden soll.
Kundenstatus ändern:
Diese Aktion setzt einen Kunden entweder aktiv oder inaktiv. Triff dazu einfach eine Auswahl im Dropdown.
Dokument erzeugen:
Diese Aktion erzeugt ein neues Dokument in der aktuellen Bestellung. Im Dropdown Menü kannst Du festlegen, welcher Dokumententyp durch diese Aktion erzeugt werden soll.
E-Mail verschicken:
Mit dieser Aktion kannst Du automatisiert E-Mails versenden lassen. In der Konfiguration wählst Du hierzu zunächst einen Empfänger aus. Das kann neben dem Administrator und dem Kunden auch eine oder mehrere festgelegte E-Mail Adressen sein. Als nächstes wählst Du ein E-Mail-Template aus, welches verschickt werden soll und gibst an, ob und welche Dokumente Du der Mail hinzufügen möchtest.
Status setzen:
Mit dieser Aktion kannst Du den Zahlungsstatus, den Versandstatus und den Bestellstatus der Bestellung ändern, die von dem Trigger betroffen ist.
Einige Status besitzen eine Abhängigkeit untereinander und können erst ausgewählt werden, wenn die Bestellung bereits einen bestimmten Status besitzt.
Beispielsweise kann der Zahlungsstatus Erstattet, Teilweise erstattet oder Rückbuchung erst dann vergeben werden, wenn die Bestellung zuvor den Zahlungsstatus Bezahlt oder Teilweise bezahlt gehabt hat. Weitere Abhängigkeiten sind hier aufgeführt.
Zusatzfeldinhalt ändern:
Diese Aktion bietet Dir die Möglichkeit, das Zusatzfeld des Kunden oder der Bestellung zu ändern. Hier musst Du zuerst die Entität auswählen, danach das Zusatzfeld-Set und zum Schluss kannst Du das Zusatzfeld auswählen.
Affiliate- und Kampagnen-Code hinzufügen:
Diese Aktion fügt einen Affiliate- oder Kampagnen-Code hinzu. Zuerst musst Du aber die Entität auswählen, Kunden oder Bestellungen. Mit der Option Überschreiben kannst Du zudem festlegen ob bereits hinterlegte Codes überschrieben werden sollen.
Flow anhalten:
Diese Aktion kannst Du im Flow Builder an jede Stelle einbinden, an der nichts weiter geschehen soll. Das kann beispielsweise dann der Fall sein, wenn nur bei einer wahren Bedingung eine Aktion ausgeführt werden soll. Wenn die Bedingung Falsch ist, setzt Du dann die Aktion Flow anhalten.
In diesem Beispiel sollen neue Kunden ein Tag erhalten aus welchem Land diese kommen.
Hierzu wird der Trigger Checkout / Customer / Register gewählt, weil dieser auslöst, sobald sich ein Kunde registriert. Anschließend wird nach und nach überprüft, ob der Kunde aus den USA, aus Österreich oder aus der Schweiz kommt und ggf. wird dem Kunden ein entsprechendes Tag hinzugefügt.
Kommt der Kunde aus keinem dieser Länder, wird kein Tag vergeben.
In diesem Beispiel soll zu der Bestätigungs Mail automatisch die Rechnung mit verschickt werden. Hierzu verwendest Du den Trigger Checkout / Order / Placed. Dieser Trigger wird ausgelöst, sobald eine Bestellung in Deinem Shop abgegeben wird. Als erstes muss das Dokument, das automatisch verschickt werden soll erstellt werden. In diesem Beispiel erzeugst Du Als Aktion wählst Du dann zunächst Dokument erzeugen und wählst als Dokumententyp, in unserem Fall Invoice.
Im nächsten Schritt wird dieses Dokument nun der automatischen Benachrichtigung angehangen. Füge also unterhalb der Aktion Dokument erzeugen eine weitere Aktion E-Mail verschicken hinzu und wähle als Empfänger Standard, damit der Kunde die Mail erhält. Als E-Mail Template wählst Du Order confirmation um eine Bestellbestätigung zu verschicken und wählst das gewünschte Dokument, das der E-Mail angehangen werden soll.
In diesem Beispiel schickst Du eine Mail an das Lager, sobald eine Bestellung bezahlt wurde, damit dieses die Ware verschicken kann. Im ersten Schritt wählst Du als Trigger State Enter / Order Transaction / State / Paid. Dieser Trigger wird ausgelöst, sobald sich der Zahlungsstatus auf Bezahlt ändert.
Als nächstes entscheidest Du, ob das Lager auch die Rechnung und/oder den Lieferschein des Kunden erhalten soll. In diesem Fall wählst Du als Aktion zunächst Dokument erzeugen und wählst das entsprechende Dokument aus. In unserem Beispiel schickst Du eine Rechnung mit und wählst daher Invoice. Als anschließende Aktion wählst Du E-Mail verschicken, damit eine E-Mail an das Lager geschickt werden kann.
In der Konfiguration der E-Mail verschicken Aktion wählst Du als Empfänger Eigener Empfänger. So kannst Du individuell eine E-Mail Adresse angeben, an die die E-Mail verschickt werden soll. Trage dann die E-Mail Adresse des Lagers oder des zuständigen Mitarbeiters ein. Als E-Mail-Template kannst Du ein beliebiges Template wählen oder auch selber eins anlegen für diese Standard E-Mail. In unserem Beispiel verschicken wir das Default Template für Enter payment state:Paid. Zuletzt wählst Du noch aus, welches Dokument mitgeschickt werden soll. In unserem Beispiel wird die Rechnung mitgeschickt. Du kannst aber auch mehrere Dokumente (z.B. Rechnung und Lieferschein) auswählen, die mit verschickt werden sollen.
Wichtig ist, dass die Dokumente, die mit verschickt werden sollen im vorherigen Schritt automatisch erzeugt wurden.
In diesem Beispiel zeigen wir Dir, wie Du mit dem Flowbuilder eine Benachrichtigung an eine externe Plattform wie zum Beispiel Slack schickst. Für dieses Beispiel benötigst Du Erweiterung Flow Builder Professional for Shopware 6 welche Dir die Aktion Webhook mitliefert.
Slack:
Hierzu legst Du zunächst einen neuen Workflow in Slack an. Alle Informationen zu den Workflows in Slack und wie Du dort den Workflow Builder findest, findest Du hier.
Im Workflow Builder legst Du zunächst einen neuen neuen Workflow an. Jeder Workflow benötigt einen Auslöser und mindestens eine Aktion, die in Slack Schritt heißt. Als Auslöser wählst Du Webhook aus, da wir diesen im Shopware Flow Builder nutzen werden.
URL der Webanfrage (1): Hier wird die Zieladresse angezeigt, welche Du für den Webhook im Shopware Flowbuilder benötigst. Diese solltest Du dir also abspeichern. Beim ersten Aufruf des Auslösers wird diese Adresse noch nicht angezeigt. Sie wird erst eingeblendet, sobald Du den kompletten Workflow fertig gestellt und veröffentlicht hast.
Variablen (2): Wie Du die Variablen benennst ist eigentlich egal. In diesem Beispiel verwenden wir aber folgende:
HTTP-Beispieltext (3): Diesen Beispieltext benötigen wir später im Shopware Flowbuilder um die Variablen mit dem Webhook zu übertragen. Diesen Text solltest Du Dir also auch abspeichern.
Als nächstes fügst Du zu dem Workflow einen Schritt hinzu, der ausgeführt werden soll, sobald der Auslöser greift. In unserem Beispiel wählen wir den Schritt Nachricht senden, um einem Benutzer oder einer Slack Gruppe eine Nachricht mit der neuen Bestellung zukommen zu lassen.
Diese Nachricht senden an (1): Wähle hier die Benutzer oder die Slack Gruppe aus, an die die Nachricht geschickt werden soll.
Nachrichtentext (2): Hier kannst Du den Nachrichtentext entwerfen. Um Deine zuvor angelegten Varianten hinzuzufügen klickst Du rechts unten auf Variable einfügen. In unserem Beispiel fügen wir eine Überschrift ein und lassen uns den Inhalt der Variablen ausgeben, welche wir später im Shopware Flowbuilder mit den Bestellinhalten füllen werden.
Im Shopware Flow Builder
Im Shopware Flow Builder bearbeitest Du entweder den bestehenden Flow für eingehende Bestellungen oder legst Dir einen neuen an und wählst als Trigger Checkout / Order / Placed. Falls Du die Slack Nachricht beispielsweise nur für bereits bezahlte Bestellungen erstellen möchtest, kannst Du als Trigger auch State Enter / Order Transaction / State / Paid wählen.
Wenn Du keine weiteren Bedingungen für das Erzeugen einer Slacknachricht angeben möchtest, wählst Du nun als Aktion URL aufrufen (Webhook).
Methode (1): Wähle hier die POST Methode, da wir Informationen an Slack übertragen wollen.
URL (2): Hier trägst Du die Ziel URL ein. Diese wurde in der Slack Konfiguration unter dem Punkt URL der Webanfrage erzeugt.
Parameter (3): Da Slack die Parameter im Body erwartet kannst Du die Parameter hier noch leer lassen.
Im Reiter Body wählst Du anschließend den BodyTyp: Raw aus und kopierst dort das HTTP-Beispiel aus Slack in den Code hinein.
{
"orderURL": "Beispieltext",
"orderPositions": "Beispieltext",
"orderNumber": "Beispieltext",
"orderCustomerAdress": "Beispieltext"
}
Den Inhalt der Variablen ersetzt Du nun noch durch Shopware Variablen, die Du auch aus den E-Mail Vorlagen kennst. Für unser Beispiel würde der Code also so aussehen:
{
"orderURL": "http://doku1.test.shopware.in/admin#/sw/order/detail/{{ order.id }}",
"orderPositions": "
{% for lineItem in order.LineItems %}
{{ lineItem.payload.productNumber }} - {{ lineItem.label }}
{% endfor %}",
"orderNumber": "{{ order.orderNumber }}",
"orderCustomerAdress": "{% set billingAddress = order.addresses.get(order.billingAddressId) %}
{{ billingAddress.company }}
{{ billingAddress.firstName }} {{ billingAddress.lastName }}
{{ billingAddress.street }}
{{ billingAddress.zipcode }} {{ billingAddress.city }}
{{ billingAddress.country.translated.name }}"
}
Nachdem Du diese Konfiguration so abgespeichert hast, sollte der Workflow korrekt eingebunden sein. Sobald nun eine Bestellung in Deinem Shop eingeht, wird automatisch in Slack eine Entsprechende Nachricht generiert.Diese Erweiterung steht Dir ab dem Evolve Plan zur Verfügung. Sie erweitert den Flow Builder um weitere nützliche Funktionen.
Mit dieser Aktion kannst Du automatisiert eine Web URL aufrufen lassen und Parameter übergeben, sobald der Trigger ausgelöst wird. Ein WebHook ermöglicht es beispielsweise, einer Server-Software mitzuteilen, dass ein bestimmtes Ereignis, wie beispielsweise eine neue Bestellung, eingetreten ist. Dies kann eine Benachrichtigung sein oder eine Aufforderung an den Server, etwas mit der Information anzufangen.
Allgemein
Methode (1): Generell werden 5 verschiedene Methoden eines Webhooks unterstützt.
URL (2): Die URL gibt an, an welches Ziel der Webhook geschickt werden soll.
Beschreibung (3): In der Beschreibung kannst Du den Zweck dieses Webhooks notieren, um ihn später korrekt einordnen zu können.
Parameter (4): Je nach Ziel und Aufgabe des Webhooks kann es notwendig sein Parameter aus dem Shopsystem mit zu geben. Dies kannst Du über die Parameter tun. Gib dazu auf der linken Seite einen Parameternamen ein und wähle auf der Rechten Seite den Parameter aus, der über diesen Parameternamen an das Ziel übermittelt werden soll.
URL-Vorschau (5): Hier siehst Du eine Vorschau der URL inklusive der angegebenen Parameter, die mit ans Ziel übergeben werden.
Header-Parameter
Einige Server, die Webhooks entgegennehmen, erwarten spezielle Header Parameter. Diese können hier hinterlegt werden.
Body
Einige Server, die Webhooks entgegennehmen, erwarten einen speziellen Body. Dieser kann entweder wie der Header in Form von Parametern erfolgen, die übergeben werden oder als Code. Slack greift beispielsweise darauf zurück um Parameter zu übergeben. Wie der Code dann auszusehen hat gibt in der Regel der Zielserver vor, an den der Webhook gesendet werden soll. Im Code kann auf die Shopware Variablen zugegriffen werden.
Basic Auth
Falls das Ziel eine Authentifizierung erfordert, kann diese hier aktiviert werden und die notwendigen Zugangsdaten hinterlegt werden.