メインコンテンツへスキップ
開発者向けドキュメントを表示しています
このドキュメントは、Base44 開発者プラットフォームで作業する開発者向けです。アプリエディタ内の自動化については、アプリ用の自動化の作成を参照してください。
自動化により、バックエンド関数をスケジュールに沿って、データベースイベントに応じて、または接続されたインテグレーションが webhook イベントを送信したときに自動的に実行できます。自動化を使用して、定期的にデータを処理し、エンティティの変更を処理し、外部サービスイベントに反応し、特定のタイミングで一度きりのタスクを実行できます。 各バックエンド関数には複数の自動化を関連付けることができ、関数の function.jsonc ファイルで設定します。entry.ts または entry.js ファイルのみがある場合は、自動化を使用するためにこの設定ファイルを追加する必要があります。deploy または functions deploy を実行すると、自動化は関数コードと一緒にアトミックにデプロイされます。

自動化のタイプ

Base44 は 4 種類の自動化をサポートしています:

共通フィールド

すべての自動化に共通のフィールド

すべての自動化タイプは、次のフィールドを共有します:
フィールド必須説明
typestringはい自動化のタイプ。可能な値: "scheduled""entity"、または "connector"
namestringはい自動化の一意の識別子。
descriptionstringいいえ人間が読める説明。
function_argsobjectいいえトリガー時に関数に渡される引数。関数引数を参照してください。
is_activebooleanいいえ自動化が有効かどうか。デフォルトは true

スケジュールされた自動化に共通のフィールド

cron とシンプルなスケジュールされた自動化の両方は、これらの追加フィールドを共有します:
フィールド必須説明
schedule_modestringはいスケジュールが繰り返されるかどうか。可能な値: "recurring" または "one-time"
schedule_typestringはい使用するスケジューリング方法。可能な値: "cron" または "simple"
ends_typestringいいえ繰り返しスケジュールが停止するタイミング。可能な値: "never""on"、または "after"。デフォルトは "never"
ends_on_datestring条件付き繰り返しスケジュールが終了する日付 (含む)、UTC。ends_type"on" の場合に必要。形式: YYYY-MM-DDTHH:MM:SSZ。例: "2026-12-31T23:59:59Z"
ends_after_countnumber条件付き繰り返しスケジュールが停止する実行回数。ends_type"after" の場合に必要。

自動化の設定

function.jsonc ファイルで、以下のアプローチのいずれかを使用して自動化を設定します。すべての自動化は、上記のすべての自動化に共通のフィールドと、各タイプ固有のフィールドを使用します。

Cron

すべての自動化に共通のフィールドスケジュールされた自動化に共通のフィールドに加えて、ここにリストされている cron 固有のフィールドを使用します。 正確なスケジュール制御のために cron 式を使用するには、type"scheduled"schedule_type"cron" に設定します。 cron 自動化は、標準の 5 フィールド構文を使用します: minute hour day-of-month month day-of-week。インタラクティブな cron 式エディタと構文リファレンスについては、crontab.guru を参照してください。
フィールド必須説明
cron_expressionstringはい5 フィールドの cron 式。

Cron の例

この例では、関数を毎日 UTC 真夜中に実行します:
{
  "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 * * ?"
    }
  ]
}

シンプルスケジュール

すべての自動化に共通のフィールドスケジュールされた自動化に共通のフィールドに加えて、ここにリストされているシンプルスケジュールフィールドを使用します。 簡単なスケジューリングニーズには type"scheduled"schedule_type"simple" に設定します。 cron 式を書かずに、分、時間、日、週、または月などの間隔で繰り返しタスクを設定できます。
フィールド必須説明
one_time_datestring条件付き自動化が一度実行される日付と時刻、UTC。schedule_mode"one-time" の場合に必要。形式: YYYY-MM-DDTHH:MM:SSZ。例: "2026-02-15T10:00:00Z"
repeat_unitstring条件付き繰り返し自動化の時間単位。schedule_mode"recurring" の場合に必要。可能な値: "minutes""hours""days""weeks"、または "months"
repeat_intervalnumber条件付き実行間の間隔。repeat_unit"minutes""hours"、または "days" の場合に必要。
start_timestring条件付き自動化が実行される時刻、UTC。repeat_unit"days""weeks"、または "months" の場合に必要。形式: HH:MM
repeat_on_daysnumber[]条件付き自動化が実行される曜日。repeat_unit"weeks" の場合に必要。曜日番号の配列、0 が日曜日、6 が土曜日。
repeat_on_day_of_monthnumber条件付き自動化が実行される月の日。repeat_unit"months" の場合に必要。有効な値: 1-31

シンプルスケジュールの例

以下の例は、シンプルスケジュールで自動化をスケジュールするさまざまな方法を示しています:
{
  "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
}

エンティティイベント

すべての自動化に共通のフィールドに加えて、ここにリストされているエンティティイベントフィールドを使用します。 データベースレコードが作成、更新、または削除されたときに関数を自動的にトリガーするには、type"entity" に設定します。 エンティティ自動化は、特定のエンティティで 1 つまたは複数のイベントタイプをリッスンできます。
フィールド必須説明
entity_namestringはい監視するエンティティの名前。
event_typesstring[]はいリッスンするデータベースイベント。可能な値: "create""update""delete"。少なくとも 1 つは必須。

エンティティイベントの例

以下の例は、エンティティイベントに基づいて関数をトリガーする方法を示しています:
{
  "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"]
    }
  ]
}

コネクター自動化

すべての自動化に共通のフィールドに加えて、ここにリストされているコネクター固有のフィールドを使用します。 接続されたインテグレーションが webhook イベントを送信したときに関数をトリガーするには、type"connector" に設定します。これらを使用して、外部サービスのアクティビティにリアルタイムで反応します。例えば、新しいメールを解析したり、カレンダーの変更を同期したり、Google Drive のファイル更新に応答したりできます。 トリガー条件をオプションで追加して、定義したルールにペイロードが一致する場合のみ関数が実行されるようにイベントをフィルタリングできます。 コネクター自動化が発火すると、関数はイベントタイプ、インテグレーションの詳細、外部サービスからの生データを含む構造化された webhook ペイロードを受信します。
コネクターは、デプロイ前にプロジェクトで構成され、認可されている必要があります。セットアップ手順については、共有コネクターを参照してください。
フィールド必須説明
integration_typestringはいリッスンするコネクタータイプ識別子。有効な値については、サポートされるインテグレーションを参照してください。
eventsstring[]はい購読する 1 つ以上の webhook イベント名。コネクターごとに利用可能なイベントについては、サポートされるインテグレーションを参照してください。
resource_idstring条件付き自動化を特定のリソースにスコープします。予想される形式はコネクターによって異なります。下記のリソース ID の形式を参照してください。Google Drive のファイルスコープイベントに必要。他のコネクターではオプション。
trigger_conditionsobjectいいえ関数を実行する前に受信イベントに一致する必要があるルール。イベントが一致しない場合、実行はスキップされます。完全なリファレンスについては、トリガー条件を参照してください。

サポートされるインテグレーションとイベント

コネクターintegration_typeevents の値説明
Gmailgmailmailbox新しいメッセージ、ラベル更新、既読ステータスの変更を含む、すべてのメールボックスの変更。
Google Calendargooglecalendarevents作成、更新、削除を含むカレンダーイベントの変更。
Google Drivegoogledrivechanges追加、変更、または削除されたファイルを含む、ドライブ内の変更。
Google Drivegoogledrivefile特定のファイルへの変更 (resource_id が必要)。
Google Drivegoogledrivefile.updateファイルの内容またはプロパティが変更された (resource_id が必要)。
Google Drivegoogledrivefile.trashファイルがゴミ箱に移動された (resource_id が必要)。
Google Drivegoogledrivefile.untrashファイルがゴミ箱から復元された (resource_id が必要)。
Google Drivegoogledrivefile.deleteファイルが永久に削除された (resource_id が必要)。
Microsoft OneDriveone_driveupdated作成、変更、削除を含むファイルまたはフォルダの変更。
Microsoft Outlookoutlookcreated新しいメール、カレンダーイベント、または連絡先が作成されました。
Microsoft Outlookoutlookupdatedメール、カレンダーイベント、または連絡先が更新されました。
Microsoft Outlookoutlookdeletedメール、カレンダーイベント、または連絡先が削除されました。
Microsoft SharePointshare_pointupdatedリストアイテムまたはドキュメントが作成、変更、または削除されたとき。
Microsoft Teamsmicrosoft_teamscreated新しいチャットメッセージが投稿されたとき。
Microsoft Teamsmicrosoft_teamsupdatedチャットメッセージが更新されたとき。
Microsoft Teamsmicrosoft_teamsdeletedチャットメッセージが削除されたとき。
Slackslackmessageメッセージがチャンネルに投稿されたとき。
Slackslackmessage.imダイレクトメッセージが投稿されたとき。
Slackslackmessage.groupsメッセージがプライベートチャンネルに投稿されたとき。
Slackslackmessage.channelsメッセージがパブリックチャンネルに投稿されたとき。
Slackslackmessage.mpimメッセージが複数人 IM に投稿されたとき。
Slackslackreaction_addedメッセージにリアクションが追加されたとき。
Slackslackreaction_removedメッセージからリアクションが削除されたとき。
Slackslackmember_joined_channelユーザーがチャンネルに参加したとき。
Slackslackmember_left_channelユーザーがチャンネルを離れたとき。
Slackslackfile_sharedファイルが共有されたとき。
Gmail の mailbox イベントは、新しいメッセージだけでなく、すべてのメールボックスの変更で発火します。新しいメールが届いたときのみ関数を実行するには、トリガー条件を追加します: { "field": "has_new_messages", "operator": "equals", "value": true }
Slack コネクター自動化にはトリガー条件が必要です。Slack コネクター自動化に条件が設定されていない場合、デプロイは失敗します。

リソース ID の形式

resource_id の予想値はコネクターによって異なります:
  • Google Drive: ファイル ID。ファイルスコープイベント (filefile.updatefile.trashfile.untrashfile.delete) に必要。
  • Gmail: 監視するラベル ID のカンマ区切りリスト。省略した場合はデフォルトで "INBOX"
  • Microsoft Teams: 特定のチャンネルを監視するには {teamId}/{channelId}、特定のチャットを監視するには {chatId}
  • SharePoint: 特定のリストを監視するには {siteId}/{listId}

トリガー条件

trigger_conditions を使用して、定義したルールにペイロードが一致する場合のみ関数が実行されるように webhook イベントをフィルタリングします。条件が設定されていない場合、関数はすべての受信イベントで実行されます。完全な構成については、コネクター自動化の例を参照してください。
logic
string
条件を結合する方法。可能な値: "and" (すべて一致する必要があります)、"or" (いずれかが一致する必要があります)。デフォルトは "and"
conditions
array
必須
1 つ以上の条件オブジェクトまたはネストされた条件グループ。最大 20 個の葉条件と 5 レベルのネスト。

Webhook ペイロード

コネクター自動化が関数をトリガーすると、リクエストボディには次の構造の payload オブジェクトが含まれます。ペイロードを読み取る関数については、コネクター自動化の例を参照してください。
フィールド説明
payload.automation.idstringこの実行をトリガーした自動化の ID。
payload.automation.namestring自動化の名前。
payload.automation.typestring常に "connector"
payload.event.typestringwebhook イベント名。例: "mailbox""events"、または "changes"
payload.event.integration_typestringコネクタータイプ。例: "gmail" または "googlecalendar"
payload.event.provider_identifierstringルーティングに使用されるプロバイダーアカウント識別子。
payload.dataobject外部サービスからの生の webhook ペイロード。payload_too_largetrue の場合は null に設定。
payload.payload_too_largebooleanwebhook ペイロードが約 200 KB を超え datanull の場合に true

コネクター自動化の例

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

関数引数

自動化設定に function_args フィールドを含めることで、関数がトリガーされたときにデータを渡すことができます。これは、1 つの関数が異なる動作で複数の自動化を処理する場合に役立ちます。例えば、15 分ごとに増分実行されるが日次でフルシンクを行う同期関数などです。 これらの引数は、リクエストボディを介して関数コード内でアクセスできます。

関数引数の例

この例は、自動化設定に基づいて増分とフルシンクモードの両方を処理する関数を示しています:
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
});

自動化のデプロイ

CLI functions deploy コマンドまたは統合 deploy コマンドを使用して、自動化付きのバックエンド関数をデプロイします。functions deploy <names...> で名前で特定の関数をデプロイできます。 デプロイは関数ごとにアトミックです。関数は、Deno デプロイメントとそのすべての自動化の両方が成功した場合にのみデプロイされたと見なされます。自動化のデプロイに失敗した場合、関数のデプロイ全体がロールバックされます。 デプロイ後、CLI は関数ごとのステータスを表示します: deployed、unchanged、または error。

ダッシュボードで自動化を管理する

ダッシュボードで行った変更は、次回 functions deploy を実行したときに上書きされます。ダッシュボードとローカルファイル間には双方向同期はありません。ローカルの function.jsonc ファイルで定義された自動化が真実の源です。自動化を変更したい場合は、ローカルの function.jsonc ファイルを更新して再デプロイしてください。実行ログの監視や必要に応じた手動でのトリガーには、ダッシュボードを使用してください。
Automations タブの下で Base44 ダッシュボードで自動化を表示・管理できます。ダッシュボードから次のことができます:
  • 実行ログと履歴を表示
  • テストのために自動化を手動で実行
  • 自動化のステータスを監視

関連項目

このページは AI を使用して翻訳されました。最も正確で最新の情報については、英語版 を参照してください。