Skip to main content
Du siehst gerade die Entwicklerdokumentation
Diese Dokumentation richtet sich an Entwickler, die mit der Base44-Entwicklerplattform arbeiten. Informationen zu Automationen im App-Editor findest du unter Automationen für deine App erstellen.
Automationen ermöglichen es Backend-Funktionen, automatisch nach einem Zeitplan, als Reaktion auf Datenbankereignisse oder wenn eine verbundene Integration ein Webhook-Ereignis sendet, zu laufen. Verwende Automationen, um Daten in regelmäßigen Abständen zu verarbeiten, Entity-Änderungen zu behandeln, auf Ereignisse externer Dienste zu reagieren oder einmalige Aufgaben zu bestimmten Zeitpunkten auszuführen. Jeder Backend-Funktion können mehrere Automationen zugeordnet werden, die in der function.jsonc-Datei der Funktion konfiguriert sind. Wenn du nur eine entry.ts- oder entry.js-Datei hast, musst du diese Konfigurationsdatei hinzufügen, um Automationen zu verwenden. Automationen werden atomar mit dem Funktionscode deployed, wenn du deploy oder functions deploy ausführst.

Automationstypen

Base44 unterstützt 4 Arten von Automationen:

Gemeinsame Felder

Gemeinsame Felder für alle Automationen

Alle Automationstypen teilen die folgenden Felder:

Gemeinsame Felder für geplante Automationen

Sowohl Cron- als auch einfache geplante Automationen teilen diese zusätzlichen Felder:

Automationskonfiguration

Konfiguriere Automationen in deiner function.jsonc-Datei mit einem der folgenden Ansätze. Alle Automationen verwenden die oben aufgeführten gemeinsamen Felder für alle Automationen sowie die für jeden Typ spezifischen Felder.

Cron

Verwende gemeinsame Felder für alle Automationen und gemeinsame Felder für geplante Automationen zusammen mit den hier aufgeführten cron-spezifischen Feldern. Setze type auf "scheduled" und schedule_type auf "cron", um Cron-Ausdrücke für präzise Zeitplansteuerung zu verwenden. Cron-Automationen verwenden die standardmäßige 5-Feld-Syntax: minute hour day-of-month month day-of-week. Siehe crontab.guru für einen interaktiven Cron-Ausdruck-Editor und eine Syntaxreferenz.

Cron-Beispiel

Dieses Beispiel führt eine Funktion täglich um Mitternacht UTC aus:

Einfacher Schedule

Verwende gemeinsame Felder für alle Automationen und gemeinsame Felder für geplante Automationen zusammen mit den hier aufgeführten Feldern für einfache Schedules. Setze type auf "scheduled" und schedule_type auf "simple" für unkomplizierte Zeitplanbedürfnisse. Konfiguriere wiederkehrende Aufgaben nach Intervall wie Minuten, Stunden, Tagen, Wochen oder Monaten, ohne Cron-Ausdrücke zu schreiben.

Beispiele für einfache Schedules

Die folgenden Beispiele zeigen verschiedene Möglichkeiten, Automationen mit einfachen Schedules zu planen:

Entity-Ereignisse

Verwende gemeinsame Felder für alle Automationen zusammen mit den hier aufgeführten Entity-Ereignis-Feldern. Setze type auf "entity", um Funktionen automatisch auszulösen, wenn Datenbankdatensätze erstellt, aktualisiert oder gelöscht werden. Entity-Automationen können auf 1 oder mehrere Ereignistypen einer bestimmten Entität reagieren.

Beispiele für Entity-Ereignisse

Die folgenden Beispiele zeigen, wie Funktionen basierend auf Entity-Ereignissen ausgelöst werden:

Connector-Automationen

Verwende gemeinsame Felder für alle Automationen zusammen mit den hier aufgeführten connectorspezifischen Feldern. Setze type auf "connector", um Funktionen auszulösen, wenn eine verbundene Integration ein Webhook-Ereignis sendet. Damit kannst du in Echtzeit auf Aktivitäten externer Dienste reagieren. Du kannst zum Beispiel eine neue E-Mail parsen, eine Kalenderänderung synchronisieren oder auf ein Datei-Update in Google Drive reagieren. Du kannst optional Trigger-Bedingungen hinzufügen, um Ereignisse zu filtern, sodass deine Funktion nur ausgeführt wird, wenn der Payload zu den von dir definierten Regeln passt. Wenn eine Connector-Automation ausgelöst wird, erhält deine Funktion eine strukturierte Webhook-Payload mit dem Ereignistyp, Integrationsdetails und den Rohdaten des externen Dienstes.
Der Connector muss in deinem Projekt konfiguriert und vor dem Deployment autorisiert sein. Siehe Shared Connectors für Einrichtungsanweisungen.

Unterstützte Integrationen und Ereignisse

Gmails mailbox-Ereignis wird bei jeder Mailbox-Änderung ausgelöst, nicht nur bei neuen Nachrichten. Um deine Funktion nur dann auszuführen, wenn neue E-Mails ankommen, füge eine Trigger-Bedingung hinzu: { "field": "has_new_messages", "operator": "equals", "value": true }.
Slack-Connector-Automationen erfordern Trigger-Bedingungen. Das Deployment schlägt fehl, wenn keine Bedingungen für Slack-Connector-Automationen gesetzt sind.

Resource-ID-Formate

Der erwartete Wert für resource_id variiert je nach Connector:
  • Google Drive: Die Datei-ID. Erforderlich für datei-spezifische Ereignisse (file, file.update, file.trash, file.untrash, file.delete).
  • Gmail: Eine kommagetrennte Liste von Label-IDs, die beobachtet werden sollen. Standardwert ist "INBOX", wenn weggelassen.
  • Microsoft Teams: {teamId}/{channelId}, um einen bestimmten Kanal zu überwachen, oder {chatId}, um einen bestimmten Chat zu überwachen.
  • SharePoint: {siteId}/{listId}, um eine bestimmte Liste zu überwachen.

Trigger-Bedingungen

Verwende trigger_conditions, um Webhook-Ereignisse zu filtern, sodass deine Funktion nur ausgeführt wird, wenn der Payload zu den von dir definierten Regeln passt. Wenn keine Bedingungen gesetzt sind, wird die Funktion für jedes eingehende Ereignis ausgeführt. Siehe Beispiele für Connector-Automationen für vollständige Konfigurationen.
string
Wie die Bedingungen kombiniert werden. Mögliche Werte: "and" (alle müssen passen), "or" (mindestens eine muss passen). Standardwert ist "and".
array
erforderlich
Ein oder mehrere Bedingungsobjekte oder verschachtelte Bedingungsgruppen. Maximal 20 Blattbedingungen und 5 Verschachtelungsebenen.

Webhook-Payload

Wenn eine Connector-Automation deine Funktion auslöst, enthält der Request-Body ein payload-Objekt mit der folgenden Struktur. Siehe Beispiele für Connector-Automationen für eine Funktion, die die Payload liest.

Beispiele für Connector-Automationen

Funktionsargumente

Übergib Daten an deine Funktion, wenn sie ausgelöst wird, indem du das Feld function_args in deine Automationskonfiguration einbeziehst. Das ist nützlich, wenn eine Funktion mehrere Automationen mit unterschiedlichem Verhalten verarbeitet, etwa eine Sync-Funktion, die alle 15 Minuten inkrementell läuft, aber täglich einen vollen Sync durchführt. Greife in deinem Funktionscode über den Request-Body auf diese Argumente zu.

Beispiel für Funktionsargumente

Dieses Beispiel zeigt eine Funktion, die basierend auf der Automationskonfiguration sowohl inkrementelle als auch vollständige Sync-Modi behandelt:

Automationen deployen

Deploye Backend-Funktionen mit ihren Automationen mit dem CLI-Befehl functions deploy oder dem vereinheitlichten Befehl deploy. Du kannst bestimmte Funktionen nach Namen mit functions deploy <names...> deployen. Das Deployment ist pro Funktion atomar. Eine Funktion gilt nur dann als deployed, wenn sowohl das Deno-Deployment als auch alle ihre Automationen erfolgreich sind. Wenn eine Automation nicht deployed werden kann, wird das gesamte Funktions-Deployment zurückgerollt. Nach dem Deployment zeigt die CLI den Status pro Funktion: deployed, unchanged oder error.

Automationen im Dashboard verwalten

Alle Änderungen im Dashboard werden beim nächsten Ausführen von functions deploy überschrieben. Es gibt keine Zwei-Wege-Synchronisierung zwischen Dashboard und deinen lokalen Dateien. Automationen, die in deinen lokalen function.jsonc-Dateien definiert sind, sind die Quelle der Wahrheit.Wenn du Änderungen an deinen Automationen vornehmen möchtest, aktualisiere deine lokalen function.jsonc-Dateien und deploye erneut. Verwende das Dashboard zum Überwachen von Ausführungslogs und zum manuellen Auslösen von Automationen bei Bedarf.
Sieh dir deine Automationen im Base44-Dashboard unter dem Tab Automations an und verwalte sie. Im Dashboard kannst du:
  • Ausführungslogs und Historie ansehen
  • Automationen manuell zum Testen ausführen
  • Automationsstatus überwachen

Siehe auch

Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die englische Version.