Busabase

ワークフロー

外部への呼び出し、待機、データの再確認、人の判断を組み合わせて、繰り返しの業務を自動化します。

ワークフローは繰り返す業務を実行します。新しいリードが入ると、Busabase がスコアを付け、CRM に知らせ、1 日待ってリードを確認し直し、営業責任者に引き継ぎの承認を求める、といった流れです。ステップは一度描くだけで、各実行はサーバー上で進むので、タブを開いたままにする必要はありません。

キャンバス上のワークフローと「実行履歴」タブ。選択した実行のどのステップが完了したかが表示されています。

ワークフローを作る

作成する

サイドバーの + を押してワークフローを選びます。一覧にない場合は他のタイプを開きます。

ステップを追加してつなぐ

ワークフローのツールバーの + でステップを追加し、ステップからステップへドラッグしてつなぎます。ステップを選択すると設定タブで設定できます。

保存する

保存を押します。実行は常に最後に保存したバージョンを使うので、未保存の変更があるあいだは実行を開始できません。

各ステップの役割

ステップ役割出ていく接続
トリガー実行の開始点です。実行に関連するレコードがあれば、ここで読み取ります。1 本
関数アクションが「関数を実行」の保存済み Webhook ルールを実行します。戻り値はこのステップに残ります。success
Webhook実行のデータを JSON 本文にして HTTP リクエストを 1 回送ります(GET は本文なし)。レスポンスがこのステップの出力になります。success
条件式を評価し、2 つの経路のどちらかに進みます。true、false
待機分、時間、日単位で一時停止します。再起動やデプロイの影響を受けません。elapsed
アクションレコードを読み直す、または変更、作成、削除します。データを変更するを参照してください。success
承認誰かが承認または却下するまで一時停止します。approved、rejected
終了結果を付けて実行を終えます。なし

接続の終了結果で、その接続をいつ通るかが決まります。1 回の実行が同じステップを 2 度通ることはなく、64 ステップを超えるとエラーで止まります。

条件で前の結果を使う

条件では直前のステップを input で読めます。それ以前のステップも参照できます。ステップを選択すると、数式ではこのステップをこう書きます に書き方が表示され、コピーできます。

input.status == 200 && steps.score.score >= 80

&& と || は結果が決まった時点で評価を止め、存在しない値は null として扱われるので、input.body && input.body.ok と書いても安全です。単純な単語でない名前には角括弧を使います: fields["follow-up"]、items[0]。

待機のあとは最新のデータが見えますか?

明示したときだけです。完了した各ステップは見た内容のスナップショットを保持するので、steps.trigger は実行開始時点のレコードのままです。最新の値を使うには、待機のあとにアクションステップを置いてレコードを読み直すを選びます。レコードが読み直され、次のステップから input.record で読めます。

データを変更する

アクションステップはデータを変更できます。一覧から動作を選びます。

アクション役割設定
レコードを変更レコードのフィールドを設定します。レコード(任意)、設定するフィールド
レコードを作成ベースにレコードを追加します。後のステップはこのステップの createdRecordId で ID を使えます。ベース、設定するフィールド
レコードを削除レコードをベースのゴミ箱に移します。そこから復元できます。レコード(任意)

アクションステップで「レコードを作成」を選んだ状態。ベース、設定するフィールド、数式での参照方法が表示されています。

レコードが空欄ならこの実行のレコードです。レコード ID や、前のステップが作成したレコードを指す =steps.add.createdRecordId のような数式も指定できます。

設定するフィールドは JSON オブジェクトです。

{ "status": "qualified", "score": "=steps.score.score" }
  • キーにはフィールドの名前またはスラッグを使います。通常の値はそのまま保存されます。
  • = で始まる文字列は前のステップを参照する数式です。= で始まる文字列そのものを保存するには == で始めます。
  • 数式が値を見つけられないとステップは失敗します。入力ミスでフィールドが空になったり、別のレコードが変更されたりすることはありません。

そのほかの注意点:

  • このステップは実行に使われる人の権限でそのベースを操作します。編集できるなら変更はその場で適用されます。提案しかできない場合は受信トレイでレビュー待ちになり、まだ何も変わらず、ステップは変更リクエスト番号を示して失敗します。エラー時を続行にしていれば実行は先へ進みます。
  • ステップ自身が適用した変更は、他のベースを待ち受けるものも含めてワークフローを開始しません。そのため、更新を待ち受けつつ同じレコードを更新するワークフローが繰り返されることも、ワークフロー同士が連鎖することもありません。人が行った変更や、あとで人が承認した変更は通常どおりワークフローを開始します。
  • 実行が自身のレコードを削除すると、後のステップはレコードなしで続行します。ただしレコードを読み直すは失敗します。

実行を開始する

手動で。 実行履歴タブを開くか、ツールバーの実行ボタンを押します。トリガーに読ませるレコード ID や、追加データのペイロード JSON を渡せます。実行を開始を押します。

レコードが変わったときに。 設定タブで次のようにします。

  1. トリガーを選択し、「レコードが作成されたとき」または「レコードが更新されたとき」を選びます。
  2. 対象の Base を選ぶか、すべての Base のままにします。
  3. 実行モードをイベントにして保存します。

条件に合う変更ごとに実行が 1 件順番待ちに入り、スケジューラーが開始します。イベントによる実行は、最後にイベントモードでワークフローを保存した人として動きます。その人がスペースを離れると、実行は理由を示して失敗します。

他のイベント名はラベルにすぎず、自動では実行を開始しません。時間によるトリガーはまだありません。

実行を確認する

実行履歴タブにはこのワークフローの最近の実行が並び、以前の実行を読み込むでさらにさかのぼれます。実行を選ぶと、各ステップが見た内容と返した内容を実行順に確認できます。キャンバスでも同じステップが完了、一時停止、失敗として示されます。

ステータス意味
順番待ち開始または続行を待っています。通常 1 分以内に自動で進みます。
実行中ステップを実行しています。
待機中待機ステップで止まっています。今すぐ続行で残り時間を飛ばせます。
承認待ち承認ステップで止まっています。
完了終了ステップに到達しました。
失敗エラーで止まりました。理由は実行に表示されます。
キャンセル済み誰かが止めました。誰が止めたかは実行に表示されます。

終了した実行は 90 日間保存されたあと削除されます。終了していない実行は削除されません。

承認

承認ステップでメンバーをメールアドレスで指定した例。そのメンバーとスペース管理者だけが判断できます。

承認者欄で、誰が承認または却下できるかが決まります。

  • メンバーのメールアドレス(カンマ区切り): そのメンバーとスペース管理者だけが判断できます。ワークフローの閲覧権限は必要ですが、編集権限は不要です。
  • メールアドレスなし(空欄、または「Sales lead」のような名前): ワークフローを編集できる人なら誰でも判断できます。名前はラベルにすぎません。
  • エージェントは、エージェントの判断を許可をオンにしない限り判断できません。エージェントにワークフローを使わせるを参照してください。

編集権限のない承認者が判断すると、実行は順番待ちに入り、スケジューラーが実行を開始した人の権限で続行します。承認者の権限の範囲が、後続のステップにできることを変えることはありません。

ワークフローの承認は実行履歴タブと通知で扱います。変更リクエスト用の受信トレイとは別です。

実行をキャンセルする

順番待ち、待機中、承認待ちの実行を選び、実行をキャンセルを押します。キャンセルした実行は再開できず、すでに実行したステップは元に戻りません。

ステップを実行中の実行は、そのステップが終わるまでキャンセルできません。送ってしまったリクエストは取り消せないためです。

一括インポートで実行が溜まりすぎたときは、一覧の上にある待機中の N 件をキャンセルでまとめて止められます。ステップを実行中の実行や一時停止中の実行はそのまま続きます。

通知

いつ誰に届くか
メンバーを指定した承認ステップで止まったとき指定されたメンバー
メンバーを指定していない承認ステップで止まったとき実行を開始した人と、ワークフローを購読している人
実行が失敗したとき実行を開始した人と、ワークフローの作成者

アプリ内通知とメールが届き、リンクからその実行を開けます。そのとき操作している本人にはすでに見えているので届きません。短時間の通知はまとめられます。承認はワークフローごとに 10 分で 1 件、失敗は 1 時間で 1 件です。オープンソースのシングルユーザー版には通知がないので、実行履歴タブをご確認ください。

権限

やりたいこと必要な権限
実行と各ステップのデータを見るワークフローの閲覧権限
開始、早めの続行、キャンセルワークフローの編集権限
ステップでレコードを変更、作成、削除する実行に使われる人がそのベースでできること(直接編集、または変更の提案)
承認または却下ステップによります。承認を参照

関数と Webhook ステップはデータを Busabase の外へ送り、アクションステップはデータを変更できるので、実行の開始には編集権限が必要です。ワークフローを閲覧できる人は各ステップのデータも見られるので、ペイロードに秘密情報を入れないでください。

ワークフローの設定

キャンバスで何も選択しない状態(または設定タブの下のほう)で、ワークフロー全体の設定を変更できます。

設定役割
実行モード手動は手動でのみ開始します。イベントではレコードのトリガーでも開始します。
エラー時ワークフローを停止は関数や Webhook ステップの失敗で実行を失敗にします。続行はエラーを記録して success の経路に進みます。
同時実行数このワークフローで同時にステップを実行できる件数です。待機や承認で止まっている実行は数えません。超えた分は順番待ちになり、空きができると自動で始まります。複数のサーバーが同時に開始すると、一時的に 1 件多くなることがあります。
タイムアウト(ms)関数や Webhook ステップにかけられる最長時間です。Webhook ステップは最大 30 秒です。

Webhook ステップは 1 回だけ送り、再試行しません。リクエストの繰り返しが安全とは限らないためです。プライベートアドレスや内部アドレスは、リダイレクト経由でも拒否されます。

エージェントにワークフローを使わせる

API キーを持つエージェントは、REST API、MCP、CLI からワークフローを使えます。

エージェントができること必要なもの
実行と各ステップのデータを見るワークフローを読めるキー
実行の開始、キャンセル書き込み権限のキーと、ワークフローの編集権限
承認または却下ステップでの許可(下記を参照)

待機の早めの続行と、順番待ちの一括キャンセルはアプリからのみ行えます。

承認は標準では人の判断です。 ステップを選択してエージェントの判断を許可をオンにすると、エージェントも判断できます。その場合でも、キーには書き込み権限が必要で、キーの所有者がステップの承認者ルールを満たす必要があります。どのキーが判断したかは実行に記録されます。

実行の権限は、開始したキーを超えません。 実行はキーの所有者として動きますが、キーの制限を受け、実行にはキーの名前が表示されます。実行が続行するたびにキーを確認し直すので、キーを取り消したり期限が切れたりすると待機中の実行は理由を示して失敗し、キーの権限を下げると書き込みもできなくなります。

エージェントが開始した実行の通知は、キーの所有者にも届きます。本人はその場で見ていないためです。

よくある質問

実行がずっと順番待ちのまま。 同時実行数に達していて空きを待っている可能性があります。そうでなければスケジューラーが動いているか確認してください。セルフホスト版には組み込まれています(設定)。

「The run was interrupted」と表示される。 ステップの実行中にサーバーが止まりました。送信途中のリクエストを黙って再送しないよう、Busabase はステップをやり直さず実行を失敗にします。もう一度開始してください。

「Could not continue as the person who started this run」と表示される。 開始した人がスペースを離れたか、ワークフローへのアクセス権を失いました。新しく実行を開始するか、イベント実行の場合はご自身でイベントモードで保存し直すと、あなたとして動きます。

承認と却下のボタンが表示されない。 ステップが別の承認者を指定しているか、編集権限がありません。どのルールが該当するかは実行に表示されます。

デモで関数と Webhook ステップが失敗する。 デモには保存済みの関数がなく、リクエストも送りません。ご自身のスペースでお試しください。

ステップ ID にハイフンがあると数式がエラーになる。 steps.step-a1b2c3d4.status ではなく steps["step-a1b2c3d4"].status と書きます。ステップを選択すると正しい書き方が表示されます。

関連: ノードタイプ · Webhook とイベント · 変更リクエスト

On this page