Salesforce Blog

Salesforce Flow #1: Wie startet man einen Salesforce Flow?

Inhaltsverzeichnis

Mit dem kommenden Spring 21 Release sind Salesforce Flows so mächtig, dass sie Workflows und den Process Builder ablösen können. Dies ist der erste Blog-Beitrag, um die Möglichkeiten der Flows zu erklären. Zunächst geht es um die unterschiedlichen Möglichkeiten, einen Salesforce Flow zu starten.

Alle Möglichkeiten, einen Salesforce Flow zu starten.
Alle Möglichkeiten, einen Flow zu starten

Salesforce Screen Flows starten

Workflows und der Process Builder können nur im Hintergrund Datensätze verändern. Der Flow Builder kann mehr. Mit Screen Flows könnt ihr Anwender in die Automatisierung einbeziehen. Das bedeutet auch, dass ein Anwender den Flow starten muss. Entweder durch den Klick auf einen Button oder indem der Flow in eine Lightning Page eingebettet ist.

Quick Action Detailseite

Ihr könnt einen Flow im Object Manager an eine Quick Action binden. Diese Quick Action könnt ihr dann entweder in das Page Layout eines Objekts aufnehmen oder direkt in der Lightning Record Page verwenden. Der Anwender erhält dadurch einen zusätzlichen Button. Er startet den Flow, indem er auf den Button klickt.

Quick Action zum starten eines Salesforce Flow
Salesforce Flow als Quick Action

Achtung: Bei Cases zeigt Salesforce die Quick Actions nicht als Button an sondern im so genannten Feed.

Bei Cases: Flow als Quick Action im Feed
Bei Cases: Flow als Quick Action im Feed

Lightning Page

Was die meisten nicht wissen: Ihr könnt einen Flow mit den Lightning App Builder direkt in eine Seite einbinden. Salesforce startet den Flow automatisch, sobald ein Anwender auf die Seite navigiert. Mit dieser Technik lassen sich viele spannende Automatisierungen erstellen. Beispiele:

  • Eine Lister der in den letzten 7 Tagen erstellten und noch offenen Cases für einem Account anzeigen.
  • Speichern eines Log-Datensatzes jedesmal wenn ein Anwender sich einen bestimmten Datensatz ansieht.
  • Abfrage der Telefonnummer des CEO eines angezeigten Accounts.
Screen Flow in eine Record Page eingebunden
Screen Flow in eine Record Page eingebunden

Related List Button

Man kann einen Flow auch über einen Button starten, der auf einer Related List platziert ist. Dazu muss man den Flow über seine URL aufrufen (Beispielsweise /flow/EnterName) und am Child Objekt definieren. Im Beispiel den Button beim Contact definieren und dann im Account Page Layout bei der Related Lists der Contacts aufnehmen.

Salesforce Flow mit einem Related List Button starten.
Salesforce Flow mit einem Related List Button starten

Bei den Related List Buttons gibt es zwei Dinge zu beachten:

  1. Der Flow Screen nimmt anschließend den gesamten Bildschirm in Anspruch. Möchtet ihr dass der Flow in einem modalen Dialog “über” der Datensatzseite erscheint, müsst Ihr eine kleine Lightning Komponente programmieren. Dazu schreibe ich noch mal gesondert einen Blog Beitrag.
  2. Wenn ihr Enhanced Related Lists aktiviert habt, kann der Anwender einzelne Datensätze in der related List markieren und in den Flow als Parameter hinein geben. Dazu benötigt ihr eine kleine Visualforce Page. Auch das werde ich in einem gesonderten Blog Beitrag beschreiben.

List View Button startet einen Salesforce Flow

Es ist im Augenblick noch etwas verwirrend. Obwohl es im Objektmanager einen Eintrag für Lightning Search Layouts gibt, kann man darüber nicht die Buttons in der Listenansicht konfigurieren. Dazu müsst ihr noch über das “Search Layout for Salesforce Classic” gehen. Dort könnt Ihr im Eintrag “List View” angeben, welche Buttons Salesforce in der Listenansicht anzeigt. Achtung: Das gilt nicht für die Standardlistenansicht “Recently Viewed”.

List View Button startet einen Salesforce Flow
List View Button startet einen Flow

Wird ein Flow über einen List View Button gestartet, gilt das Gleiche wie für Related List Buttons. Der Flow nimmt das gesamte Fenster ein. Möchtet ihr dass der Flow in einem modalen Dialog “über” der Datensatzseite erscheint, müsst Ihr eine kleine Lightning Komponente programmieren. Ebenso kann der Anwender einige Datensätze in der Listenansicht auswählen und als Parameter in den Flow geben. Auch dafür benötigt ihr eine Visualforce Seite.

Salesforce Flows durch Schedule-Triggered Flows starten

Schedule-Tiggered Flows sind im Winter 20 Release eingeführt worden. Sie sind eine weitere Möglichkeit, einen Salesforce Flow zu starten. Mit ihnen könnt ihr viele APEX-Batch Jobs ersetzen. Außerdem kann man sie anstelle von Time Based Workflows oder Time Based Flows einsetzen. Im Prinzip verarbeiten sie Datensätze eines Objekts zu einer bestimmten Zeit. Beispielsweise könnt ihr alle noch offenen Opportunities mit dem Flow bearbeiten.

Gegenüber Time Based Workflows haben Schedule-Triggered Flows vor allem dann einen Vorteil, wenn sie die Bedingungen des Triggers ändern. Ein Time Based Workflow merkt sich den Zeitpunkt in einer Warteschlange. Ändert man die Bedingungen in der Workflow Regel, muss man händisch die Warteschlange überprüfen. Das kann bei einem Schedule-Triggered Flow nicht passieren.

Zunächst legt ihr fest, in welcher Frequenz Salesforce den Flow ausführt. Dabei habt ihr nur die beiden Möglichkeiten täglich oder wöchentlich.

Schedule zum starten eines Salesforce Flow
Schedule-Triggered Flow: Schedule

Im zweiten Schritt legt ihr dann fest, welche Datensätze eines Objekts der Flow bearbeitet. Für jeden Datensatz, der die Bedingungen erfüllt, startet Salesforce eine Flow Instanz (Interview).

Schedule-Triggered Flow: Objekt und Bedingungen
Schedule-Triggered Flow: Objekt und Bedingungen

Achtung Schedule-Triggered Flows haben einige Einschränkungen. Die Wichtigsten sind:

  • Die Anzahl der Datensätze, welche pro 24 Stunden verarbeitet werden können, ist begrenzt. Entweder 250.000 Datensätze oder die Anzahl der Salesforce Lizenzen multipliziert mit 200. Im Prinzip kann man sagen, pro User und Tag könnt ihr maximal 200 Datensätze in einem Schedule-Triggered Flow verarbeiten.
  • Datumswerte in den Filterbedingungen müssen absolut sein. Möchtet ihr alle Opportunities verarbeiten, die gestern geschlossen wurden, geht das nicht so einfach. Dazu müsst ihr eine boolesche Formel für die Opportunity erstellen und diese im Flow abfragen.

Autolaunched Flows

Bei Autolaunched Flows ist der Name Programm. Sie werden als Subflows von anderen Flows aufgerufen. Oder eine APEX Methode ruft sie programmatisch auf. Sie können hervorragend verwendet werden, um Automatismen wiederzuverwenden. Ihr könnt sie -außer in Before Record-Triggered Flows- von allen anderen Flows aufrufen.

Salesforce Flow durch Record-Triggered Flows starten

Record-Triggered Flows sind der zukünftige Ersatz für Workflows und den Process Builder. Bei ihnen führt eine Datensatzänderung dazu, einen Salesforce Flow zu starten. Flows können dabei zwischen Before und After Triggern unterscheiden. Der Unterschied der beiden Optionen geht auf die Order of Execution in Salesforce zurück. Stark vereinfacht veranschaulicht das folgende Bild die Order of Execution.

Salesforce Order of Execution.
Salesforce Order of Execution

Die tatsächliche Order of Execution ist wesentlich komplexer. Sie enthält 13 verschiedene Automatisierungsschritte. Bei Flows ist wichtig: Before Save Flows führen nicht dazu, dass der Datensatz erneut durch die Automatisierungsschritte läuft. After Save Flows schicken den Datensatz erneut durch die Automatisierungsschritte. Before Save Flows sind bis zu 16 Mal schneller als Workflow Rules. Und Before Save Flows sind bis zu 130 Mal schneller als der Process Builder. Wenn Eure Benutzer in Salesforce of das “Spinning Wheel” sehen, ist es an der Zeit, über Before Save Flows nachzudenken.

In Record-Triggered Flows könnt ihr keine Screen Elemente verwenden!

Before Save Flows

Ein Before Save Flow kann auf vier verschiedene Ereignisse reagieren:

  • Before a Record is created
  • Before a Record is updated
  • Before a Record is created or updated
  • Before a Record is deleted

Die ersten drei sind relativ einfach zu verstehen. Im Prinzip geht es darum, zusätzliche Felder auf dem gerade zu speichernden Datensatz zu berechnen. Dabei kann man auch lesend auf andere Datensätze zugreifen. Ein gutes Beispiel ist, den Account Owner anhand einer Tabelle zu setzen, die jeder Branche einen Verantwortlichen zuweist. Salesforce schränkt die Möglichkeiten des Flows ein, um Rekursionen zu verhindern.

Before Save Flows: Eingeschränkte Funktionen.
Before Save Flows: Eingeschränkte Funktionen

Der Before Delete Flow kann mehr Funktionen verwenden. Er kann genutzt werden, um verknüpfte Datensätze zu löschen. Möchtet ihr beispielsweise einen Contact Datensatz löschen und der Contact hat noch zugewiesene Cases, verhindert Salesforce das Löschen des Contacts. Mit einem Before Delete Flow können die Cases gelöscht werden, sodass auch der Contact gelöscht werden kann.

After Save Flows

After Save Flows laufen, nachdem ein Datensatz in der Datenbank gespeichert wurde. Den Datensatz, der den Flow getriggert hat, solltet ihr im After Save Flow nicht mehr ändern. Aber abhängige Datensätze könnt ihr noch ändern. Beispielsweise könnt ihr die Postanschrift aller Ansprechpartner eines Accounts ändern, wenn sich die Rechnungsanschrift des Accounts ändert.

After Save Flows entsprechen am ehesten dem, was ihr mit dem Process Builder machen konntet. Nur sind sie ca. 20% schneller als der Process Builder. Allerdings sind sie ca. 40% langsamer als Workflow Rules.

Bei den After Save Flows könnt ihr auf drei Ereignisse reagieren:

  • After a Record is Created
  • After a Record is Updated
  • After a Record is Created or Updated

Time Based Flows

Eine weitere Möglichkeit einen Salesforce Flow zu starten sind Time Based Flows. Ihr könnt sie einen After Save Flow (und nur an einen After Save Flow) “dranhängen”. Das geht ab dem Spring 21 Release von Salesforce. Beispielsweise könnt ihr den Inhaber einer Opportunity 3 Tage vor dem Schlusstermin daran erinnern, die Opportunity zu bearbeiten.

Scheduled Paths zum starten eines Salesforce Flows.
Time Based Flows

Plattform Event-Triggered Flows

Plattform Events sind in Salesforce im Prinzip Datensätze in einem Custom Object. Allerdings sind diese Datensätze nicht wie normale Datensätze zu behandeln. Sie können nicht editiert oder gelöscht werden. Aus Sicht des Flow Builders ist ein Plattform Event nichts anderes als ein After Record Created Event.

Das kann Dich auch interessieren

Immer einen Schritt voraus

Die nächsten Kurstermine

ADX211
08.04.2024
DEX602
08.04.2024
ADX201
15.04.2024

Noch nicht im Verteiler?

Salesforce Profis

Bei Fragen sind wir da

Ähnliche Beiträge

Anfrage

Salesforce News

verveforce-icon-grau