Die Standardmittel von Bitrix24 decken einfache Bedingungen ab: Ein Roboter auf einer Phase löst nach einem Filter aus, der Block „Bedingung" im Workflow-Designer verzweigt. Doch die Logik „wenn der Betrag über 100.000 liegt und die Quelle die Website ist, dann das eine, sonst das andere" verwandelt sich in einen Baum verschachtelter Verzweigungen. Drei Roboter von Roboteka reduzieren solche Prüfungen auf eine Aktion: Die „Komplexe Bedingung" verknüpft bis zu vier Prüfungen mit AND/OR/NOT, die „Ternäre Auswahl" gibt einen von zwei Werten zurück, und „Feldbefüllung prüfen" antwortet mit Y/N zu jedem beliebigen CRM-Feld.
Warum reichen die Standardbedingungen nicht aus?
Bei einem Roboter auf einer Phase lässt sich eine Startbedingung festlegen, aber das ist ein Filter: auslösen oder nicht, ohne komplexe Logik im Inneren. Im Workflow-Designer gibt es den Block „Bedingung", die Kombination „(A und B) oder (C und D)" lässt sich jedoch nur durch verschachtelte Verzweigungen zusammenbauen — zwei, drei Zweige, die schwer zu lesen und zu ändern sind. Die Hauptfehlerquelle ist das Duplizieren von Aktionen über die Zweige: Sie ändern den Benachrichtigungstext im einen und vergessen ihn im anderen. Bequemer ist es, die gesamte Bedingung mit einer einzigen Aktion zu berechnen, ein Y/N-Kennzeichen zu erhalten und im Schema nur eine Verzweigung zu belassen. Wie die Prozesse selbst aufgebaut sind — im Überblick zu Bitrix24-Geschäftsprozessen.
Wie verknüpft man mehrere Prüfungen: AND, OR, NOT?
Der Roboter „Komplexe Bedingung (AND / OR / NOT)" nimmt im flachen Modus bis zu vier Tripel „Wert A — Operator — Wert B" und die Verknüpfungslogik entgegen: AND — alle müssen erfüllt sein, OR — eine genügt. Für beliebige Verschachtelung gibt es den JSON-Modus: Das Feld „Bedingungen als JSON" der Form {"and":[{"a":"…","op":"eq","b":"…"},{"or":[…]}]} hat Vorrang vor dem flachen. Die Ausgabe ist eine einzige — „Ergebnis (Y/N)". Wohin schreiben: Üblicherweise stellt man direkt nach dem Roboter die Standard-„Bedingung" mit der Prüfung „Ergebnis gleich Y" — eine Verzweigung statt eines Baums. Ist in einem flachen Tripel kein Operator angegeben, wird es einfach übersprungen, daher müssen nicht alle vier Zeilen ausgefüllt werden. Beispiel: Vor der Überführung eines Deals auf die Phase „Genehmigung" prüfen, dass der Betrag über dem Schwellenwert liegt und die Quelle die Website ist; bei N wird der Deal mit einer Benachrichtigung an den Mitarbeiter zurückgegeben.
Welche Operatoren sind verfügbar und warum eq statt ==?
Operatoren werden über Wort-Aliase angegeben: eq, neq, gt, lt, gte, lte — gleich, ungleich, größer, kleiner und die nicht strengen Vergleiche; dazu contains, not_contains, starts_with, ends_with, is_empty, not_empty und matches für reguläre Ausdrücke. Die Zeichenformen == und > sollte man in den Feldern des Roboters nicht schreiben: Die Geschäftsprozess-Engine fasst einen solchen Wert als Ausdruck auf und wertet ihn schon vor dem Start des Roboters aus — bei der Prüfung kommt bereits das Ergebnis der Auswertung an, nicht der Operator. Zahlen werden als Zahlen verglichen: 10 ist größer als 9, obwohl als Zeichenkette „10" kleiner ist. Zeichenketten werden standardmäßig ohne Berücksichtigung der Groß-/Kleinschreibung verglichen — für einen strengen Vergleich gibt es ein gesondertes Kennzeichen. Eine weitere Bitrix24-Besonderheit: Ein unausgefülltes Feld wird durch eine leere Zeichenkette ersetzt, nicht durch „nichts", daher prüft man Leere mit dem Operator is_empty und nicht durch Vergleich mit einem leeren Wert.
Wie wählt man einen von zwei Werten ohne Verzweigungen?
„Ternäre Auswahl (wenn-dann-sonst)" — die Konstruktion „wenn — dann — sonst" in einer Aktion. Eingabe: Wert A, Operator, Wert B (für is_empty und not_empty nicht erforderlich) und zwei Antwortvarianten — „zurückgeben, wenn wahr" und „zurückgeben, wenn falsch". Es gibt zwei Ausgaben: den ausgewählten Wert und das Kennzeichen „Bedingung erfüllt" Y/N. Das Ergebnis wird in ein Deal-Feld, einen Benachrichtigungstext oder eine Prozessvariable geschrieben. Beispiel: Ist der Rabatt größer als 20, wird in die E-Mail der genehmigende Leiter eingesetzt, sonst der Mitarbeiter. Ein Roboter ersetzt eine Verzweigung mit zwei fast identischen Aktionen, die man sonst paarweise pflegen müsste. Das Y/N-Kennzeichen bleibt dabei separat verfügbar — anhand dessen lässt sich der Prozess zusätzlich aufzweigen, ohne die Bedingung ein zweites Mal zu berechnen.
Wie prüft man, ob ein Feld befüllt ist?
„Feldbefüllung prüfen" deckt den häufigsten Sonderfall einer Bedingung ab. Eingabe: der Entitätstyp — deal, contact, company oder lead, deren ID und der Feldcode. Es gibt zwei Ausgaben: das Kennzeichen „Feld befüllt" Y/N und den aktuellen Feldwert; Mehrfachwerte werden mit Komma verbunden. Beispiel: Ein Lead wird ohne Telefon nicht in Bearbeitung überführt; ein Deal geht mit leerem Feld „Lieferadresse" nicht in den Versand. Das Kennzeichen wird in der Standardbedingung verglichen, und der Feldwert lässt sich gleich in die Benachrichtigung an den Verantwortlichen einsetzen — eine gesonderte Abfrage der Karte ist nicht nötig, der Roboter hat sowohl die Tatsache als auch den Inhalt bereits zurückgegeben.
Fazit
Mehrere Prüfungen auf einmal — „Komplexe Bedingung"; Auswahl eines von zwei Werten — „Ternäre Auswahl"; Kontrolle der Befüllung — „Feldbefüllung prüfen". Operatoren in den Feldern bitte als Wörter schreiben: eq, gt, lt. Diese und benachbarte Roboter zur Logiksteuerung sind in der Kategorie Prozesssteuerung gesammelt. Nichts Passendes gefunden — beschreiben Sie die Aufgabe, wir bauen den Roboter kostenlos und fügen ihn dem gemeinsamen Katalog hinzu.