開発者向けドキュメントを表示しています
このドキュメントは、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。
シンプルスケジュールの例
以下の例は、シンプルスケジュールで自動化をスケジュールするさまざまな方法を示しています:
Every 30 minutes
Weekdays at 9am
One-time execution
{
"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 つは必須。
エンティティイベントの例
以下の例は、エンティティイベントに基づいて関数をトリガーする方法を示しています:
All order events
New records only
{
"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 の値説明 Gmail gmailmailbox新しいメッセージ、ラベル更新、既読ステータスの変更を含む、すべてのメールボックスの変更。 Google Calendar googlecalendarevents作成、更新、削除を含むカレンダーイベントの変更。 Google Drive googledrivechanges追加、変更、または削除されたファイルを含む、ドライブ内の変更。 Google Drive googledrivefile特定のファイルへの変更 (resource_id が必要)。 Google Drive googledrivefile.updateファイルの内容またはプロパティが変更された (resource_id が必要)。 Google Drive googledrivefile.trashファイルがゴミ箱に移動された (resource_id が必要)。 Google Drive googledrivefile.untrashファイルがゴミ箱から復元された (resource_id が必要)。 Google Drive googledrivefile.deleteファイルが永久に削除された (resource_id が必要)。 Microsoft OneDrive one_driveupdated作成、変更、削除を含むファイルまたはフォルダの変更。 Microsoft Outlook outlookcreated新しいメール、カレンダーイベント、または連絡先が作成されました。 Microsoft Outlook outlookupdatedメール、カレンダーイベント、または連絡先が更新されました。 Microsoft Outlook outlookdeletedメール、カレンダーイベント、または連絡先が削除されました。 Microsoft SharePoint share_pointupdatedリストアイテムまたはドキュメントが作成、変更、または削除されたとき。 Microsoft Teams microsoft_teamscreated新しいチャットメッセージが投稿されたとき。 Microsoft Teams microsoft_teamsupdatedチャットメッセージが更新されたとき。 Microsoft Teams microsoft_teamsdeletedチャットメッセージが削除されたとき。 Slack slackmessageメッセージがチャンネルに投稿されたとき。 Slack slackmessage.imダイレクトメッセージが投稿されたとき。 Slack slackmessage.groupsメッセージがプライベートチャンネルに投稿されたとき。 Slack slackmessage.channelsメッセージがパブリックチャンネルに投稿されたとき。 Slack slackmessage.mpimメッセージが複数人 IM に投稿されたとき。 Slack slackreaction_addedメッセージにリアクションが追加されたとき。 Slack slackreaction_removedメッセージからリアクションが削除されたとき。 Slack slackmember_joined_channelユーザーがチャンネルに参加したとき。 Slack slackmember_left_channelユーザーがチャンネルを離れたとき。 Slack slackfile_sharedファイルが共有されたとき。
Gmail の mailbox イベントは、新しいメッセージだけでなく、すべてのメールボックスの変更で発火します。新しいメールが届いたときのみ関数を実行するには、トリガー条件を追加します: { "field": "has_new_messages", "operator": "equals", "value": true }。
Slack コネクター自動化にはトリガー条件が必要です。Slack コネクター自動化に条件が設定されていない場合、デプロイは失敗します。
リソース ID の形式
resource_id の予想値はコネクターによって異なります:
Google Drive: ファイル ID。ファイルスコープイベント (file、file.update、file.trash、file.untrash、file.delete) に必要。
Gmail: 監視するラベル ID のカンマ区切りリスト。省略した場合はデフォルトで "INBOX"。
Microsoft Teams: 特定のチャンネルを監視するには {teamId}/{channelId}、特定のチャットを監視するには {chatId}。
SharePoint: 特定のリストを監視するには {siteId}/{listId}。
トリガー条件
trigger_conditions を使用して、定義したルールにペイロードが一致する場合のみ関数が実行されるように webhook イベントをフィルタリングします。条件が設定されていない場合、関数はすべての受信イベントで実行されます。完全な構成については、コネクター自動化の例 を参照してください。
条件を結合する方法。可能な値: "and" (すべて一致する必要があります)、"or" (いずれかが一致する必要があります)。デフォルトは "and"。
1 つ以上の条件オブジェクトまたはネストされた条件グループ。最大 20 個の葉条件と 5 レベルのネスト。 webhook ペイロードへのドット区切りパス。例えば、"status" は payload.data.status を読み取り、"sender.email" は payload.data.sender.email を読み取ります。
フィールド値を比較する方法。 演算子 説明 equalsフィールド値が value と完全に一致。 not_equalsフィールド値が value と一致しない。 containsフィールド値が部分文字列として value を含む。 not_containsフィールド値が部分文字列として value を含まない。 starts_withフィールド値が value で始まる。 ends_withフィールド値が value で終わる。 gtフィールド値が value より大きい。 gteフィールド値が value 以上。 ltフィールド値が value より小さい。 lteフィールド値が value 以下。 in_listフィールド値が value (配列) 内のアイテムのいずれか。 not_in_listフィールド値が value (配列) 内のアイテムのいずれでもない。 existsフィールドが存在し、null ではない。value は不要。 not_existsフィールドが null または欠落。value は不要。 is_emptyフィールドが null、空文字列、空配列、または空オブジェクト。value は不要。 is_not_emptyフィールドが null、空文字列、空配列、または空オブジェクトではない。value は不要。
比較する値。exists、not_exists、is_empty、is_not_empty には不要。
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_large が true の場合は null に設定。 payload.payload_too_largebooleanwebhook ペイロードが約 200 KB を超え data が null の場合に true。
コネクター自動化の例
Basic connector automation
Single trigger condition
Nested trigger conditions
Reading the payload
// 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 分ごとに増分実行されるが日次でフルシンクを行う同期関数などです。
これらの引数は、リクエストボディを介して関数コード内でアクセスできます。
関数引数の例
この例は、自動化設定に基づいて増分とフルシンクモードの両方を処理する関数を示しています:
Function code
Automation config
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 を使用して翻訳されました。最も正確で最新の情報については、
英語版 を参照してください。