Database trigger event(データベーストリガーイベント)

概要

特定のデータベースの変更が発生したとき、サーバーサイドで実行されるイベントです。変更の方法がどうであれ(ワークフロー/API 呼び出し/手動編集など)、発動します。

Database trigger events は、バックエンドワークフローエディタで定義されます。指定したタイプのデータ(Thing)が変更されたとき、その変更を監視して “Only when…” 条件が真であればワークフローが実行されます。

  • Thing(データタイプ)を設定して、どのデータ変更を監視するか指定します。
  • “Only when…” フィールドで、どのような変更のときに発火させるかの条件を設定します。

「Thing before change」と「Thing now」

このイベントでは、次の2つのデータソースが利用可能になります。

  • Thing before change — 変更前のデータ状態
  • Thing now — 変更後のデータ状態

これらは、“Only when…” の条件や、イベント発生後のアクションの中で参照できます。


Created / Deleted(作成・削除されたとき)

変更が「作成」「削除」の場合もトリガーされます。

  • Created:Thing が新しく作られたとき。変更前(Thing before change)は空の値になります。
  • Deleted:Thing が削除されたとき。変更後(Thing now)は空の値になります。

注意事項

この種のイベントを使う際の注意点は以下のとおりです。

  • 一つのワークフロー内で複数回データを変更しても、トリガーは1回だけ発火
    → Thing before change は最初の状態、Thing now は最後の状態を反映します。
  • プライバシールール(Privacy rules)の扱い
    → Database trigger イベントは管理者権限で実行され、プライバシールールは適用されません。検索も current user の権限ではなく、すべてのデータにアクセスされます。
  • トリガーから別のトリガーを直接呼び出せない
    → 例えばワークフロー内でデータが変わると、その変化で他のトリガーイベントが起動することはありません。もしそのようなことをしたければ、トリガーイベントの中でカスタムイベントか API ワークフローをスケジュールするなどの方法を使います。
  • データソースの制限
    → “Only when…” の条件では Thing now と Thing before change の2つしか使えず、通常の (他のワークフローで使うような) 全データソースが使えるわけではありません。アクション内ではそれ以外のデータソースも使えるようになります。
  • ワークロード(Workload)への影響
    → トリガーが頻繁に発生するような変更なら負荷が大きくなります。条件を厳しくして、必要なときだけ動かすように設計することが重要です。

その他設定

  • Event name(イベント名):ワークフローにわかりやすい名前をつけます。後でこのトリガーイベントを識別するために使われます。
  • Type of thing(対象の Thing の種類):どのデータタイプ(Thing)を監視するかを指定します。
  • Timezone selection(タイムゾーンの選択):静的または動的な代替タイムゾーンを設定して、バックエンドトリガーのタイムゾーンをオーバーライドできます。アプリの一般設定で “Enable timezone override controls” を有効にしておく必要があります。

Recurring event(定期イベント)

概要

Bubbleサーバー上で、特定の間隔でトリガーされるイベントです。


Recurring event(定期イベント)

Recurring event は、バックエンドワークフローエディタで定義されます。
以下のスケジュールが設定可能です:

  • None(なし)
  • Daily(毎日)
  • Weekly(毎週)
  • Monthly(毎月)
  • Quarterly(四半期ごと)
  • Yearly(毎年)

スケジュールは “Set/cancel a recurring event” アクションで初めて設定されたときから計算が始まります。

Event name(イベント名)

ワークフローに名前を入力します。この名前は後で Trigger a custom event や Set/cancel a recurring event アクションでこのイベントを選ぶときに使われます。名前自体はワークフローの実行には影響しません。

Type of thing(対象の Thing の種類)

定期イベントを実行する対象(Thing)を指定します。

Ignore privacy rules when running the workflow(ワークフロー実行時にプライバシールールを無視)

  • 通常、定期ワークフローは“現在のユーザー”の文脈で実行され、プライバシールールが適用されます。
  • それらをバイパスして、認証なしでもデータの全アクセス権を持つ管理者ユーザーとして実行させたい場合、このチェックボックスを有効にします。

Timezone selection(タイムゾーンの選択)

代替のタイムゾーンを静的または動的な選択で設定することで、定期イベントのタイムゾーンをオーバーライドできます。
この設定を利用するには、まずアプリの一般設定で “Enable timezone override controls” を有効にしておく必要があります。


Plan limits(プランごとの制限)

定期イベントには、データベース中の各Thing(対象)ごとの定期イベント数の制限があります。プランごとの上限は以下の通りです。

プラン一つの Thing(対象)あたり許可される定期イベント数
Starter1
Growth5
Team20

Custom events(カスタムイベント)

概要

他のワークフローからトリガーできるイベントです。


Create a custom event…(カスタムイベントを作成する)

Bubble では、複数のワークフローで同じロジックを再利用できるようにカスタムワークフローを定義できます。

  • Create a custom event はワークフローを定義するためのトリガーです。
  • 名前とラベルを付けることができます。
    • 名前 (Name):他のワークフローからこのカスタムイベントをトリガーするときに使うもの。
    • ラベル (Label):Bubble のワークフローエディタ上で表示されるもの。
  • カスタムイベントをトリガーする方法は2つあります:
    • Trigger a custom event アクション
    • Schedule a custom event アクション

Event name(イベント名)

ワークフローの名前を入力します。この名前は、Trigger a custom event や Schedule a custom event アクションを使うときに、カスタムイベントのリストに表示されます。


Call parameters(呼び出しパラメータ)

Parameters(パラメータ)

  • カスタムイベントをトリガーするときに渡すパラメータを定義できます。まず、カスタムイベント自体にパラメータを定義しておく必要があります。
    • Name:パラメータに付ける任意の名前。
    • Type:User、Text、Number など、どの型のデータを期待するか。
    • Is a list/array:チェックを入れると、リスト(複数の User や Text など)を受け取れるようになります。
    • Optional:チェックを入れると、そのパラメータは必須ではなくなります。チェックなしだと、Trigger a custom event または Schedule a custom event アクションでそのパラメータを指定しないと Bubble の問題追跡機能でエラーになります。

Return values(返り値)

  • カスタムワークフローで計算結果などを返したい場合は、返り値の型とラベルを指定します。
  • パラメータと同様に、返り値も任意のデータ型が使えます。
  • カスタムワークフローの中で Return data アクションを使ってデータを返します。
    • 条件を使って、いつデータを返すかを制御できます。
  • Return data アクションが有効に実行されると、その時点でワークフローの実行は停止します。

Element events(要素イベント)

概要

ページ上の要素をユーザーが操作したときに発生するイベントです。


An element is clicked(要素がクリックされた時)

このイベントは、ユーザーが要素をクリックしたときにトリガーされます。
テキスト、ボタン、画像、アイコンなど、ほとんどの視覚的要素で使用可能です。


An input’s value is changed(入力要素の値が変わった時)

このイベントは、入力要素の値が変わるときに発生します。
テキスト入力の場合、ユーザーが入力後にフォーカスを外したときに発動します。


A map’s marker is clicked(マップのマーカーがクリックされた時)

このイベントは、ユーザーがマップのマーカーをクリックしたときにトリガーされます。
“このマップの現在のマーカー (this map’s current marker)” は、ユーザーがクリックしたマーカーを指します。


A popup is opened(ポップアップが開かれたとき)

このイベントは、ポップアップが開かれたときに発生します。次のいずれかの場合です:

  • Show an element/Toggle an element のアクションによって開く
  • Animate an element アクションが要素の表示状態を “表示” にする終わり方をする

A popup is closed(ポップアップが閉じられたとき)

このイベントは、ポップアップが閉じられたときに発生します。次のいずれかの場合です:

  • Hide an element/Toggle an element のアクションで閉じる
  • Animate an element アクションが要素の表示状態を “非表示” にする終わり方をする
  • ユーザーが「Esc」キーを押したとき

An element has an error running a workflow(指定した要素によって起動されたワークフローでエラーが発生したとき)

このイベントは、指定した要素によって起動されたワークフローでエラーが発生したときにトリガーされます。たとえばログイン失敗など予期されるエラー、またオフライン等でサーバーと通信できないことなどの予期しないエラーも含まれます。

このイベントは、An unhandled error occurs より優先されます。つまり、両方が発生しうる状況では、まず Element has an error running a workflow が実行されます。

Element(要素)

この設定では Bubble がどの要素を監視するかを指定します。たとえばボタンにこのイベントを配置すれば、そのボタンから起動されたワークフロー内で起きたエラーが捕捉されます。

Identifying the error code(エラーコードの特定)

Bubble 内の各エラーには一意のコードがあります。特定のエラーに反応するワークフローを設定したい場合、次の手順で指定可能です:

  • データソース Current workflow error’s code を使う
  • 全エラーコードの一覧は Settings → Language の言語テキストの最下部で確認できます
  • エラーコードは静的(変わら変更されない)です

Returning the error message(エラーメッセージを取得する)

エラーメッセージは、Bubble が通常ユーザーに表示するものを取得できます。コードと組み合わせたり、条件で特定のエラーを識別したりできます。

  • データソース Current workflow error’s message を使う
  • 全メッセージ一覧は Settings → Language の言語テキスト末尾で確認およびカスタマイズ可能
  • メッセージは動的(変わる可能性あり)

General Event(一般イベント)

概要

要素に対するユーザーの操作によって直接発生するとは限らない、特定の条件が発生したときにトリガーされるイベントです。


User is logged in(ユーザーがログインしている)

このイベントは現在のユーザーがログインしているときにトリガーされます。以下の場合に発生します。

  • ページ読み込み 時にログインしている場合
  • Log the user in アクションが完了したとき
  • Sign the user up アクションが完了したとき

User is logged out(ユーザーがログアウトしている)

このイベントは現在のユーザーがログアウトしているときにトリガーされます。

  • ページ読み込み時にログインしていない場合
  • Log the user out アクションが完了したとき

Page is loaded(ページがロードされた)

指定した秒数ごとにアクションを実行します。リアルタイム更新機能があるため利用頻度は少なめです。

Interval(間隔)

秒数を入力して設定。


Do when condition is true(条件が真のときに実行)

指定した条件が真になった瞬間にトリガーされます。

Run this…(実行頻度の設定)

  • Only once:ページ読み込みごとに1回のみ
  • Every time:条件が真になるたびに実行

An unhandled error occurs(ハンドルされていないエラーが発生した)

Bubble がワークフロー内でエラーを検知したときに発火します。

  • ログイン失敗など予期されたエラー
  • Bubble プラットフォームの不具合など予期しないエラー

Catch(キャッチの設定)

  • Any workflow error: すべてのエラーで発火。ただしこの設定をすると Bubble の自動エラーメッセージ表示は止まります。
  • Element workflow errors only: 要素発のワークフローエラーのみ。特定要素に限定するなら An element has an error running a workflow を使います。

Identifying the error code(エラーコードの特定)

  • データソース Current workflow error’s code を利用
  • 一覧は Settings → Language の言語テキストで確認
  • コードは静的(変わらない)

Returning the error message(エラーメッセージの取得)

  • データソース Current workflow error’s message を利用
  • 一覧は Settings → Language の言語テキストで確認・編集可
  • メッセージは動的(変わる可能性あり)