Salesforce plant, die Unterstützung für Salesforce Workflows und Lightning Processes einzustellen. Der Flow Builder ist danach das einzige Automatisierungswerkzeug von Salesforce. Mit dem Winter 2023 Release schaltet Salesforce im ersten Schritt die Möglichkeit ab, neue Workflows oder Processes zu erstellen. Zeit für uns, sich mit der Umstellung auf Flows zu beschäftigen. In diesem Beitrag beschreibe ich an Hand eines Beispiels, wie Du Salesforce Workflows auf Flows umstellen kannst. Der Beitrag wird im Laufe der Zeit noch ergänzt.
Möchtest Du den Flow Builder im Detail kennenlernen, besuche unsere Flow Builder Masterclass.
Ausgangspunkt: Der Salesforce Workflow
Ausgangspunkt ist der Workflow im folgenden Screenshot. Der Workflow feuert, wenn eine neue nicht geschlossene Opportunity erstellt wird.
- Direkt nachdem die Opportunity erstellt ist, führt der Workflow drei Aktionen aus:
- Das benutzerdefinierte Feld Next Stage Due der Opportunity wird auf Heute + 7 Tagen gesetzt. Haben wir heute den 14.11., dann wird das Next Stage Due auf den 21.11. gesetzt.
- Das Close Date der Opportunity wird auf den letzten Tag des Monats des Datums gesetzt, das eingetragen ist. Beispiel: Ist als Close Date der 17.12. eingetragen, dann setzt der Workflow das Close Date auf den 31.12.
- Der Opportunity Owner erhält eine Aufgabe, dass er die Phase der Opportunity verändern soll. Das Fälligkeitsdatum der Aufgabe ist Heute zuzüglich 7 Tage. Ist Heute der 14.11., dann ist die Aufgabe am 21.11. fällig.
- Wenn zwei Tage vor dem Next Stage Due Datum die Opportunity noch nicht geschlossen ist, führt der Workflow zwei Aktionen aus:
- Das benutzerdefinierte Feld Deal Status der Opportunity wird auf In Jeopardy gesetzt.
- Der Opportunity Inhaber erhält eine Email, dass er die Opportunity bearbeiten soll.
- Ist ein Tag nach dem Next Stage Due Datum die Opportunity immer noch nicht geschlossen, führt der Workflow drei weitere Aktionen aus:
- Das benutzerdefinierte Feld Deal Status der Opportunity wird auf Stalled gesetzt.
- Das benutzerdefinierte Feld Stalled Counter am Account wird um eins erhöht.
- Die Rolle VP of Sales erhält eine Email, dass die Opportunity stalled ist.
Um den Salesforce Workflow in Flows zu konvertieren, benötigen wir zwei Flows. Um die beste Performance zu gewinnen (bis zu 100x schneller), machen wir die sofortigen Field Updates mit einem Before-Flow.
Sofortige Feld Updates immer mit einem Before-Flow durchführen. Das schickt den Datensatz nicht noch einmal durch die Order of Execution.
Salesforce Workflows durch Flows ersetzen: Schritt 1 der Before-Flow
Im Setup gehe nun zum Flow-Builder und erstelle einen neuen Flow.
- Wähle zunächst Record-Triggered Flow aus.
- Klicke dann auf Next.
Danach musst Du für den Flow das Start-Element konfigurieren.
- Wähle das Objekt aus, auf welches Dein Flow reagieren soll. In diesem Fall Opportunity.
- Dann musst Du auswählen, dass der Flow nur bei neu angelegten Datensätzen laufen soll.
- Daraufhin musst Du die Bedigung umstellen. Im Standard reagiert der Flow immer.
- Anschließend gibst Du die Bedingung ein. Wie beim Workflow wollen wir die Aktionen nur duchrführen, wenn die Opportunity nicht als gewonnen angelegt wird.
- Danach wählst Du mit der Option Fast Field Updates, dass Dein Flow ein Before-Flow sein soll.
Nachdem Du das Start-Element konfiguriert hast, kannst Du einzelne Elemente auf die Leinwand ziehen. In diesem Fall verwenden wir noch nicht das Auto-Layout, da es derzeit noch eine Beta-Funktion ist.
- Zuerst ziehst Du das Update Records Element auf die Leinwand.
- Danach vergibst Du für das Element einen Namen und einen API Namen.
- Du wählst jetzt die Felder aus, denen Du einen Wert zuweisen möchtest.
- Da beide Werte berechnet werden, musst Du zwei Formeld anlegen.
Beim Umstellen von Salesforce Workflows auf Flows, Berechnungen in Flows immer mit Formeln durchführen. Formeln mit clc präfixen, damit wir sie von Variablen und Konstanten unterscheiden können.
Salesforce Workflows in Flows konvertieren: Formeln in Flows
Leider sind Berechnungen in Flows etwas komplizierter als in Workflows. In Workflows kannst Du Formeln direkt in den Zuweisungen verwenden. Teilweise geht das auch noch in Flows. Das kann aber auch zu ungewünschten Ergebnissen führen. Aus der Formel im Workflow:
IF(MONTH(CloseDate)=12,
DATE(YEAR(CloseDate),12,31),
DATE(YEAR(CloseDate),MONTH( CloseDate )+1,1)-1)
Wird in einem Flow die Formel:
IF(MONTH({!$Record.CloseDate})=12,
DATE(YEAR({!$Record.CloseDate}),12,31),
DATE(YEAR({!$Record.CloseDate}),MONTH({!$Record.CloseDate})+1,1)-1)
Da in einem Flow mehrere unterschiedliche Datensätze verwendet werden können, müssen wir in Formeln mit der Variablen $Record sagen, dass wir den aktuellen Opportunity-Datensatz meinen. Der Formeleditor in Flows ist leider suboptimal und verwendet dummerweise eine proportionale Schrift. Hoffen wir, dass Salesforce hier noch nachbessert.
Ob die Formel korrekt ist, prüft Salesforce erst beim Speichern des Flows.
Du kannst die Formeln inline bei der Zuweisung erstellen oder Du nutzt den Manager und erstellst sie vorab. Falls Du sie vorab erstellen möchtest, gehst Du wie folgt vor:
- Wechsele auf den Manager.
- Klicke dann auf New Ressource.
- Anschließend wählst Du den Rückgabe-Datentyp Deiner Formel aus.
- Mit Hilfe der Suche Insert a resource … kannst Du Felder, Variablen, Konstanten und anderes suchen.
- Die eigentliche Formel kannst Du dann im Editor bearbeiten.
- Klicke danach auf Done, um die Formel zu übernehmen.
Salesforce Workflows durch Flows ersetzen: Schritt 2 – Der After-Flow
Alles was erst passieren darf, nachdem der neue Datensatz fehlerfrei in der Datenbank gespeichert wurde, muss in den After-Flow. Dazu zählen das Erstellen einer Aufgabe, das Versenden einer Email und zeitbasierte Aktionen. Das folgende Bild zeigt den After-Flow im Überblick:
Der After-Flow enthält drei unterschiedliche Pfade:
- Sofort nach Speichern der Opportunity wird eine Aufgabe (Task) für den Opportunity Inhaber erstellt.
- Zwei Tage vor dem Next Stage Due Datum wird der Deal-Status auf In Jeopardy gestzt und der Opportunity Inhaber erhält eine Email.
- Ein Tag nach dem Next Stage Due Datum wird der Deal-Status auf Stalled gesetzt, der Stalled Counter am Account um eins erhöhnt und der VP of Sales per Email informiert.
In den nächsten Abschnitten sehen wir uns die einzelnen Elemente des Flows an.
Das Start-Element
Das Start-Element konfigurierst Du in zwei Schritten. Zunächst legst Du den Trigger und die Bedingungen fest.
- Als erstes wählst Du das Objekt aus, auf das der After-Flow reagieren soll.
- Danach legst Du den Trigger fest. In unserem Fall immer dann, wenn eine Opportunity erstellt wurde.
- Anschließend legst Du die Bedingungen fest, die ein Datensatz erfüllen muss. Wichtig: Diese Bedingung ist auch für die Scheduled Paths wichtig. Bevor Salesforce einen Scheduled Path ausführt, prüft es ob die Bedingung noch erfüllt ist. Ist die Bedingung nicht mehr erfüllt, führt Salesforce den Pfad nicht aus. In unserem Beispiel bedeutet das: Ist die Opportunity zwischenzeitlich gewonnen oder verloren, nimmt der Flow keine weiteren Änderungen vor und sendet auch keine Emails.
- Dann wählst Du aus, dass es sich um einen After-Flow handelt.
- Zuletzt bestätigst Du die Einstellungen.
Wenn die Bedingungen des Datensatzes nicht mehr zutreffen, entfernt Salesforce die geplanten Aktionen aus der Warteschlange (Setup->Environments->Monitoring->Time-Based Workflow). Sie werden nicht mehr ausgeführt.
Scheduled Paths im Flow für zeitbasierte Aktionen
Im zweiten Schritt legst Du so genannte Scheduled Paths an. Diese bestimmen, wann eine zeitbasierte Aktion ausgeführt wird.
- Mit der + Schaltfläche kannst Du einen neuen Scheduled Path hinzufügen. Bei Workflows waren die Time-Trigger auf 10 pro Workflow Rule beschränkt. Beim Flow-Builder konnte ich noch keine Beschränkung feststellen.
- Du kannst das Datumsfeld auswählen, auf welches Du reagieren möchtest.
- Danach kannst Du den Versatz angeben.
- Und anschließend die Zeiteinheit des Versatzes. Diese geht hinunter bis zu Minuten.
Achtung: Es gibt ein Limit pro Org. Du darfst pro 24 Stunden maximal 250.000 Scheduled Paths ausführen. Oder falls Deine Org mehr als 1250 User hat, die Anzahl der User multipliziert mit 200. Du kannst dieses Limit stark ausdehnen, wenn Du in den Advances Options eine Batch Size wählst. Salesforce fasst dann mehrere zeitbasierte Aktionen in einer Transaktion zusammen.
Eine Aufgabe im Flow anlegen
Für Salesforce Workflows gibt es die Task Action. Damit ist das Anlegen einer neuen Task ein Kinderspiel. Leider bietet der Flow Builder diese Möglichkeit nicht. Um das Anlegen einer Aufgabe von Salesforce Workflows auf Flows umzustellen, musst Du das Create Records Element verwenden.
- Um eine Aufgabe anzulegen, wählst Du aus, dass Du nur einen Datensatz anlegen möchtest.
- Du hast keine Record-Variable sondern gibst die Felder der Aufgabe einzeln an.
- Das Objekt, für welches Du einen Datensatz anlegen möchtest, ist eine Task.
- Dann weist Du den einzelnen Feldern der Task Werte zu. Wenn Du die Aufgabe in der Aktivitätszeitachse eines Datensatzes anzeigen möchtest, musst Du die WhatId oder die WhoId verwenden.
Um die Aufgabe in der Aktivitätszeitachse einer Person (Lead, Contact, User) anzuzeigen, verwende das Feld WhoId. Um die Aufgabe in der
Aktivitätszeitachse eines anderen Objekts (Account, Opportunity, Case, …) anzuzeigen, verwende das Feld WhatId.