Zum Hauptinhalt springen
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:
FeldTypErforderlichBeschreibung
typestringJaDer Automationstyp. Mögliche Werte: "scheduled", "entity" oder "connector".
namestringJaEindeutige Kennung für die Automation.
descriptionstringNeinMenschenlesbare Beschreibung.
function_argsobjectNeinArgumente, die an die Funktion übergeben werden, wenn sie ausgelöst wird. Siehe Funktionsargumente.
is_activebooleanNeinOb die Automation aktiviert ist. Standardwert ist true.

Gemeinsame Felder für geplante Automationen

Sowohl Cron- als auch einfache geplante Automationen teilen diese zusätzlichen Felder:
FeldTypErforderlichBeschreibung
schedule_modestringJaOb der Zeitplan sich wiederholt. Mögliche Werte: "recurring" oder "one-time".
schedule_typestringJaZu verwendende Zeitplanmethode. Mögliche Werte: "cron" oder "simple".
ends_typestringNeinWann der wiederkehrende Zeitplan enden soll. Mögliche Werte: "never", "on" oder "after". Standardwert ist "never".
ends_on_datestringBedingtDatum, 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_countnumberBedingtAnzahl der Ausführungen, nach denen der wiederkehrende Zeitplan stoppt. Erforderlich, wenn ends_type "after" ist.

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.
FeldTypErforderlichBeschreibung
cron_expressionstringJa5-Feld-Cron-Ausdruck.

Cron-Beispiel

Dieses Beispiel führt eine Funktion täglich um Mitternacht UTC aus:
{
  "name": "sendDailyReport",
  "entry": "entry.ts",
  "automations": [
    {
      "type": "scheduled",
      "name": "daily_midnight_report",
      "description": "Runs every day at midnight UTC",
      "function_args": { "mode": "full_sync" },
      "is_active": true,

      "schedule_mode": "recurring",
      "schedule_type": "cron",
      "cron_expression": "0 0 * * ?"
    }
  ]
}

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.
FeldTypErforderlichBeschreibung
one_time_datestringBedingtDatum 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_unitstringBedingtZeiteinheit für wiederkehrende Automationen. Erforderlich, wenn schedule_mode "recurring" ist. Mögliche Werte: "minutes", "hours", "days", "weeks" oder "months".
repeat_intervalnumberBedingtIntervall zwischen Ausführungen. Erforderlich, wenn repeat_unit "minutes", "hours" oder "days" ist.
start_timestringBedingtTageszeit, zu der die Automation läuft, in UTC. Erforderlich, wenn repeat_unit "days", "weeks" oder "months" ist. Format: HH:MM.
repeat_on_daysnumber[]BedingtWochentage, 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_monthnumberBedingtTag des Monats, an dem die Automation läuft. Erforderlich, wenn repeat_unit "months" ist. Gültige Werte: 1-31.

Beispiele für einfache Schedules

Die folgenden Beispiele zeigen verschiedene Möglichkeiten, Automationen mit einfachen Schedules zu planen:
{
  "type": "scheduled",
  "name": "every_30_minutes",
  "description": "Runs every 30 minutes.",
  "is_active": true,

  "schedule_mode": "recurring",
  "schedule_type": "simple",
  "repeat_unit": "minutes",
  "repeat_interval": 30
}

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.
FeldTypErforderlichBeschreibung
entity_namestringJaName der zu überwachenden Entität.
event_typesstring[]JaDatenbankereignisse, auf die reagiert werden soll. Mögliche Werte: "create", "update", "delete". Mindestens 1 erforderlich.

Beispiele für Entity-Ereignisse

Die folgenden Beispiele zeigen, wie Funktionen basierend auf Entity-Ereignissen ausgelöst werden:
{
  "name": "processOrders",
  "entry": "entry.ts",
  "automations": [
    {
      "type": "entity",
      "name": "on_order_changes",
      "description": "Triggered on order create, update, or delete.",
      "function_args": { "notify_slack": true },
      "is_active": true,

      "entity_name": "orders",
      "event_types": ["create", "update", "delete"]
    }
  ]
}

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.
FeldTypErforderlichBeschreibung
integration_typestringJaDer Connector-Typ-Identifier, auf den reagiert werden soll. Siehe unterstützte Integrationen für akzeptierte Werte.
eventsstring[]JaEin oder mehrere Webhook-Ereignisnamen, die abonniert werden sollen. Siehe unterstützte Integrationen für verfügbare Ereignisse pro Connector.
resource_idstringBedingtBeschrä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_conditionsobjectNeinRegeln, 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.

Unterstützte Integrationen und Ereignisse

Connectorintegration_typeevents-WertBeschreibung
GmailgmailmailboxJede Mailbox-Änderung, einschließlich neuer Nachrichten, Label-Updates und Lesestatusänderungen.
Google CalendargooglecalendareventsJede Kalender-Ereignisänderung, einschließlich erstellt, aktualisiert und gelöscht.
Google DrivegoogledrivechangesJede Änderung im Drive, einschließlich hinzugefügter, geänderter oder gelöschter Dateien.
Google DrivegoogledrivefileJede Änderung an einer bestimmten Datei (erfordert resource_id).
Google Drivegoogledrivefile.updateDateiinhalt oder -eigenschaften geändert (erfordert resource_id).
Google Drivegoogledrivefile.trashDatei in den Papierkorb verschoben (erfordert resource_id).
Google Drivegoogledrivefile.untrashDatei aus dem Papierkorb wiederhergestellt (erfordert resource_id).
Google Drivegoogledrivefile.deleteDatei dauerhaft gelöscht (erfordert resource_id).
Microsoft OneDriveone_driveupdatedJede Datei- oder Ordneränderung, einschließlich erstellt, geändert und gelöscht.
Microsoft OutlookoutlookcreatedEine neue E-Mail, ein Kalenderereignis oder ein Kontakt wird erstellt.
Microsoft OutlookoutlookupdatedEine E-Mail, ein Kalenderereignis oder ein Kontakt wird aktualisiert.
Microsoft OutlookoutlookdeletedEine E-Mail, ein Kalenderereignis oder ein Kontakt wird gelöscht.
Microsoft SharePointshare_pointupdatedWenn ein Listenelement oder Dokument erstellt, geändert oder gelöscht wird.
Microsoft Teamsmicrosoft_teamscreatedWenn eine neue Chat-Nachricht gepostet wird.
Microsoft Teamsmicrosoft_teamsupdatedWenn eine Chat-Nachricht aktualisiert wird.
Microsoft Teamsmicrosoft_teamsdeletedWenn eine Chat-Nachricht gelöscht wird.
SlackslackmessageWenn eine Nachricht in einem Kanal gepostet wird.
Slackslackmessage.imWenn eine Direktnachricht gepostet wird.
Slackslackmessage.groupsWenn eine Nachricht in einem privaten Kanal gepostet wird.
Slackslackmessage.channelsWenn eine Nachricht in einem öffentlichen Kanal gepostet wird.
Slackslackmessage.mpimWenn eine Nachricht in einer Multi-Party-IM gepostet wird.
Slackslackreaction_addedWenn eine Reaktion zu einer Nachricht hinzugefügt wird.
Slackslackreaction_removedWenn eine Reaktion von einer Nachricht entfernt wird.
Slackslackmember_joined_channelWenn ein Benutzer einem Kanal beitritt.
Slackslackmember_left_channelWenn ein Benutzer einen Kanal verlässt.
Slackslackfile_sharedWenn 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.

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.
logic
string
Wie die Bedingungen kombiniert werden. Mögliche Werte: "and" (alle müssen passen), "or" (mindestens eine muss passen). Standardwert ist "and".
conditions
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.
FeldTypBeschreibung
payload.automation.idstringID der Automation, die diese Ausführung ausgelöst hat.
payload.automation.namestringName der Automation.
payload.automation.typestringImmer "connector".
payload.event.typestringDer Webhook-Ereignisname. Zum Beispiel "mailbox", "events" oder "changes".
payload.event.integration_typestringDer Connector-Typ. Zum Beispiel "gmail" oder "googlecalendar".
payload.event.provider_identifierstringDer Provider-Konto-Identifier, der zum Routing verwendet wird.
payload.dataobjectDer rohe Webhook-Payload vom externen Dienst. Auf null gesetzt, wenn payload_too_large true ist.
payload.payload_too_largebooleanIst true, wenn der Webhook-Payload ca. 200 KB überschritten hat und data null ist.

Beispiele für Connector-Automationen

// 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"]
    }
  ]
}

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:
Deno.serve(async (req) => {
  const body = await req.json();
  const args = body.args ?? {};

  // Use the arguments from automation config
  const mode = args.mode ?? "incremental";

  // Your function logic
});

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.