Plane wiederkehrende Aufgaben und löse Funktionen automatisch basierend auf Datenbankereignissen oder Webhook-Ereignissen von Connectors aus
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.
Entity-Ereignis-Automationen: Löse Funktionen aus, wenn Datenbankdatensätze erstellt, aktualisiert oder gelöscht werden.
Connector-Automationen: Reagiere in Echtzeit auf Ereignisse verbundener Dienste, etwa eine neue E-Mail in Gmail oder eine Dateiänderung in Google Drive.
Sowohl Cron- als auch einfache geplante Automationen teilen diese zusätzlichen Felder:
Feld
Typ
Erforderlich
Beschreibung
schedule_mode
string
Ja
Ob der Zeitplan sich wiederholt. Mögliche Werte: "recurring" oder "one-time".
schedule_type
string
Ja
Zu verwendende Zeitplanmethode. Mögliche Werte: "cron" oder "simple".
ends_type
string
Nein
Wann der wiederkehrende Zeitplan enden soll. Mögliche Werte: "never", "on" oder "after". Standardwert ist "never".
ends_on_date
string
Bedingt
Datum, an dem der wiederkehrende Zeitplan endet (einschließlich), in UTC. Erforderlich, wenn ends_type"on" ist. Format: YYYY-MM-DDTHH:MM:SSZ. Zum Beispiel "2026-12-31T23:59:59Z".
ends_after_count
number
Bedingt
Anzahl der Ausführungen, nach denen der wiederkehrende Zeitplan stoppt. Erforderlich, wenn ends_type"after" ist.
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.
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.
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.
Feld
Typ
Erforderlich
Beschreibung
one_time_date
string
Bedingt
Datum und Uhrzeit, an dem die Automation einmal läuft, in UTC. Erforderlich, wenn schedule_mode"one-time" ist. Format: YYYY-MM-DDTHH:MM:SSZ. Zum Beispiel "2026-02-15T10:00:00Z".
repeat_unit
string
Bedingt
Zeiteinheit für wiederkehrende Automationen. Erforderlich, wenn schedule_mode"recurring" ist. Mögliche Werte: "minutes", "hours", "days", "weeks" oder "months".
repeat_interval
number
Bedingt
Intervall zwischen Ausführungen. Erforderlich, wenn repeat_unit"minutes", "hours" oder "days" ist.
start_time
string
Bedingt
Tageszeit, zu der die Automation läuft, in UTC. Erforderlich, wenn repeat_unit"days", "weeks" oder "months" ist. Format: HH:MM.
repeat_on_days
number[]
Bedingt
Wochentage, an denen die Automation läuft. Erforderlich, wenn repeat_unit"weeks" ist. Array von Wochentag-Nummern, wobei 0 Sonntag und 6 Samstag ist.
repeat_on_day_of_month
number
Bedingt
Tag des Monats, an dem die Automation läuft. Erforderlich, wenn repeat_unit"months" ist. Gültige Werte: 1-31.
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.
Feld
Typ
Erforderlich
Beschreibung
entity_name
string
Ja
Name der zu überwachenden Entität.
event_types
string[]
Ja
Datenbankereignisse, auf die reagiert werden soll. Mögliche Werte: "create", "update", "delete". Mindestens 1 erforderlich.
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.
Feld
Typ
Erforderlich
Beschreibung
integration_type
string
Ja
Der Connector-Typ-Identifier, auf den reagiert werden soll. Siehe unterstützte Integrationen für akzeptierte Werte.
events
string[]
Ja
Ein oder mehrere Webhook-Ereignisnamen, die abonniert werden sollen. Siehe unterstützte Integrationen für verfügbare Ereignisse pro Connector.
resource_id
string
Bedingt
Beschränkt die Automation auf eine bestimmte Ressource. Das erwartete Format hängt vom Connector ab. Siehe Resource-ID-Formate unten. Erforderlich für datei-spezifische Google-Drive-Ereignisse. Optional für andere Connectors.
trigger_conditions
object
Nein
Regeln, die mit dem eingehenden Ereignis übereinstimmen müssen, bevor deine Funktion ausgeführt wird. Wenn das Ereignis nicht passt, wird die Ausführung übersprungen. Siehe Trigger-Bedingungen für die vollständige Referenz.
Jede Mailbox-Änderung, einschließlich neuer Nachrichten, Label-Updates und Lesestatusänderungen.
Google Calendar
googlecalendar
events
Jede Kalender-Ereignisänderung, einschließlich erstellt, aktualisiert und gelöscht.
Google Drive
googledrive
changes
Jede Änderung im Drive, einschließlich hinzugefügter, geänderter oder gelöschter Dateien.
Google Drive
googledrive
file
Jede Änderung an einer bestimmten Datei (erfordert resource_id).
Google Drive
googledrive
file.update
Dateiinhalt oder -eigenschaften geändert (erfordert resource_id).
Google Drive
googledrive
file.trash
Datei in den Papierkorb verschoben (erfordert resource_id).
Google Drive
googledrive
file.untrash
Datei aus dem Papierkorb wiederhergestellt (erfordert resource_id).
Google Drive
googledrive
file.delete
Datei dauerhaft gelöscht (erfordert resource_id).
Microsoft OneDrive
one_drive
updated
Jede Datei- oder Ordneränderung, einschließlich erstellt, geändert und gelöscht.
Microsoft Outlook
outlook
created
Eine neue E-Mail, ein Kalenderereignis oder ein Kontakt wird erstellt.
Microsoft Outlook
outlook
updated
Eine E-Mail, ein Kalenderereignis oder ein Kontakt wird aktualisiert.
Microsoft Outlook
outlook
deleted
Eine E-Mail, ein Kalenderereignis oder ein Kontakt wird gelöscht.
Microsoft SharePoint
share_point
updated
Wenn ein Listenelement oder Dokument erstellt, geändert oder gelöscht wird.
Microsoft Teams
microsoft_teams
created
Wenn eine neue Chat-Nachricht gepostet wird.
Microsoft Teams
microsoft_teams
updated
Wenn eine Chat-Nachricht aktualisiert wird.
Microsoft Teams
microsoft_teams
deleted
Wenn eine Chat-Nachricht gelöscht wird.
Slack
slack
message
Wenn eine Nachricht in einem Kanal gepostet wird.
Slack
slack
message.im
Wenn eine Direktnachricht gepostet wird.
Slack
slack
message.groups
Wenn eine Nachricht in einem privaten Kanal gepostet wird.
Slack
slack
message.channels
Wenn eine Nachricht in einem öffentlichen Kanal gepostet wird.
Slack
slack
message.mpim
Wenn eine Nachricht in einer Multi-Party-IM gepostet wird.
Slack
slack
reaction_added
Wenn eine Reaktion zu einer Nachricht hinzugefügt wird.
Slack
slack
reaction_removed
Wenn eine Reaktion von einer Nachricht entfernt wird.
Slack
slack
member_joined_channel
Wenn ein Benutzer einem Kanal beitritt.
Slack
slack
member_left_channel
Wenn ein Benutzer einen Kanal verlässt.
Slack
slack
file_shared
Wenn eine Datei geteilt wird.
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.
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.
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.
Feld
Typ
Beschreibung
payload.automation.id
string
ID der Automation, die diese Ausführung ausgelöst hat.
payload.automation.name
string
Name der Automation.
payload.automation.type
string
Immer "connector".
payload.event.type
string
Der Webhook-Ereignisname. Zum Beispiel "mailbox", "events" oder "changes".
payload.event.integration_type
string
Der Connector-Typ. Zum Beispiel "gmail" oder "googlecalendar".
payload.event.provider_identifier
string
Der Provider-Konto-Identifier, der zum Routing verwendet wird.
payload.data
object
Der rohe Webhook-Payload vom externen Dienst. Auf null gesetzt, wenn payload_too_largetrue ist.
payload.payload_too_large
boolean
Ist true, wenn der Webhook-Payload ca. 200 KB überschritten hat und datanull ist.
// Triggers the function whenever a new email arrives in Gmail.{ "name": "processInboundEmails", "entry": "entry.ts", "automations": [ { "type": "connector", "name": "on_new_gmail", "description": "Runs when a new email arrives in Gmail.", "is_active": true, "integration_type": "gmail", "events": ["mailbox"] } ]}
Ü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.
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.
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: